沉著應對突發的數據庫災難
導讀:數據庫中的數據信息具有很高的價值,不容被破壞,當然,數據庫網絡管理員都有可能遇到數據庫崩潰的時候。若故障發生時,計算機未必有時間把未完成的事務和內存中的數據頁寫入磁盤,將可能出現數據丟失或者數據庫不能正常訪問的故障,輕則使企業的業務系統不能運行,重則可能會給企業帶來災難性的損失。數據庫管理員最重要的職責是保證數據庫系統正常運行,為決策層領導提供數據支持,這是數據庫管理員的基本目標。數據庫管理員需要了解數據庫文件結構原理,不同情況下數據丟失的恢復方法,以沉著應對各種數據丟失的突發事件。
文件組成原理
SQL Server數據庫系統主要由兩大部分組成,分別是數據文件以及日志文件。數據文件存儲數據,日志文件存儲操作數據的行為。
數據文件
SQL Server數據庫包含兩種類型的數據文件:主數據文件和次要數據文件。主數據文件是數據庫的起點,指向數據庫中的其他文件。每個數據庫都有一個主數據文件。主數據文件默認文件擴展名是.mdf。除主數據文件以外的所有其他數據文件都是次要數據文件。某些數據庫可能不含有任何次要數據文件,而有些數據庫則含有多個次要數據文件。次要數據文件的推薦文件擴展名是.ndf。
日志文件
日志文件在數據庫中作用十分重要。在執行數據操作的過程中,首先將數據操作命令寫入到緩存中,并立即寫入日志文件,但不會立即寫入數據文件。日志文件通過一個標記點來確定某個操作是否已將緩存中的數據寫入數據文件。當SQLServer重啟后,會自動查看日志中最新的標記點,并將這個標記點后面的交易記錄抹去,因為這些交易記錄并沒有真正地將緩存中的數據寫入數據文件。這可以防止那些中斷的操作修改數據文件。
事務日志記錄數據庫操作命令,僅記錄執行數據發生的動作,而不是記錄數據的執行結果。因此備份事務日志后,將備份點之前已經完成的事務標記為“不活動”,而且在執行完整備份數據庫后,將自動截斷標記為“不活動”的日志記錄。合理的安排事務日志備份將提高數據恢復的能力,可以將數據恢復到發生故障前的1秒鐘。
各種文件丟失恢復方法
數據文件丟失
數據庫系統處于運行狀態時,數據庫文件處于“活動”狀態,數據庫文件不能被刪除。如果確實出現數據文件被刪除的情況,可能由于以下原因:MS SQL Server數據庫服務停止;或者在企業管理器中,數據庫管理員使用“分離數據庫”功能,分離數據庫后將數據庫文件刪除。
當出現數據庫文件被刪除時,首先需要了解數據庫文件如何被刪除,再利用恢復軟件恢復被刪除的文件。如果是在服務被停止的狀態下刪除,數據庫文件恢復后,數據庫文件即可正常加載。如果是數據庫分離后的刪除,數據庫文件恢復后,在企業管理器中,使用附加數據庫功能即可。
日志文件丟失
日志文件丟失,經常出現在硬件出現故障時,主要體現在數據文件和日志分別存儲在不同的物理介質中,當介質損壞時,日志文件隨之丟失。丟失SQL Server日志文件分為兩類:無活動事務的日志和包含活動事務的日志。
SQL Server在工作狀態下無法刪除日志文件,事務日志文件在SQL Server服務未啟動的情況下可以被刪除。啟動SQL服務后,數據庫即被標志為“置疑”狀態,這種狀態下丟失的日志文件為無活動事務日志文件。無活動事務的日志丟失時,首先在企業管理器中,使用分離數據庫功能,分離“置疑”的數據庫。然后,使用附加數據庫功能附加數據庫,在附加的過程中創建新的日志文件即可。
掌握好這些方法,在數據庫出現故障時或許能幫您解決難題,使數據庫輕松度過難關,沉著應對突發的數據庫災難,不要慌張,要首先確保數據庫中數據信息的安全。
【編輯推薦】