--查看数据文件 sys@TESTDB11>select name from v$datafile;
NAME -------------------------------------------------- /u01/app/oracle/oradata/TestDB11/system01.dbf /u01/app/oracle/oradata/TestDB11/sysaux01.dbf /u01/app/oracle/oradata/TestDB11/undotbs01.dbf /u01/app/oracle/oradata/TestDB11/users01.dbf /u01/app/oracle/oradata/TestDB11/example01.dbf /u01/app/oracle/oradata/TestDB11/rotbs01.dbf
6 rows selected.
--1. 删除所有的数据文件 [oracle@S1011:/backup/inconsistent_backup]$ cd /u01/app/oracle/oradata/TestDB11/ [oracle@S1011:/u01/app/oracle/oradata/TestDB11]$ ls control01.ctl example01.dbf redo01.log redo02.log redo03.log rotbs01.dbf sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf [oracle@S1011:/u01/app/oracle/oradata/TestDB11]$ rm *.dbf [oracle@S1011:/u01/app/oracle/oradata/TestDB11]$ ls control01.ctl redo01.log redo02.log redo03.log --2. 数据库处于OPEN状态 sys@TESTDB11>select status from v$instance;
STATUS ------------ OPEN --3. 此时正常关库是关不了的,只能shutdown abort了 sys@TESTDB11>startup force ORACLE instance started.
Total System Global Area 855982080 bytes Fixed Size 2230792 bytes Variable Size 641730040 bytes Database Buffers 209715200 bytes Redo Buffers 2306048 bytes Database mounted. ORA-01157: cannot identify/lock data file 1 - see DBWR trace file ORA-01110: data file 1: '/u01/app/oracle/oradata/TestDB11/system01.dbf' --4.查看错误信息 sys@TESTDB11>col error for a15 sys@TESTDB11>select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ---------- ------- ------- --------------- ---------- --------- 1 ONLINE ONLINE FILE NOT FOUND 0 2 ONLINE ONLINE FILE NOT FOUND 0 3 ONLINE ONLINE FILE NOT FOUND 0 4 ONLINE ONLINE FILE NOT FOUND 0 5 ONLINE ONLINE FILE NOT FOUND 0 6 ONLINE ONLINE FILE NOT FOUND 0
6 rows selected.
--查看数据文件头信息, 因为文件都已经被删除,所以显示的均为0 sys@TESTDB11>col name for a15 sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;
NAME CHECKPOINT_CHANGE# --------------- ------------------ 0 0 0 0 0 0
6 rows selected.
--从非一致备份进行文件的还原 oracle@S1011:/pooldisk02/backup01/inconsistent]$ cp *.dbf /u01/app/oracle/oradata/TestDB11/
--再次查看错误的信息,检查点都不一致(因为当时做的是热备份) sys@TESTDB11>select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ---------- ------- ------- --------------- ---------- --------- 1 ONLINE ONLINE 2654775 09-AUG-13 2 ONLINE ONLINE 2654801 09-AUG-13 3 ONLINE ONLINE 2654893 09-AUG-13 4 ONLINE ONLINE 2654911 09-AUG-13 5 ONLINE ONLINE 2654924 09-AUG-13 6 ONLINE ONLINE 2654946 09-AUG-13
6 rows selected.
--此时开库 sys@TESTDB11>alter database open; alter database open * ERROR at line 1: ORA-01113: file 1 needs media recovery ORA-01110: data file 1: '/u01/app/oracle/oradata/TestDB11/system01.dbf'
--执行完全恢复 sys@TESTDB11>recover database; ORA-00279: change 2654775 generated at 08/09/2013 21:25:44 needed for thread 1 ORA-00289: suggestion : /archive2/1_98_813665348.dbf ORA-00280: change 2654775 for thread 1 is in sequence #98
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto ORA-00279: change 2660981 generated at 08/09/2013 22:19:48 needed for thread 1 ORA-00289: suggestion : /archive2/1_99_813665348.dbf ORA-00280: change 2660981 for thread 1 is in sequence #99
auto Log applied. Media recovery complete.
--恢复完查看效果,检查点都恢复到一致的状态 sys@TESTDB11>col name for a60 sys@TESTDB11>select name, checkpoint_change# from v$datafile;
NAME CHECKPOINT_CHANGE# ------------------------------------------------------------ ------------------ /u01/app/oracle/oradata/TestDB11/system01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/sysaux01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/undotbs01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/users01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/example01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/rotbs01.dbf 2725648
6 rows selected.
sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;
NAME CHECKPOINT_CHANGE# ------------------------------------------------------------ ------------------ /u01/app/oracle/oradata/TestDB11/system01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/sysaux01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/undotbs01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/users01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/example01.dbf 2725648 /u01/app/oracle/oradata/TestDB11/rotbs01.dbf 2725648
6 rows selected.
--此时可以进行正常的开库 sys@TESTDB11>alter database open;
Database altered. |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1151906/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17013648/viewspace-1151906/