數(shù)據(jù)庫(kù)備份策略在維護(hù)系統(tǒng)數(shù)據(jù)安全起著非同小可的作用,好的備份策略應(yīng)該考慮保證數(shù)據(jù)的安全,并且操作較為方便。
基本過(guò)程很簡(jiǎn)單,如下:
1.備份到本地硬盤(pán):
dump transaction with truncate_only
dump database … to …
dump transaction
。。。
2.當(dāng)裝載數(shù)據(jù)庫(kù)和事務(wù)日志時(shí),為防止其他用戶(hù)對(duì)數(shù)據(jù)庫(kù)的操作,須把數(shù)據(jù)庫(kù)設(shè)置為 dbo use only。
進(jìn)行裝載時(shí)的順序?yàn)椋?
dump transaction with no_truncate
load database database_name from ...
load transaction database_name from ...
。。。
online database
也可以用until指定恢復(fù)到某個(gè)時(shí)間
使用閾值管理
可以使用閾值管理,在閾值管理中安排當(dāng)超過(guò)某個(gè)閾值時(shí)自動(dòng)轉(zhuǎn)儲(chǔ)事務(wù)日志。當(dāng)超過(guò)閥值以后,SQL Serve中斷或掛起試圖寫(xiě)這個(gè)日志的用戶(hù)事務(wù)。對(duì)每一個(gè)掛起的事務(wù) 向errorlog 發(fā)一條消息;然后執(zhí)行sp_thresholdaction
sp_thresholdaction用戶(hù)自己編寫(xiě)
create procedure sp_thresholdaction
@dbname varchar(30),
@segmentname varchar(30),
as
dump transaction @dbname to "DEVICE"
print "LOG DUMP: %1! for %2! dumped", @segmentname, @dbname
其中參數(shù) :
@dbname 為達(dá)到閥值的數(shù)據(jù)庫(kù)名;
@segmentname 為達(dá)到閥值的段名;
用戶(hù)數(shù)據(jù)庫(kù)損壞的處理
如果數(shù)據(jù)庫(kù)處于suspect狀態(tài),無(wú)法用drop database 刪除時(shí):
dbcc dbrepair (db_name, dropdb)
create database db_name on dev_name for load
load database db_name from dump_device
master庫(kù)損壞的處理
?使用 buildmaster -m 重建一個(gè)新的 master 數(shù)據(jù)庫(kù);
buildmaster 建立 master 設(shè)備并在這個(gè)設(shè)備上建立 master, model, tempdb 庫(kù)。
-m 選項(xiàng)只重新寫(xiě) master 庫(kù), 而不修改配置塊或初始化 master 設(shè)備。
? 以單用戶(hù)方式重啟動(dòng)服務(wù)器, 如果需要的話(huà), 則需增加轉(zhuǎn)儲(chǔ)設(shè)備;
? 從備份裝載 master 數(shù)據(jù)庫(kù);
? 用 startserver 重啟 SQL Server;
? 檢查一致性: 對(duì)每一個(gè)數(shù)據(jù)庫(kù)運(yùn)行 dbcc checkalloc,并對(duì)重要的表進(jìn)行檢查;
但是,當(dāng)我們問(wèn)及sybase的技術(shù)支持是否建議使用threshold 時(shí),他們并不積極建議這樣做,理由是自動(dòng)化操作往往會(huì)出現(xiàn)一些難于預(yù)料的結(jié)果。當(dāng)然,要是有那么負(fù)責(zé)的dba,天天定時(shí)手工備份,當(dāng)然是再好不過(guò)了。
基本的備份操作是簡(jiǎn)單,但是我們?cè)趯?shí)際實(shí)施備策略時(shí),往往會(huì)考慮這樣那樣的問(wèn)題,也會(huì)出現(xiàn)一些意想不到的問(wèn)題,比如:
1、是整庫(kù)備份還是增量備份
2、每天什么時(shí)候備份,備份時(shí)間怎么安排
3、萬(wàn)一需要恢復(fù)數(shù)據(jù)庫(kù),當(dāng)前的備份能恢復(fù)到一個(gè)什么程度
4、數(shù)據(jù)庫(kù)在恢復(fù)時(shí)可能出現(xiàn)哪些緊急情況
等等...


