rman(4)--資料恢復顧問

linfeng_oracle發表於2013-08-15

rman(4)--資料恢復顧問

 

SQL> create tablespace test datafile 'G:\ORACLE\ORADATA\ORCL11G\TEST.DBF' size 10m autoextend off;

表空間已建立。

SQL> create user test identified by test default tablespace test quota unlimited on test;

使用者已建立。

SQL> grant connect,resource to test;

授權成功。

SQL> create table test.t1 as select * from dba_users;

表已建立。

SQL> select count(*) from test.t1;

  COUNT(*)
----------
        16

模擬資料檔案G:\ORACLE\ORADATA\ORCL11G\TEST.DBF丟失:
1、關閉資料庫,手動刪除G:\ORACLE\ORADATA\ORCL11G\TEST.DBF資料檔案
SQL> shutdown immediate;

SQL> host del G:\ORACLE\ORADATA\ORCL11G\TEST.DBF

2、啟動資料庫
SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  644468736 bytes
Fixed Size                  1385480 bytes
Variable Size             356518904 bytes
Database Buffers          281018368 bytes
Redo Buffers                5545984 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 7 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 7: 'G:\ORACLE\ORADATA\ORCL11G\TEST.DBF'


3、執行資料恢復顧問
RMAN> list failure;

使用目標資料庫控制檔案替代恢復目錄
資料庫故障列表
=========================

失敗 ID 優先順序狀態    檢測時間   概要
------- -------- --------- ---------- -------
1145    HIGH     OPEN      15-8月 -13 缺失一個或多個非系統資料檔案

RMAN> advise failure;

資料庫故障列表
=========================

失敗 ID 優先順序狀態    檢測時間   概要
------- -------- --------- ---------- -------
1145    HIGH     OPEN      15-8月 -13 缺失一個或多個非系統資料檔案

正在分析自動修復選項; 這可能需要一些時間
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=5 裝置型別=DISK
分析自動修復選項完成

必需的手動操作
========================
沒有可用的手動操作

可選手動操作
=======================
1. 如果無意中重新命名或移動了檔案 G:\ORACLE\ORADATA\ORCL11G\TEST.DBF, 請還原該檔案

自動修復選項
========================
選項修復說明
------ ------------------
1      還原和恢復資料檔案 7
  策略: 修復操作包括無資料丟失的完全介質恢復
  修復指令碼: G:\ORACLE\diag\rdbms\orcl11g\orcl11g\hm\reco_3265260082.hm

對應指令碼是:
   # restore and recover datafile
   restore datafile 7;
   recover datafile 7;
   sql 'alter database datafile 7 online';


4、接受建議
RMAN> repair failure;

策略: 修復操作包括無資料丟失的完全介質恢復
修復指令碼: G:\ORACLE\diag\rdbms\orcl11g\orcl11g\hm\reco_3265260082.hm

修復指令碼的內容:
   # restore and recover datafile
   restore datafile 7;
   recover datafile 7;
   sql 'alter database datafile 7 online';

是否確實要執行以上修復 (輸入 YES 或 NO)? yes
執行修復指令碼

啟動 restore 於 15-8月 -13
使用通道 ORA_DISK_1

建立資料檔案, 檔案號 = 7 名稱 = G:\ORACLE\ORADATA\ORCL11G\TEST.DBF
沒有完成還原; 所有檔案均為只讀或離線檔案或者已經還原
完成 restore 於 15-8月 -13

啟動 recover 於 15-8月 -13
使用通道 ORA_DISK_1

正在開始介質的恢復

執行緒 1 序列 192 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_192_9042RS2K_.ARC 存在於磁碟
執行緒 1 序列 193 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_193_9042RRP2_.ARC 存在於磁碟
執行緒 1 序列 1 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_1_90430NHC_.ARC 存在於磁碟上
執行緒 1 序列 2 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_2_90430PKP_.ARC 存在於磁碟上
執行緒 1 序列 3 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_09\O1_MF_1_3_90B2CR3T_.ARC 存在於磁碟上
執行緒 1 序列 4 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_11\O1_MF_1_4_90FRV7FS_.ARC 存在於磁碟上
執行緒 1 序列 5 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_11\O1_MF_1_5_90FTM76N_.ARC 存在於磁碟上
執行緒 1 序列 6 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_11\O1_MF_1_6_90GOMY9G_.ARC 存在於磁碟上
執行緒 1 序列 7 的歸檔日誌已作為檔案 G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_15\O1_MF_1_7_90SMNB3H_.ARC 存在於磁碟上
歸檔日誌檔名=G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_192_9042RS2K_.ARC 執行緒=1 序列=192
歸檔日誌檔名=G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_193_9042RRP2_.ARC 執行緒=1 序列=193
歸檔日誌檔名=G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_1_90430NHC_.ARC 執行緒=1 序列=1
歸檔日誌檔名=G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_07\O1_MF_1_2_90430PKP_.ARC 執行緒=1 序列=2
歸檔日誌檔名=G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_09\O1_MF_1_3_90B2CR3T_.ARC 執行緒=1 序列=3
歸檔日誌檔名=G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_11\O1_MF_1_4_90FRV7FS_.ARC 執行緒=1 序列=4
歸檔日誌檔名=G:\ORACLE\ARCHIVE\ORCL11G\ARCHIVELOG\2013_08_11\O1_MF_1_5_90FTM76N_.ARC 執行緒=1 序列=5
介質恢復完成, 用時: 00:00:04
完成 recover 於 15-8月 -13

sql 語句: alter database datafile 7 online
修復故障已完成

是否要開啟資料庫 (輸入 YES 或 NO)? yes
資料庫已開啟

5、驗證資料
SQL> select count(*) from test.t1;

  COUNT(*)
----------
        16

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24996904/viewspace-768618/,如需轉載,請註明出處,否則將追究法律責任。

相關文章