恢复案例五:隐含参数_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 |
列举几个恢复命令,这里就不再一并给出示例了。
RMAN> RECOVER DATABASE SKIP TABLESPACE users;
RMAN> RECOVER TABLESPACE users, tools;
RMAN> RECOVER DATAFILE '/newdisk/users01.dbf','/newdisk/tools01.dbf';
RMAN> RECOVER DATAFILE 4;
RMAN> RECOVER TABLESPACE users, tools DELETE ARCHIVELOG;
|
恢复表空间和数据文件到新位置:
RUN ...{
SET NEWNAME FOR DATAFILE 3 to 'new_location';
RESTORE DATAFILE 3;
SWITCH DATAFILE 3;
RECOVER DATAFILE 3;
} |
如果没有指定新位置,将按照OMF命名规则创建新文件:
RUN ...{
SET NEWNAME FOR DATAFILE 3 to NEW;
RESTORE DATAFILE 3;
SWITCH DATAFILE 3;
RECOVER DATAFILE 3;
}
|
归档日志文件恢复这里也不举例子了,比较简单。
阅读(476) | 评论(0) | 转发(0) |