利用下面的列出的技巧來確保你不會在每周一次的數據庫備份過程中忘記關鍵步驟。
每周一次備份主數據庫。如果你創建、修改或者停止一個數據庫,添加新的SQL Server消息,添加或者停止連接服務器,或者添加記錄設備,那就進行手工備份。
每天備份一次msdb數據庫。它一般非常小,但很重要,因為它包含了所有的SQL Server工作、操作和計劃任務。
只有當你修改它時,才有必要備份模型數據庫。
用SQL Server Agent來安排你的備份工作的時間表。
如果在你的生產(production)環境中有現成資源,備份生產數據庫到本地磁盤或者網絡服務器(用同一個開關)。然後,把備份文件/設備拷貝到磁帶上。在存在許多硬件故障(特別是在RAID系統中)的情況下,磁盤常常是完好的(inact)。如果備份文件是在磁盤上,那麼恢復時的速度會提高很多。
備份開發和測試數據庫至少要用到SIMPLE恢復模型。
除了有計劃的定時備份外,在進行未記錄的(nonlogged)批操作(如,批拷貝)、創建索引、或者改變恢復模型後要備份用戶數據庫。
如果你使用的是SIMPLE恢復模型,記住在截短(truncate)交易記錄之後備份你的數據庫。
用文檔記錄你的恢復步驟。至少要大概記錄這些步驟,注意所有的重要文件的位置。
在截短記錄之前,也就是所有的已提交(committed)交易從記錄中清空之前,所有的這些信息都保存在交易記錄中。在SIMPLE恢復模型中,記錄在一個CHECKPOINT期間內截短(在SQL Server內存緩沖寫道磁盤時),它是自動發生的,但也可以手動執行。這也就是SIMPLE恢復模型不支持時間點(point-in-time)恢復的原因。在FULL和BULK_LOGGED恢復模型下,當交易記錄被備份時,交易記錄被截短,除非你明確指出不進行截短。
為了備份交易記錄,使用BACKUP LOG命令。其基本語法與BACKUP命令非常相似:
BACKUP LOG { database } TO <backup device>
下面是如何把交易記錄備份到一個名為LogBackupDevice的邏輯設備上的例子:
BACKUP TRANSACTION Northwind TO LogBackupDevice
如果你不希望截短交易記錄,使用NO_TRUNCATE選項,如下所示:
BACKUP TRANSACTION Northwind TO LogBackupDevice WITH NO_TRUNCATE
只是基本知識
盡管我在本文中僅僅概述了數據庫恢復的基本知識,你還是可以通過這些技巧來找到正確的方向。那麼,為了避免不必要的(丟失數據造成的)恐慌,你要做到每周備份主數據庫,每天備份msdb。