Flashback oddities





Occasionally flashback throws up the odd surprise (I'm just tallking about database level flashback here  - not the myriad of other 'related' bits that are all badged under the flashback banner).

I posted some time ago about an issue with the way it worked here and I've a couple more interesting bits to add now.

The first point is around the need for 'flashback database' to be enabled - there is an interesting section in the manual you may have missed (https://docs.oracle.com/cd/E11882_01/backup.112/e10642/flashdb.htm#BRADV584) which explains that flashback database does not have to be on to use flashback database! (say what!) However it behaves differently (i'll leave you to digest the differences).

The second point is a 'feature' i'd guess you'd call it - but a little dangerous i think. So following on from the revelation in point 1 the system will allow you to create (a non guaranteed) restore point that is unusable (the guaranteed ones work OK) - take the example below

First we don't have flashback on and we create a normal restore point

SQL> create restore point demo3;

Restore point created.




And the system is quite happy - no errors

So lets now try and go back to that point.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1403060224 bytes
Fixed Size                  2681464 bytes
Variable Size            1342178696 bytes
Database Buffers           50331648 bytes
Redo Buffers                7868416 bytes
Database mounted.
SQL>  flashback database to restore point demo3;
 flashback database to restore point demo3
*
ERROR at line 1:
ORA-38726: Flashback database logging is not on.


And we can't - the restore point is unusable - so why did it let us create this in the first place - it can never be used?

The third point is another feature - though unlikely to really cause a problem - though i guess it might be an annoyance at some point.

Take the example below - i want to tidy up some tablespaces (and i guess any physical changes would cause the same issue) after i created a GRP

So i create a GRP:

SQL> create restore point demo guarantee flashback database;

Restore point created.


Add a tablespace

SQL> create tablespace after_grp;

Tablespace created.

 
 Now try and drop it

SQL> drop tablespace after_grp;
drop tablespace after_grp
*
ERROR at line 1:
ORA-38881: Cannot drop tablespace AFTER_GRP on primary database due to
guaranteed restore points.


And we hit an obscure error - perfectly reasonable though i guess - flashback can't cope if you physically remove files

0 comments:

Post a Comment