ORA-00289: suggestion :/u02/flash_recovery_area/BKT/archivelog/2013_05_13/o1_mf_1_100_%u_.arc
ORA-00280: change 1294623 for thread 1 isin sequence #100
Specify log: {
/u02/oradat/bkt/redo01.log
Log applied.
Media recovery complete.
sys@BKT> alter database open resetlogs ;
Database altered.
因为使用了备份的控制文件,所以必须resetlogs
无备份直接重建控制文件
sys@BKT> show parameter control
NAME TYPE VALUE
----------------------------------------------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u02/oradat/bkt/control01.ctl,/u02/flash_recovery_area/bkt/control02.ct
[root@master ~]# rm /u02/oradat/bkt/control01.ctl
rm: remove regular file`/u02/oradat/bkt/control01.ctl' y
[root@master ~]# rm/u02/flash_recovery_area/bkt/control02.ctl
rm: remove regular file`/u02/flash_recovery_area/bkt/control02.ctl' y
sys@BKT> alter system switch logfile
System altered.
sys@BKT> alter system archive logcurrent ;
System altered.
看来不是立刻写入控制文件中。
Errors in file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_m000_6382.trc:
ORA-00210: cannot open the specified controlfile
ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file ordirectory
Additional information: 3
sys@BKT> create tablespace test1datafile '/u02/oradat/bkt/test1_01.dbf' size 10m ;
Tablespace created.
如果及时的发现数据库未关闭,可以使用下面的命令将重建控制文件的脚本输出到trace文件中,方便后面的控制文件重建操作。
sys@BKT> alter database backupcontrolfile to trace ;
Database altered.
alter :
Backup controlfile written to trace file/u01/apps/oracle/diag/rdbms/bkt/bkt/trace/bkt_ora_5933.trc
Completed: alter database backupcontrolfile to trace
如果没有及时的发现已经丢失了所有的控制文件,这里重建控制文件需要知道一些额外的信息,包括redolog的位置、数据文件的位置还有字符集。(这里也可以使用snapshot控制文件来生成trace文件)
sys@BKT> shutdown immediate
Database closed.
ORA-00210: cannot open the specifiedcontrol file
ORA-00202: control file:'/u02/oradat/bkt/control01.ctl'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file ordirectory
Additional information: 3
sys@BKT> shutdown abort ;
sys@BKT> alter database mount ;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying controlfile, check alert log for more info
如果这里重做日志没有损坏,则可以以noresetlogs的方式重建控制文件
CREATE CONTROLFILE REUSE DATABASE"BKT" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u02/oradat/bkt/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/u02/oradat/bkt/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/u02/oradat/bkt/redo03.log' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/u02/oradat/bkt/system01.dbf',
'/u02/oradat/bkt/sysaux01.dbf',
'/u02/oradat/bkt/undotbs01.dbf',
'/u02/oradat/bkt/test1_01.dbf',
'/u02/oradat/bkt/users01.dbf',
'/u02/oradat/bkt/example01.dbf'
CHARACTER SET ZHS16GBK
;
这里改变了数据文件的位置
sys@BKT> CREATE CONTROLFILE REUSEDATABASE "BKT" NORESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1'/u02/oradat/bkt/redo01.log' SIZE 50MBLOCKSIZE 512,
9 GROUP 2'/u02/oradat/bkt/redo02.log' SIZE 50MBLOCKSIZE 512,
10 GROUP 3 '/u02/oradat/