Oracle完全脱机,部分脱机与部分联机备份(六)

2014-11-24 09:06:00 · 作者: · 浏览: 1
l03.ctl
-rw-r----- 1 oracle oinstall 52429312 Jun 2 11:54 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Jun 2 11:55 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Jun 2 14:35 redo03.log
-rwxr-xr-x 1 oracle oinstall 513810432 Jun 2 14:55 system01.dbf
[oracle@localhost orcl]$ chmod 640 system01.dbf
[oracle@localhost orcl]$ ll
total 676892
-rw-r----- 1 oracle oinstall 7094272 Jun 2 14:56 control01.ctl
-rw-r----- 1 oracle oinstall 7094272 Jun 2 14:56 control02.ctl
-rw-r----- 1 oracle oinstall 7094272 Jun 2 14:56 control03.ctl
-rw-r----- 1 oracle oinstall 52429312 Jun 2 11:54 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Jun 2 11:55 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Jun 2 14:35 redo03.log
-rw-r----- 1 oracle oinstall 513810432 Jun 2 14:55 system01.dbf
再看看数据文件头的SCN号:
SQL> select file#, checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 13229463960924
2 0
3 0
4 0
5 13229463961652
6 13229463961652
7 0
7 rows selected
现在已经不为0了,但是和控制文件上最新的SCN号不一致:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/home/oracle/oracle/product/10.2.0/oradata/orcl/system01.dbf'
这时报需要介质恢复:
这就需要用到归档日志上的SCN号,恢复的过程其实就是增加SCN号的过程,查询归档日志:
SQL> SELECT a.sequence# 日志序号, a.first_change# 日志中最小的SCN号, a.next_change# 日志中最大的SCN号 FROM v$archived_log a WHERE a.first_change# <= 13229463960924 AND a.next_change# >
= 13229463960924;
日志序号 日志中最小的SCN号 日志中最大的SCN号
---------- ----------------- -----------------
164 13229463960567 13229463961439
一号文件头的SCN号介于:164号归档日志的起始和结束SCN号之间:
现在恢复一号数据文件:
SQL> recover datafile 1;
ORA-00279: change 13229463960924 generated at 06/02/2013 11:32:48 needed for thread 1
ORA-00289: suggestion : /home/oracle/oracle/product/10.2.0/flash_recovery_area/ORCL/archivelog/2013_06_02/o1_mf_1_164_%u_.arc
ORA-00280: change 13229463960924 for thread 1 is in sequence #164
Specify log: {=suggested | filename | AUTO | CANCEL}
-- Oracle建议我们使用164号归档日志来恢复,回车
ORA-00279: change 13229463961439 generated at 06/02/2013 11:51:58 needed for thread 1
ORA-00289: suggestion : /home/oracle/oracle/product/10.2.0/flash_recovery_area/ORCL/archivelog/2013_06_02/o1_mf_1_165_%u_.arc
ORA-00280: change 13229463961439 for thread 1 is in sequence #165
ORA-00278: log file '/home/oracle/oracle/product/10.2.0/flash_recovery_area/ORCL/archivelog/2013_06_02/o1_mf_1_164_8tojbz0v_.arc' no longer needed for this recovery
Specify log: {=suggested | filename | AUTO | CANCEL}
--Oracle接着提示需要165号文件来恢复
如果归档日志很多,可以直接选择 AUTO 选项
Specify log: {=suggested | filename | AUTO | CANCEL}
ORA-00279: change 13229463961618 generated at 06/02/2013 11:54:14 needed for thread 1
ORA-00289: suggestion : /home/oracle/oracle/product/10.2.0/flash_recovery_area/ORCL/archivelog/2013_06_02/o1_mf_1_169_%u_.arc
ORA-00280: change 13229463961618 for thread 1 is in sequence #169
ORA-00278: log file '/home/oracle/oracle/product/10.2.0/flash_recove