Oracle 数据恢复指导具体解释
1.數據恢復指導 :
高速檢測、分析和修復故障
最大程度地降低停機故障和執行時故障
將對用戶的干擾降到最低
用戶界面:
?? --EM GUI 界面 (多個路徑)
?? --RMAN 命令行
支持的數據庫配置:
?? --單實例
?? --非 RAC
?? --支持故障轉移到備用數據庫,但不支持分析和修復備用數據庫
數據恢復指導的功能:
在錯誤發生時,數據恢復指導可自己主動收集數據故障信息。此外,它還能夠主動檢查故障。在這樣的模式下,它有可能在數據庫進程發現損壞并指出錯誤之前就檢測和分析數據故障(請注意,修復始終由人控制)。?
數據故障可能會非常嚴重。比如,假設缺少最新的日志文件,則無法啟動數據庫。一些數據故障(如數據文件里的塊損壞)不是災難性故障,由于它們不會使數據庫停機,也不會阻止您啟動 Oracle 實例。
數據恢復指導能夠處理兩種情況:一種情況是您無法啟動數據庫(由于缺少一些必需的數據庫文件,或者這些數據庫文件不一致或已損壞),還有一種情況是執行時發現文件損壞。
2.數據恢復指導:RMAN 命令行界面
RMAN 命令 ?操作
LIST FAILURE ?列出先前運行的故障評估
ADVISE FAILURE ?顯示建議的修復選項
REPAIR FAILURE ?修復和關閉故障(在同一 RMAN 會話中的 ADVISE 命令后)
CHANGE FAILURE ?更改或關閉一個或多個故障
3.列出數據故障
RMAN LIST FAILURE 命令可列出先前運行的故障評估。
--包含新診斷的故障
--刪除關閉的故障(默認情況下)
LIST FAILURE
[ ALL | CRITICAL | HIGH | LOW | CLOSED | failnum[,failnum,…] ]
[ EXCLUDE FAILURE failnum[,failnum,…] ][ DETAIL ]?
RMAN> LIST FAILURE;
?
List of Database Failures
=========================
?
Failure ID Priority Status??? Time Detected Summary
---------- -------- --------- ------------- -------
142??????? HIGH???? OPEN????? 21-JUN-07???? One or more non-system
???????????????????????????????????????????
??????????????????????????????????????????? datafiles are missing
?
RMAN LIST FAILURE 命令可列出故障。假設目標實例使用恢復文件夾,它能夠處于 STARTED 模式下,否則必須處于 MOUNTED 模式下。
LIST FAILURE 命令可列出曾經運行的評估的結果。反復運行 LIST FAILURE 命令可又一次驗證全部現有的故障。假設數據庫診斷出新的故障(在命令運行之間),則會顯示這些新故障。假設用戶手動修復故障或暫時故障消失,則數據恢復指導會將這些故障從 LIST FAILURE 輸出中刪除。
了解有關語法的很多其它內容:
failnum:顯示了修復選項的故障數。
ALL:列出全部優先級的故障。
CRITICAL:列出 CRITICAL 優先級和 OPEN 狀態的故障。須要馬上關注這些故障,由于它們會使整個數據庫不可用。
HIGH:列出 HIGH 優先級和 OPEN 狀態的故障。這些故障(如歸檔重做日志缺失)使數據庫部分不可用或不可恢復,因此應盡快修復。
LOW:列出 LOW 優先級和 OPEN 狀態的故障。低優先級的故障能夠等到修復了更重要的故障后再進行修復。
CLOSED:僅列出關閉的故障。
EXCLUDE FAILURE:從列表中排除指定的故障號。
DETAIL:展開合并的故障,列出故障具體資料。比如,假設一個文件里有多個塊損壞,則 DETAIL 選項將列出每一個塊損壞。
4.修復建議
RMAN ADVISE FAILURE 命令:
--語法:
ADVISE FAILURE?
[ ALL | CRITICAL | HIGH | LOW | failnum[,failnum,…] ]
[ EXCLUDE FAILURE failnum [,failnum,…] ]
--顯示輸入故障列表的摘要(含警告)
--顯示手動檢查列表
--生成修復腳本(用于自己主動或手動修復)
. . .
Repair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2979128860.hm
RMAN>
?
RMAN ADVISE FAILURE 命令可顯示針對指定故障建議的修復選項。ADVISE FAILURE 命令可打印輸入故障概要。該命令會隱式關閉已修復的全部打開的故障。
默認行為(沒有使用不論什么選項時)是對記錄在自己主動診斷資料檔案庫中優先級為 CRITICAL 和 HIGH 的全部故障提供建議。假設自上次運行 LIST FAILURE 命令后 ADR 中記錄了新故障,則在對全部 CRITICAL 和 HIGH 故障提供建議前,該命令將包括一個 WARNING。
可運行兩個常規修復選項:無數據丟失修復和數據丟失修復。
數據恢復指導在生成自己主動修復選項時會生成一個腳本,用于顯示 RMAN 計劃怎樣修復故障。假設不希望數據恢復指導自己主動修復故障,可從該腳本開始運行手動修復。該腳本的 OS 位置將顯示在命令輸出的末尾。能夠檢查此腳本,并對其進行自己定義(假設須要),還能夠手動運行該腳本(比如在審計線索要求建議運行手動操作時)。
5.運行修復
RMAN REPAIR FAILURE 命令:
--在 ADVISE FAILURE 命令之后運行
--修復指定故障
--關閉修復的故障
--語法:
REPAIR FAILURE
?
[PREVIEW]
?
[NOPROMPT]
eg:RMAN> repair failure;
此命令應在同一 RMAN 會話中的 ADVISE FAILURE 命令之后使用。默認情況下(沒有指定不論什么選項時),該命令使用當前會話中上次運行 ADVISE FAILURE 時建議的一個修復選項。假設沒有不論什么修復選項,REPAIR FAILURE 命令將啟動隱式 ADVISE FAILURE 命令。?
默認情況下,您須要確認是否運行該命令,由于可能須要花費時間完畢大量更改。在運行修復期間,該命令的輸出表明正在運行的修復階段。
修復完畢后,該命令會關閉故障。
無法執行多個并發修復會話??墒?#xff0c;能夠執行并發 REPAIR … PREVIEW 會話。?
PREVIEW:不運行修復,而是顯示先前生成的包括全部修復操作和凝視的 RMAN 腳本。
NOPROMPT:不要求確認。
6.分類(和關閉)故障
RMAN CHANGE FAILURE 命令:
--更改故障優先級(CRITICAL 除外)
--關閉一個或多個故障??
?
RMAN> change failure 5 priority low;
List of Database Failures
=========================
Failure ID Priority Status??? Time Detected Summary
---------- -------- --------- ------------- -------
5????????? HIGH???? OPEN????? 20-DEC-06???? one or more datafiles are missing
Do you really want to change the above failures (enter YES or NO)? yes
changed 1 failures to LOW priority
此命令用于更改故障優先級或關閉一個或多個故障。?
語法:
CHANGE FAILURE
{ ALL | CRITICAL | HIGH | LOW | failnum[,failnum,…] }
[ EXCLUDE FAILURE failnum[,failnum,…] ]
{ PRIORITY {CRITICAL | HIGH | LOW} |?
CLOSE } -- 將故障的狀態更改為關閉?
[ NOPROMPT ] -- 不要求用戶確認?
僅僅能將故障優先級從 HIGH 更改為 LOW,以及從 LOW 更改為 HIGH。更改 CRITICAL 優先級會出現錯誤。(將故障的優先級從 HIGH 更改為 LOW 的一個原因是避免該故障顯示在 LIST FAILURE 命令的默認輸出列表中。比如,假設損壞的塊具有 HIGH 優先級,且該塊位于非常少使用的表空間中時,您可能希望將其暫時更改為 LOW。)
修復故障后,將隱式關閉打開的故障??墒?#xff0c;也能夠顯式關閉故障。這須要又一次評估其他全部打開的故障,由于當中的某些故障會因關閉此故障而變得不相關。
默認情況下,該命令要求用戶確認請求的更改。
7.數據恢復指導視圖
查詢動態數據字典視圖:
V$IR_FAILURE:列出全部故障,當中包含已關閉的故障(LIST FAILURE 命令的結果)
V$IR_MANUAL_CHECKLIST:列出手動建議(ADVISE FAILURE 命令的結果)
V$IR_REPAIR:列出修復(ADVISE FAILURE 命令的結果)?
V$IR_FAILURE_SET:交叉引用故障和建議標識符
使用演示樣例:假定您須要顯示在 2007 年 6 月 21 日檢測到的全部故障。
SELECT * FROM v$ir_failure
WHERE trunc (time_detected) = '21-JUN-2007';
(依據頁面調整輸出格式)
?
FAILURE_ID? PARENT_ID CHILD_COUNT CLASS_NAME????????????? TIME_DETE MODIFIED??? DESCRIPTION??? IMPACTS?????????? PRIORITY STATUS
142????????? 0?????????? 0 PERSISTENT_DATA????? 21-JUN-07 21-JUN-07 One or more non-system datafiles are missing See impact for individual child failures???? HIGH???? CLOSED
145??????? 142?????????? 0 PERSISTENT_DATA?????????????? 21-JUN-07 21-JUN-07 Datafile 4: '/u01/app/oracle/oradata/orcl/users01.dbf' is missing
Some objects in tablespace USERS might be unavailable??? HIGH???? CLOSED
?????? 151??????? 142?????????? 0 PERSISTENT_DATA??????? 21-JUN-07 21-JUN-07 Datafile 5: '/u01/app/oracle/oradata/orcl/example01.dbf' is missing
Some objects in tablespace EXAMPLE might be unavailable? HIGH???? CLOSED
轉載于:https://www.cnblogs.com/mfrbuaa/p/4078281.html
總結
以上是生活随笔為你收集整理的Oracle 数据恢复指导具体解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: resin设置jvm参数
- 下一篇: 同一公司代码下工厂间的库存转储 (轉載)