數據庫備份恢復。巡檢須要關注的對象設置:
1.數據庫名稱,以及DBID;? --dbid在v$database中
??? SYS@ORCL>select dbid,name from v$database;
????????? DBID NAME
??? ---------- ---------
??? 1385095721 ORCL
2.控制文件的位置;
??? show parameter control_files;
??? select name from v$controlfile;
3.日志文件的位置以及數據庫的歸檔設置;
??? select log_mode from v$database;
??? archive log list;
??? select * from v$log;
??? select * from v$logfile;
???? --關注日志組數,大小,狀態。位置;
??? select * from v$archived_log;
4.數據文件位置。大小,狀態;
??? select * from dba_tablespaces;
??? select * from v$tablespace;
??? select * from dab_data_files;
??? select * from v$datafile;
???? --在11g數據庫中,暫時表空間僅僅需關注其大小就可以;
5.參數文件;
??? show parameter spfile;
???
6.告警日志;
??? select * from v$diag_info;
??? adrci
7.數據庫現有的備份策略,備份集情況;
?
要打開數據庫。必須滿足下面條件:
?
1.全部控制文件都必須存在且已同步
2.全部聯機數據文件都必須存在且已同步
3.每一個重做日志組必須至少有一個成員存在
?
打開數據庫后,假設丟失下面項時數據庫就會失敗:
1.不論什么控制文件
2.屬于系統或還原表空間的數據文件
3.整個重做日志組(僅僅要組中至少有一個成員可用。實例就會保持在打開狀態)
?
假設控制文件丟失或損壞,則實例一般會中止。然后。您必須運行下面步驟:
1.關閉實例(假設它仍處于打開狀態)。
2.通過復制現有控制文件還原缺失的控制文件。
3.啟動實例。
假設丟失了重做日志文件組中的某個成員。而且組中至少另一個成員,請注意其后果是:
不會影響實例的正常操作。
預警日志中會收到一條消息,通知您無法找到某個成員。
通過從同一組中復制一個剩余文件可還原缺失的日志文件。
?
NOARCHIVELOG 模式下丟失了數據文件
?
假設數據庫處于 NOARCHIVELOG 模式下。而且丟失了不論什么數據文件,則須要全然還原數據庫。包含控制文件和所
有數據文件。
數據庫處于 NOARCHIVELOG 模式時,僅僅能恢復到上一次備份時的狀態。
因此。用戶必須又一次輸入自
上一次備份以來所做的更改。
請運行下面任務:
1.假設實例尚未關閉,請關閉實例。
2.從備份還原整個數據庫,包含全部數據文件和控制文件。
3.打開數據庫。
4.讓用戶又一次輸入自上次備份以來所做的全部更改。
假設處于 NOARCHIVELOG 模式的數據庫具有增量備份策略。
則 RMAN 會先還原近期的 0 級。然后 RMAN 恢復進
程再應用增量備份。
ARCHIVELOG 模式下丟失了系統重要數據文件
假設丟失或損壞了某個數據文件。且該文件屬于 SYSTEM 或 UNDO 表空間,
請運行下面任務:
1.實例可能會也可能不會自己主動關閉。假設未自己主動關閉,請使用 SHUTDOWN ABORT 關閉實例。
2.裝載數據庫。
3.還原并恢復缺失的數據文件。
4.打開數據庫。
?
?
?