怒
何故
rman 路
困難多處
刻苦勤學讀
希望早日克服
參考資料數十部
不厭其煩嘗試幾度
刻苦終見回報幕
一絲恍然飄入
測試再加速
幾見明路
再思故
頓悟
酷
很多rman的文章或書籍的開頭,總是會先寫爲什麼要用rman,rman的優勢等等。俺偏偏不如此,反倒把它放到最後面。俺認爲但凡關注rman,不管了不瞭解、知不知道爲什麼要用,都不會影響到其選擇rman的決定。至於其優勢,相信通過前面篇章的論述,大家對其特點已經很瞭解,我再總結性的摘抄一些rman 的優點 ,大家對號選擇看看它們有沒有自誇吧。
各種故障背景下的恢復方法 | |||
丟失或損壞的文件 | 歸檔模式 | 數據庫狀態 | 恢復方法 |
一個或多個數據文件 | 不歸檔模式 | 關閉狀態 | 利用一致的完全數據庫備份修復整個數據庫,自從備份之後發生的所有修改都將丟失;修復數據庫後不需要進行恢復,利用RESETLOGS選項直接打開數據庫; 注意:在這種情況下進行恢復時,惟一一種可以不利用RESETLOGS選項打開數據庫的情況就是在執行最近一次備份之後,聯機重做日誌中的內容沒有被覆蓋掉。 |
一個或多個數據文件,以及聯機重做日誌文件 | 不歸檔模式 | 關閉狀態 | 利用一致的完全數據庫備份修復整個數據庫,自從備份之後發生的所有修改都將丟失;修復數據庫後不需要進行恢復,利用RESETLOGS選項直接打開數據庫。 |
一個或多個數據文件以及所有的控制文件 | 不歸檔模式 | 關閉狀態 | 利用一致的完全數據庫備份修復整個數據庫,自從備份之後發生的所有修改都將丟失;修復數據庫後不需要進行恢復,利用RESETLOGS選項直接打開數據庫。 |
注:以上三種不歸檔模式下的數據庫恢復都需要在數據庫關閉狀態下進行,並且需要擁有正確的控制文件備份。 | |||
一個或多個數據文件 | 歸檔模式 | 加載狀態 | 在數據庫打開狀態下執行表空間或數據文件恢復操作,首先將表空間或數據文件置爲脫機狀態,然後利用備份修復它們,對它們進行恢復,最後再將它們重新置爲聯機狀態;任何數據修改都不會丟失,並且在恢復過程中數據庫的其他部分仍然是可以訪問的。 |
全部的數據文件 | 歸檔模式 | 關閉狀態 | 利用備份修復數據文件,然後使用控制文件加載數據庫,並且執行完全恢復;如果所有的聯機重做日誌文件都沒有丟失或損害,最後可以用正常方式打開數據庫(不需要使用RESETLOGS選項) |
一個或多個數據文件以及恢復所需的歸檔重做日誌文件。 | 歸檔模式 | 加載狀態 | 對包含丟失的數據文件的表空間進行基於時間的表空間恢復,將這個表空間恢復到最近的可用歸檔重做日誌所對應的時刻下的狀態。 |
所有的控制文件,還可能包括一個或多個數據文件 | 歸檔模式 | 未加載狀態 | 利用備份修復丟失的控制文件與數據文件,然後對數據文件進行恢復;任何數據修改都不會丟失,但是在恢復過程中數據庫將處於不可用狀態。 |
所有的控制文件,還可能包含一個或多個數據文件,以及恢復所需的歸檔懲一儆百日誌文件與聯機重做日誌文件 | 歸檔模式 | 未加載狀態 | 利用備份修復丟失的控制文件與數據文件,然後進行不完全恢復,將數據庫恢復到最近的可用歸檔重做日誌所對應的時刻下的狀態;包含在丟失的日誌文件中以及它隨後的其它日誌文件中的數據修改都將會丟失;最後需要使用RESETLOGS選項來打開數據庫。 |
注:歸檔模式下的數據庫恢復並不一定要求關閉數據庫,其中某些情況要求在加載模式下進行恢復,並且也需要擁有正確的控制文件備份。 |
不同備份恢復方式的特點 | |
RMAN 方式 | 自定義方式 |
在對聯機數據文件進行備份時,RMAN將對當前處於不一致狀態的數據塊進行反覆讀取,直到讀取到一個一致狀態的數據塊爲止;你不將包含數據文件的表空間設置爲進入備份模式 | 必須將包含要進行備份的數據文件的表空間設置爲進入備份狀態,然後在備份完成後再將表空間設置爲退出備份模式;在表空間處於備份模式期間,數據庫的性能將會由於頻繁的I/O操作而受到嚴重影響(oracle會將用戶修改的數據塊先寫入聯機重做日誌文件中) |
可以進行增量備份,即僅對那些上一次自動備份以來發生變化的數據塊進行備份;可以使用增量備份對數據庫進行恢復,這就意味着你可以對運行在不歸檔模式下的數據庫進行恢復;不過當數據庫運行在不歸檔模式時,所做的增量備份也必須是一致的(即完全關閉狀態下建立的備份) | 在備份時只能對所有的數據塊進行備份(複製文件),而不能僅對變化的數據塊進行備份;如果數據庫運行在不歸檔模式下,就只能進行數據庫修復而不能進行任何恢復操作。 |
在備份過程中會對複製的每一個數據塊進行校驗,在利用備份進行修復時也會對數據庫的正確性進行檢查 | 在備份和修復過程中都不會對數據塊進行任何校驗與檢查;如果修復所使用的備份中包含損壞的數據塊,那麼恢復後的數據庫中將包含錯誤的數據 |
在備份過程中僅會複製那些包含數據的數據塊,而並不會複製那些完全空白的數據塊,這樣得到的備份文件的大小就會大大縮小。 | 在備份過程中只能完全複製數據文件,無論數據文件中包含了多少實際數據,備份的大小與數據庫的大小是相同的。 |
利用恢復目錄來存放與備份和恢復相關的重要信息,包括: l 數據庫中包含的模式 l 哪些文件需要進行備份 l 哪些文件在經過了指定的天數後還沒有進行新的備份 l 哪些文件由於已經有了更新的備份或者已經無法用戶恢復過程而需要刪除 l 當前RMAN的參數配置等 | 不會對用戶的備份與恢復操作進行任何記錄,除非你自己以手工方式進行記錄 |
可以將一系統相關的RMAN命令作爲腳本保存在檔案庫中,在需要時招行這些腳本就可以完成特定的備份或恢復操作 | 只能將備份或恢復命令保存成操作系統批處理文件,維護起來比較困難。 |
可以利用RMAN備份輕鬆地複製出一個與當前數據庫一模一樣的數據庫,你可以利用複製出來的數據庫作爲測試用數據庫或者備用數據庫使用 | 如果要建立測試用數據庫或備份數據庫,必須按照創建普通數據庫的過程來進行復雜的操作。 |
在進行備份或修復操作時可以自動進行並行操作 | 必須根據要進行備份或恢復的文件以手工方式並行招行操作系統命令 |
提供歸檔日誌自動容錯功能:如果RMAN發現某個備份中丟失了或損壞一個歸檔重做日誌文件,它會自動利用其它備份中的相同的歸檔重做文件來進行替換 | 無法自動提供歸檔日誌的容錯替換功能 |
通過使用介質管理API,RMAN可以與其它第三方的介質管理軟件緊密地結合在一起進行工作。 | 無法與任何第三方介質管理軟件直接結合在一起進行工作。 |
在前面我已經不止一次的提到過,RMAN非常簡單,同時也非常靈活,經過這近一個月的學習和實踐,我們介紹了很多基礎性的操作,當然RMAN的功能絕不止於此,一些更高級的功能,比如數據塊恢復,通過Duplicate創建standby等等。路漫漫其修遠矣,吾將上下而求索~~~~~