ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 旧控制文件的不完全恢复(sqlplus工具)

旧控制文件的不完全恢复(sqlplus工具)

原创 Linux操作系统 作者:尛样儿 时间:2012-04-28 17:21:30 0 删除 编辑
        这篇文章讨论的是使用sqlplus工具完成旧控制文件的不完全恢复,大部分的操作都和使用RMAN工具是相同的,请参考文章:http://space.itpub.net/23135684/viewspace-722050 ,只是在recover的时候有所区别。

1.使用sqlplus工具完成恢复操作。

SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成

        非最新的控制文件(控制文件中的数据库SCN小于数据文件头中的SCN-"启动SCN")在执行恢复操作的时候都需要使用backup controlfile选项。

SQL> recover database using backup controlfile;
ORA-00279: 更改 2710229 (在 04/22/2012 17:23:15 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_22\O1_MF_1_2721_7S7P9N
Y3_.ARC
ORA-00280: 更改 2710229 (用于线程 1) 在序列 #2721 中


指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 2710944 (在 04/22/2012 18:10:58 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_1_7SB4QJBM_
.ARC
ORA-00280: 更改 2710944 (用于线程 1) 在序列 #1 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_22\O1_MF_1_2721_7S7P9
NY3_.ARC'


ORA-00279: 更改 2734329 (在 04/23/2012 15:46:34 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_2_7SB4QJV5_
.ARC
ORA-00280: 更改 2734329 (用于线程 1) 在序列 #2 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_1_7SB4QJBM
_.ARC'


ORA-00279: 更改 2736148 (在 04/23/2012 16:29:36 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_24\O1_MF_1_1_7SD4W9OM_
.ARC
ORA-00280: 更改 2736148 (用于线程 1) 在序列 #1 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_23\O1_MF_1_2_7SB4QJV5
_.ARC'


ORA-00279: 更改 2758812 (在 04/24/2012 10:44:24 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_26\O1_MF_1_2_7SKBF0V6_
.ARC
ORA-00280: 更改 2758812 (用于线程 1) 在序列 #2 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_24\O1_MF_1_1_7SD4W9OM
_.ARC'


ORA-00279: 更改 2790212 (在 04/26/2012 09:49:20 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_3_7SPV285B_
.ARC
ORA-00280: 更改 2790212 (用于线程 1) 在序列 #3 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_26\O1_MF_1_2_7SKBF0V6
_.ARC'


ORA-00279: 更改 2826163 (在 04/28/2012 12:04:23 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_4_%U_.ARC
ORA-00280: 更改 2826163 (用于线程 1) 在序列 #4 中
ORA-00278: 此恢复不再需要日志文件
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_3_7SPV285B
_.ARC'


ORA-00308: 无法打开归档日志
'D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_4_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

        这里无法打开的实际是联机Redo日志文件,sqlplus工具无法正确的找到这个文件,下面手动指定这个文件。

SQL> recover database using backup controlfile;
ORA-00279: 更改 2826163 (在 04/28/2012 12:04:23 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_04_28\O1_MF_1_4_%U_.ARC
ORA-00280: 更改 2826163 (用于线程 1) 在序列 #4 中


指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app\oracle\oradata\orcl\REDO01.LOG
已应用的日志。
完成介质恢复。
SQL>

        sqlplus使用旧的控制文件执行不完全恢复需要指定using backup controlfile关键字,该关键字表示的是该恢复操作使用的是备份的、旧的控制文件执行的恢复操作。
        指定完联机控制文件后,数据库就恢复到了最新的状态,但利用最新的控制文件恢复都属于不完全恢复,必须用resetlogs才能打开数据库,原因在于保存在控制文件中的数据库检查点SCN一直未被更新。

2.打开数据库。

SQL> alter database open resetlogs;

数据库已更改。


结论:
        从上面的实验不难看出,使用sqlplus工具做恢复比使用rman做恢复更加的复杂,rman是一个非常智能的数据库恢复工具,推荐使用该工具完成数据库的还原和恢复操作。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23135684/viewspace-722450/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle数据库管理员,Oracle数据库系统构架员;2012年7月出版《构建最高可用Oracle数据库系统:Oracle 11gR2 RAC管理、维护与性能优化》一书;Oracle 10g OCM。

注册时间:2010-01-05

  • 博文量
    483
  • 访问量
    5248274