oracle数据库硬恢复,Oracle数据库的可恢复性设置
整理自《Oracle 11g OCP/OCA 認證指南》
001
為了保證數據庫的最大可恢復性,必須多路復用控制文件;必須多路復用聯機重做日志;必須以歸檔日志模式運行數據庫,并多路復用歸檔日志文件;最后必須作常規備份。
002 保護控制文件
控制文件雖小,但很重要。它用于加載數據庫,在數據庫打開時,可不斷地讀和寫控制文件。如果控制文件丟失了,則可以進行恢復;但這一操作并不總是很容易,因此最好不要出現這種情況,因為必須至少有兩個位于不同物理設備上的控制文件的副本。最多可有8個控制文件的多路復用副本。
如果控制文件是多路復用的,那么從導致控制文件丟失的介質失敗中恢復只要將備份的控制文件復制到受損或丟失的控制文件之上就行了。但控制文件受損會導致停機。當Oracle檢測控制文件是受損還是丟失時,實例會因為實例失敗立即終止。
要移動或添加控制文件副本,首先關閉數據庫。在數據庫打開時不能進行任何控制文件操作。然后使用操作系統命令移動或復制控制文件。再接著,編輯control_files參數,指向新的位置。如果使用靜態的initSID.ora參數文件,則可以用任何文本編輯器編輯它。如果使用動態的spfileSID.ora參數文件,則以nomount模式啟動數據庫,發出alter system命令并把作用域設為spfile(之所以是必要的,因為它是個靜態參數),將新的副本用于數據庫下次加載時。最后,像平常一樣關閉然后打開數據庫。
003 保護聯機重做日志文件
DBA不允許丟失當前聯機日志文件組的所有備份。如果出現這種情況,那么就會丟失數據。在丟失當前聯機日志文件組的所有成員時不丟失數據的唯一方式是配置一個無數據損失的data guard環境。
為什么受不丟失當前聯機日志文件組的所有成員至關重要呢?答案與實例恢復有關。實例崩潰后,SMON進程會使用當前聯機日志文件組的內容進行前滾恢復,從而修復數據庫中的任何損壞。如果當前聯機日志文件組由于未被多路復用以及一個成員因介質受損被破壞而變得不可用,那么SMON進程無法進行前滾恢復。如果SMON進程無法進行前滾修正數據庫的損壞,那么不可能打開數據庫。
與多路復用的控制文件一樣,一個日志文件組中的多個成員在理想情況下應當位于不同的磁盤上不同的控制器上。
對聯機重做日志文件的寫操作最終將成為Oracle環境中的一個瓶頸:執行DML語句的速度不能快于LGWR進程將變更寫至磁盤的速度。因此在高吞吐量的系統中,需要確保重做日志文件位于速度最快的控制器所服務的最快速磁盤上。
如果重做日志文件組的一個成員被損壞或丟失,那么數據庫在存在備份成員的情況下仍然會保持打開狀態。這與控制文件不同,控制文件的任何副本的損壞都會使數據庫立即崩潰。同樣,只要存在至少兩個重做日志文件組并且每個組至少具有一個有效的成員,那么在數據庫打開時也可以添加或移動重做日志文件組以及組中的成員。
004 歸檔日志模式和歸檔器進程
變量
描述
%d
唯一的數據庫標識符,如果將多個數據庫歸檔到同一目錄,這是必須的
%t
線程號,顯示為v$instances視圖的thread#列,除了在RAC數據庫中使用之外,這個變量沒有任何意義
%r
場景(incarnation)號。如果進行了不完全恢復,這個變量就十分重要
%s
日志切換序列號。這個變量能夠保證任何一個數據庫中的歸檔日志都不會彼此重寫
歸檔相關的幾個參數:
log_archive_dest_n
log_archive_dest
log_archive_duplex_dest
log_archive_min_succeed_dest
如果ARCn進程遇到寫歸檔日志文件的問題,最終數據庫會掛起。這將取決于目標數、必須成功的最少數目,以及有問題的目標是否是強制的。歸檔失敗的一般原因是目標已滿。因此有必要監視歸檔的進程,將歸檔日志文件從磁盤目標遷移至磁帶,為更多的歸檔操作釋放空間。在任何情況下,應定期將所有歸檔日志備份到磁帶上。這可手動或使用RMAN完成。
總結
以上是生活随笔為你收集整理的oracle数据库硬恢复,Oracle数据库的可恢复性设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android .9.png图片的处理
- 下一篇: 分路由器怎么设置密码路由器如何分配每个人