Oracle手工恢复案例(非归档模式)(二)
1 UNKNOWN ERROR
2 UNKNOWN ERROR
3 UNKNOWN ERROR
4 UNKNOWN ERROR
5 UNKNOWN ERROR
6 FILE NOT FOUND
6 rows selected.
6.还原数据文件并恢复
[oracle@siqian siqian11g]$ cp /backup/cold/test01.dbf /u01/oradata/siqian11g/
sys@SIQIAN11>recover datafile 6;
ORA-00279: change 2201687 generated at 06/29/2013 18:36:58 needed for thread 1
ORA-00289: suggestion : /backup/arch/arch_1_819372290_19.log
ORA-00280: change 2201687 for thread 1 is in sequence #19
Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log '/backup/arch/arch_1_819372290_19.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00308: cannot open archived log '/backup/arch/arch_1_819372290_19.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
因为序列19的日志没有被归档,所以在恢复时会报错。所以只能做不完全恢复。
7.还原所有控制文件和数据文件来做不完全恢复
[oracle@siqian siqian11g]$ cp /backup/cold/ *.ctl /u01/oradata/siqian11g/
[oracle@siqian siqian11g]$ cp /backup/cold/ *.dbf /u01/oradata/siqian11g/
8.把库起到Mount并查看数据文件头和控制文件头的SCN信息
startup mount force
查看SCN
sys@SIQIAN11>select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
----------------------------
1 2201687
2 2201687
3 2201687
4 2201687
5 2201687
6 2201687
6 rows selected.
sys@SIQIAN11>
select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
----------------------------
1 2201687
2 2201687
3 2201687
4 2201687
5 2201687
6 2201687
6 rows selected.
但redo里的SCN和数据文件、控制文件里的SCN是不同步的,所以现在开库会出问题
alter database open;
ERROR at line 1:
ORA-00338: log 1 of thread 1 is more recent than control file
ORA-00312: online log 1 thread 1: '/u01/oradata/siqian11g/redo01.log'
7.对整个数据库做不完全恢复
recover database untilcancel;
8.以resetlogs方式打开数据库
alter database open resetlogs;
9.验证
select * from test.t01;
发现只有10条记录。
10.冷备
因为数据库是以resetlogs方式打开的,所以此时最好做一个数据库全备。