恢復案例五隱含參數_allow_resetlogs_corruption的使用
用RMAN做好備份後刪除所有歸檔日志文件和備份
恢復自動備份的控制文件
SQL> startup nomount
ORACLE 例程已經啟動
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
RMAN> set dbid
正在執行命令: SET DBID
RMAN> restore controlfile from autobackup;
啟動 restore 於 月
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_
通道 ORA_DISK_: sid= devtype=DISK
恢復區域目標: d:\oracle\product\\flash_recovery_area
用於搜索的數據庫名 (或數據庫的唯一名稱): ROME
通道 ORA_DISK_: 在恢復區域中找到自動備份
通道 ORA_DISK_: 已找到的自動備份: D:\ORACLE\PRODUCT\\FLASH_RECOVERY_
AREA\ROME\AUTOBACKUP\__\O_MF_S__VXZVMGN_BKP
通道 ORA_DISK_: 從自動備份復原控制文件已完成
輸出文件名=D:\ORACLE\PRODUCT\\ORADATA\ROME\CONTROLCTL
輸出文件名=F:\ORACLE\ORADATA\ROME\CONTROLCTL
輸出文件名=E:\ORACLE\ORADATA\ROME\CONTROLCTL
完成 restore 於 月
RMAN> sql alter database mount;
sql 語句: alter database mount
釋放的通道: ORA_DISK_
RMAN> restore database;
SQL> recover database using backup controlfile;
ORA: ?? (? // :: ??) ???? ????
ORA: ??:
D:\ORACLE\PRODUCT\\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\__\
O_MF___%U_ARC
ORA: ?? (???? ) ??? # ?
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA: ????????
D:\ORACLE\PRODUCT\\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\__\
O_MF___%U_ARC
ORA: ??????
OSD: ????????????
O/SError: (OS ) ??????????????????????
ORA: ????????
D:\ORACLE\PRODUCT\\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\__\
O_MF___%U_ARC
ORA: ??????
OSD: ????????????
O/SError: (OS ) ??????????????????????
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 行出現錯誤:
ORA: 文件 需要介質恢復
ORA: 數據文件 : D:\ORACLE\PRODUCT\\ORADATA\ROME\SYSTEMDBF
SQL> recover database using backup controlfile;
ORA: 更改 (在 // :: 生成) 對於線程 是必需的
ORA: 建議:
D:\ORACLE\PRODUCT\\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\__\
O_MF___%U_ARC
ORA: 更改 (用於線程 ) 在序列 # 中
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
ORA: 無法打開歸檔日志
D:\ORACLE\PRODUCT\\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\__\
O_MF___%U_ARC
ORA: 無法打開文件
OSD: 無法打開文件
O/SError: (OS ) 系統找不到指定的文件
ORA: 無法打開歸檔日志
D:\ORACLE\PRODUCT\\FLASH_RECOVERY_AREA\ROME\ARCHIVELOG\__\
O_MF___%U_ARC
ORA: 無法打開文件
OSD: 無法打開文件
O/SError: (OS ) 系統找不到指定的文件
SQL> create pfile=d:\romeora from spfile;
文件已創建
修改romeora加入 *_allow_resetlogs_corruption=TRUE
SQL> startup pfile=d:\romeora
ORACLE 例程已經啟動
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
數據庫裝載完畢
ORA: 要打開數據庫則必須使用 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/usersdbf/newdisk/toolsdbf;
RMAN> RECOVER DATAFILE ;
RMAN> RECOVER TABLESPACE users tools DELETE ARCHIVELOG;
恢復表空間和數據文件到新位置
RUN {
SET NEWNAME FOR DATAFILE to new_location;
RESTORE DATAFILE ;
SWITCH DATAFILE ;
RECOVER DATAFILE ;
}
如果沒有指定新位置將按照OMF命名規則創建新文件
RUN {
SET NEWNAME FOR DATAFILE to NEW;
RESTORE DATAFILE ;
SWITCH DATAFILE ;
RECOVER DATAFILE ;
}
歸檔日志文件恢復這裡也不舉例子了比較簡單
From:http://tw.wingwit.com/Article/program/Oracle/201311/18669.html