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