數據庫學習之(8)數據庫恢復的實現--各種數據轉儲方法


數據轉儲:是數據庫恢復中采用的基本技術。所謂轉儲即DBA 定期地將數據庫復制到磁帶或另一個磁盤上保存起來的過程。當數據庫遭到破壞后可以將后備副本重新裝入,將數據庫恢復到轉儲時的狀態。

靜態轉儲:在系統中無運行事務時進行的轉儲操作。靜態轉儲簡單,但必須等待正運行的用戶事務結束才能進行。同樣,新的事務必須等待轉儲結束才能執行。這會降低數據庫的可用性。

動態轉儲:指轉儲期間允許對數據庫進行存取或修改。動態轉儲可克服靜態轉儲的缺點,它不用等待正在運行的用戶事務結束,也不會影響新事務的運行。但是,轉儲結束時后援副本上的數據並不能保證正確有效。因為轉儲期間運行的事務可能修改了某些數據,使得后援副本上的數據不是數據庫的一致版本。為此,必須把轉儲期間各事務對數據庫的修改活動登記下來,建立日志文件( 109 file )。這樣,后援副本加上日志文件就能得到數據庫某一時刻的正確狀態。轉儲還可以分為海量轉儲和增量轉儲兩種方式。

海量轉儲:指每次轉儲全部數據庫。

增量轉儲:指每次只轉儲上一次轉儲后更新過的數據。從恢復角度看,使用海量轉儲得到的后備副本進行恢復一般說來更簡單些。但如果數據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。

日志文件
日志文件的作用:

  1. 日志文件是用來記錄事務對數據庫的更新操作的文件
  2. 事務故障恢復和系統故障必須使用日志文件
  3. 在動態轉儲方式中必須建立日志文件,后援副本和日志文件綜合起來才能有效的恢復數據庫,靜態轉儲方式中,也可以建立日志文件

日志文件主要又兩種格式:以記錄為單位的日志文件和以數據塊為單位的日志文件。
登記日志文件時必須遵循兩條原則:

  1. 登記的次序嚴格按並發事務執行的時間次序
  2. 必須先寫日志文件,后寫數據塊。

  對數據庫的修改寫到數據庫中和把表示這個修改的日志記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發生故障,即這兩個寫操作只完成一個。如果先寫了數據庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復這個修改了。如果先寫日志,但沒有修改數據庫,按日志恢復數據庫時只不過是多執行一次不必要的UNDO操作,並不會影響數據庫的正確性。所以為了安全,一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數據庫的修改。這就是“先寫日志文件”的原則。

參考:https://blog.csdn.net/zanshiyonghuming/article/details/50751129

https://www.cnblogs.com/gxcstyle/p/6881361.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM