模拟恢复控制文件
alter database backup controlfile to trace;
然后从trc文件中找出创建控制文件的脚本 建立creatcon.sql文件
CREATE CONTROLFILE REUSE DATABASE "BILLY" RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/home/u02/oradata/billy/redo01.log',
'/home/u02/oradata/billy/redo011.log'
) SIZE 100M,
GROUP 2 (
'/home/u02/oradata/billy/redo02.log',
'/home/u02/oradata/billy/redo031.log'
) SIZE 100M,
GROUP 3 (
'/home/u02/oradata/billy/redo03.log',
'/home/u02/oradata/billy/redo021.log'
) SIZE 100M
-- STANDBY LOGFILE
DATAFILE
'/home/u02/oradata/billy/system01.dbf',
'/home/u02/oradata/billy/undotbs01.dbf',
'/home/u02/oradata/billy/sysaux01.dbf',
'/home/u02/oradata/billy/BILLY/datafile/o1_mf_tbs_1_3h3ocgds_.dbf',
'/home/u02/oradata/billy/users01.dbf',
'/home/u02/oradata/billy/indx01.dbf',
'/home/u02/oradata/billy/dgyy01.dbf'
CHARACTER SET AL32UTF8
;
mv ora_control bakcontrolfile/
idle> shutdown abort
idle> startup nomount
ORACLE instance started.
Total System Global Area 385875968 bytes
Fixed Size 2020960 bytes
Variable Size 377489824 bytes
Database Buffers 4194304 bytes
Redo Buffers 2170880 bytes
idle> @creatcon.sql
Control file created.
idle> alter database open;
alter database open
*
ERROR at line 1:
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/home/u02/oradata/billy/system01.dbf'
ORA-01207: file is more recent than control file - old control file
idle> recover database using backup controlfile until cancel;
ORA-00279: change 287311 generated at 06/18/2009 23:55:30 needed for thread 1
ORA-00289: suggestion : /home/u02/archivelogfile/1_13_633780023.dbf
ORA-00280: change 287311 for thread 1 is in sequence #13
Specify log: {=suggested | filename | AUTO | CANCEL}
/home/u02/oradata/billy/redo01.log
Log applied.
Media recovery complete.
idle> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
idle> alter database open RESETLOGS;
Database altered.
idle> select count(*) from dba_objects;
COUNT(*)
----------
9410
idle>
使用 open resetlogs会使部分数据丢失,并且在恢复之后需要立即对数据库进行完全备份。
阅读(436) | 评论(0) | 转发(0) |