恢复案例五:隐含参数_allow_resetlogs_corruption的使用
用RMAN做好备份后,删除所有归档日志文件和备份。
恢复自动备份的控制文件。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1288340 bytes
Variable Size 104859500 bytes
Database Buffers 54525952 bytes
Redo Buffers 7098368 bytes
RMAN> set dbid 252956976
正在执行命令: SET DBID
RMAN> restore controlfile from autobackup;
启动 restore 于 31-1月 -07
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
恢复区域目标: d:\oracle\product\10.2.0\flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): ROME
通道 ORA_DISK_1: 在恢复区域中找到自动备份
通道 ORA_DISK_1: 已找到的自动备份: D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\
ROME\AUTOBACKUP\2007_01_30\O1_MF_S_613239538_2VXZVMGN_.BKP
通道 ORA_DISK_1: 从自动备份复原控制文件已完成
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ROME\CONTROL01.CTL
输出文件名=F:\ORACLE\ORADATA\ROME\CONTROL02.CTL
输出文件名=E:\ORACLE\ORADATA\ROME\CONTROL03.CTL
完成 restore 于 31-1月 -07
RMAN> sql 'alter database mount';
sql 语句: alter database mount
释放的通道: ORA_DISK_1
RMAN> restore database;
SQL> recover database using backup controlfile;
ORA-00279: ?? 1151325 (? 01/30/2007 16:18:22 ??) ???? 1 ????
ORA-00289: ??:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\2007_01_30\O1_MF_1_
1_%U_.ARC
ORA-00280: ?? 1151325 (???? 1) ??? #1 ?
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: ????????
'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\2007_01_30\O1_MF_1
_1_%U_.ARC'
ORA-27041: ??????
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
ORA-00308: ????????
'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\2007_01_30\O1_MF_1
_1_%U_.ARC'
ORA-27041: ??????
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ROME\SYSTEM01.DBF'
SQL> recover database using backup controlfile;
ORA-00279: 更改 1151325 (在 01/30/2007 16:18:22 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\2007_01_30\O1_MF_1_
1_%U_.ARC
ORA-00280: 更改 1151325 (用于线程 1) 在序列 #1 中
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开归档日志
'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\2007_01_30\O1_MF_1
_1_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00308: 无法打开归档日志
'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\2007_01_30\O1_MF_1
_1_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL> create pfile='d:\rome.ora' from spfile;
文件已创建。
修改rome.ora加入 *._allow_resetlogs_corruption=TRUE
SQL> startup pfile='d:\rome.ora'
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1288340 bytes
Variable Size 104859500 bytes
Database Buffers 54525952 bytes
Redo Buffers 7098368 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
SQL> show parameter _allow_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_allow_resetlogs_corruption boolean TRUE