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

SQL> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 75499764 bytes
Database Buffers 88080384 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-38760: This database instance failed to turn on flashback database

查看后台日志及trace:

告警:

Mon Jun 1 02:29:53 2009
Successful mount of redo thread 1, with mount id 1216152093
Mon Jun 1 02:29:53 2009
Allocated 3981204 bytes in shared pool for flashback generation buffer
Starting background process RVWR
RVWR started with pid=16, OS id=2757
Mon Jun 1 02:29:54 2009
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_rvwr_2757.trc:
ORA-38701: Flashback database log 36 seq 143 thread 1: "/u01/app/oracle/flash_recovery_area/ORCL/flashback/o1_mf_51oc4r6c_.flb"
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

文件o1_mf_51oc4r6c_.flb被删掉了

trace文件:

oracle10g->cat /u01/app/oracle/admin/orcl/bdump/orcl_rvwr_2757.trc
/u01/app/oracle/admin/orcl/bdump/orcl_rvwr_2757.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1
System name: Linux
Node name: oracle10g
Release: 2.6.9-78.EL
Version: #1 Wed Jul 9 15:27:01 EDT 2008
Machine: i686
Instance name: orcl
Redo thread mounted by this instance: 1
Oracle process number: 16
Unix process pid: 2757, image: oracle@oracle10g (RVWR)

*** SERVICE NAME:() 2009-06-01 02:29:54.040
*** SESSION ID:(156.1) 2009-06-01 02:29:54.040
ORA-38701: Flashback database log 36 seq 143 thread 1: "/u01/app/oracle/flash_recovery_area/ORCL/flashback/o1_mf_51oc4r6c_.flb"
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

找到一个解决办法:

Solution
check whether restore points exist:
SQL> select flashback_on from v$database;
SQL> select name from v$restore_point;

If so, drop them:
SQL> drop restore point <name>;
SQL> alter database flashback off;
SQL> select flashback_on from v$database;
SQL> alter database open;

下面执行:

SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------------------------
YES

SQL> select name from v$restore_point;

no rows selected

SQL> alter database flashback off;

Database altered.

SQL> alter database open;

Database altered.

done。

你可能感兴趣的:(flashback)