Tuesday, 15 March 2016

ORA-38760: This database instance failed to turn on flashback database



Cause

It is caused by the Flashback logs required are not available, as for example FLB logs was deleted using OS commands. It applied to standby databases as well as RAC. One of the RAC Instances or the single database instance does not come up, its looking for a Flash back log which has been accidently deleted.

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-38760: This database instance failed to turn on flashback database

Action

1. Turn off / on Flashback 

SQL> alter database flashback off;
SQL> alter database flashback on;
If it's success, then you can open it.

2. In cases where "Guaranteed Restore Point" is defined, RVWR will still try to write to flashback log even though you have disable it and it will fail again with same error


SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
RESTORE POINT ONLY

Step 1

SQL> select * from v$restore_point;
select * from v$restore_point
*
ERROR at line 1:
ORA-38701:

Here we are not able to query v$restore _point to find out the name.

Step 2


Search for restore point name in alert log. If you can find it, then use it.

Step 3


But, in our case, we could not find the name in alert log. So, We dump the controlfile to get the restore point name:


SQL> oradebug setmypid
SQL> alter session set events 'immediate trace name controlf level 9';
SQL> oradebug tracefile_name
'blabla .trc'

Open this 'blabla. trc' file and navigate to 'RESTORE POINT RECORDS'

***************************************************************************
RESTORE POINT RECORDS
***************************************************************************
(size = 212, compat size = 212, section max = 2048, section in-use = 1,
last-recid= 1, old-recno = 0, last-recno = 0)
(extent = 1, blkno = 240, numrecs = 2048)
RESTORE POINT #1:
restore point name: PRE_UPGRADE guarantee flag: 1 incarnation: 2next record
0 <<<< Name of restore point
restore point scn: 0x0000.fbff3d87 12/07/2015 14:56:23

Now we have name of Guaranteed Restore Point, After you find the restore point in Step 1, Step 2 or Step 3, use it to delete restore point and open database:
SQL> Drop restore point PRE_UPGRADE;
SQL> alter database open;

No comments:

Post a Comment