更新時間:2022-01-19 11:54:34 來源:動力節(jié)點 瀏覽1691次
數(shù)據(jù)庫恢復(fù)是一個非常復(fù)雜的話題,通過定期練習(xí)恢復(fù)技術(shù),當(dāng)真實情況發(fā)生時,一切都應(yīng)該到位。
當(dāng)實例崩潰或中止(使用關(guān)閉中止)時,Oracle 會執(zhí)行自動恢復(fù)。恢復(fù)涉及兩步過程
前滾步驟- 數(shù)據(jù)庫將當(dāng)前在線重做日志文件中已提交和未提交的數(shù)據(jù)應(yīng)用到當(dāng)前在線數(shù)據(jù)文件中
回滾步驟- 數(shù)據(jù)庫使用撤消段中的撤消數(shù)據(jù)刪除上一步中應(yīng)用的未提交事務(wù)
恢復(fù)從重做日志中稱為線程檢查點重做字節(jié)地址的點開始。這是崩潰前完成最后一個檢查點的時間。您可以通過減少檢查點發(fā)生的時間來幫助減少恢復(fù)發(fā)生的時間,從而減少必須恢復(fù)的數(shù)據(jù)量。通過設(shè)置參數(shù)fast_start_mttr_target(最長為 3600 秒 - 1 小時),您可以指定恢復(fù)需要多長時間,注意這只是一個目標(biāo),oracle 將盡力滿足此目標(biāo),降低此閾值也可能會影響服務(wù)器的性能。還有另外兩個系統(tǒng)參數(shù)可用于控制何時發(fā)生檢查點log_checkpoint_timeout和fast_start_io_target。
設(shè)置 MTTR |
更改數(shù)據(jù)庫集 fast_start_mttr_target = 600; 注意:數(shù)值以秒為單位 |
顯示當(dāng)前 MTTR | 從 v$instance_recovery 中選擇 recovery_estimated_ios、estimated_mttr、target_mttr; |
其他有用的系統(tǒng)參數(shù) | |
LOG_CHECKPOINT_TIMEOUT |
日志緩沖區(qū)寫入此目標(biāo)內(nèi)的磁盤可能會對性能產(chǎn)生很大影響(默認(rèn)為零,最大值為 3600 秒 - 1 小時) 更改系統(tǒng)集 fast_start_mttr_target=60 范圍=兩者;(無需重啟) |
FAST_START_IO_TARGET | 緩沖區(qū)緩存中任何新的或修改的塊在寫入磁盤之前等待的最大秒數(shù)(覆蓋 fast_start_mttr_target)。 |
有兩種類型的恢復(fù)可能的完全恢復(fù)和不完全恢復(fù)
完成- 意味著沒有數(shù)據(jù)丟失的恢復(fù),重做和歸檔重做日志中的所有更改都被重新應(yīng)用。
不完整 -意味著數(shù)據(jù)丟失,因為您只恢復(fù)了部分?jǐn)?shù)據(jù),這可能是由于數(shù)據(jù)損壞而您只想恢復(fù)到某個時間點
如果數(shù)據(jù)文件中只有幾個塊損壞,您應(yīng)該考慮塊介質(zhì)恢復(fù),這可以通過RMAN執(zhí)行。
我已將恢復(fù)技術(shù)分解為不同的關(guān)鍵區(qū)域
完全恢復(fù)
恢復(fù)非關(guān)鍵文件(臨時表空間、重做日志文件、索引表空間、只讀表空間和密碼文件)
恢復(fù)關(guān)鍵文件(控制文件)
數(shù)據(jù)庫恢復(fù)不完整
從用戶錯誤中恢復(fù)
閃回數(shù)據(jù)庫
閃回(閃回查詢、閃回表查詢、閃回版本查詢和閃回事務(wù)查詢)
有一個表可以用來識別需要介質(zhì)恢復(fù)的文件
V$RECOVERY_FILE | 報告丟失或損壞的文件,該表將識別文件和錯誤。 |
恢復(fù)數(shù)據(jù)庫可以通過三種方式RMAN、傳統(tǒng)的用戶管理恢復(fù)(Netbackup、ufsrestore)或企業(yè)管理器 (OEM)。
RMAN 完整數(shù)據(jù)庫 |
## 仔細(xì)檢查備份集是否存在,我們可以恢復(fù) rman> sql "立即關(guān)機"; 注意:必須是掛載模式,redo日志會在恢復(fù)過程中前滾數(shù)據(jù)庫 |
RMAN 表空間恢復(fù) |
## 仔細(xì)檢查備份是否存在,我們可以恢復(fù) ## 現(xiàn)在使表空間脫機并恢復(fù)文件 ## 恢復(fù)整個表空間時需要使表空間脫機 |
RMAN 數(shù)據(jù)文件恢復(fù) |
## 仔細(xì)檢查備份是否存在,我們可以恢復(fù) ## 恢復(fù)數(shù)據(jù)文件然后恢復(fù)它, ## 只要沒有人使用表空間就可以不脫機,dba_data_files (online_status) 指出文件需要恢復(fù) |
用戶管理 | 1.以掛載方式打開 2.恢復(fù)數(shù)據(jù)文件(Netbackup或ufsrestore) 3.恢復(fù)數(shù)據(jù)庫 sql>recover database; 4.打開數(shù)據(jù)庫 sql>alter database open; |
OEM | 見甲骨文手冊 |
以上就是關(guān)于“完整的Oracle數(shù)據(jù)庫恢復(fù)”的介紹,大家如果想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點的Oracle數(shù)據(jù)庫教程,里面的課程內(nèi)容詳細(xì),通俗易懂,適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對大家能夠有所幫助。