耿永翔
【摘要】當(dāng)今的許多系統(tǒng)包含了海量的數(shù)據(jù),而對數(shù)據(jù)的維護(hù)變得尤為重要。本文主要講述了當(dāng)前非常流行的數(shù)據(jù)庫--Microsoft SQL Server數(shù)據(jù)庫(簡稱SQL Server數(shù)據(jù)庫)的數(shù)據(jù)備份與恢復(fù),具有較高的實(shí)用性。
【關(guān)鍵詞】SQL Server數(shù)據(jù)庫數(shù)據(jù)庫備份數(shù)據(jù)庫恢復(fù)
一、引言
隨著科技的迅猛發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)為人們提供各種方便,但同時(shí)也出現(xiàn)了一些新的問題需要我們解決,如計(jì)算機(jī)病毒入侵、來自各方面的網(wǎng)絡(luò)攻擊等等,這些行為都可能導(dǎo)致系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)被破壞或丟失,這對于系統(tǒng)數(shù)據(jù)的管理是非常重要同時(shí)也是非常必要的。
二、SQL Server數(shù)據(jù)庫的備份設(shè)備介紹
在SQL Server的數(shù)據(jù)備份過程中,我們通常將數(shù)據(jù)備份到以下三種存儲介質(zhì)中,它們是磁盤和磁帶以及管道。它們用以存儲我們需要備份的數(shù)據(jù)。在使用磁盤作為存儲介質(zhì)時(shí),我們放在主機(jī)上(本地計(jì)算機(jī)),也可以放在網(wǎng)絡(luò)中的遠(yuǎn)程服務(wù)器上(通過網(wǎng)絡(luò)共享的遠(yuǎn)程計(jì)算機(jī))。而使用磁帶作為存儲介質(zhì)時(shí)只能將其驅(qū)動器安裝在數(shù)據(jù)庫服務(wù)器上。當(dāng)使用管道進(jìn)行數(shù)據(jù)備份時(shí),我們需要借助第三方數(shù)據(jù)備份軟件來進(jìn)行,通常第三方的數(shù)據(jù)備份軟件具有操作簡易而且功能強(qiáng)大等優(yōu)點(diǎn)。在數(shù)據(jù)的存儲時(shí),SQL Server數(shù)據(jù)庫通常會使用邏輯標(biāo)號和物理標(biāo)號來區(qū)別存儲介質(zhì),同一存儲介質(zhì)的邏輯標(biāo)號與物理標(biāo)號是對應(yīng)的,系統(tǒng)可以方便的通過邏輯標(biāo)號來引用物理標(biāo)號,即數(shù)據(jù)具體的存儲情況。在SQL Server數(shù)據(jù)庫中,邏輯標(biāo)號名稱通常存儲在系統(tǒng)數(shù)據(jù)庫master的sysdevices表中。
三、選取SQL Server數(shù)據(jù)庫的最佳備份方案
對于SQL Server數(shù)據(jù)庫備份的方案選取,我們需要綜合考慮數(shù)據(jù)庫的備份程度與恢復(fù)方式,同時(shí)需要考慮數(shù)據(jù)庫可能發(fā)生何種故障,只有在了解數(shù)據(jù)庫可能發(fā)生何種故障時(shí),我們才能采取對應(yīng)的備份方案來解決。下面介紹幾種常用數(shù)據(jù)備份方案。
(1)完全備份方案。該方案是對當(dāng)前的數(shù)據(jù)庫進(jìn)行全部備份,它具有操作簡單、恢復(fù)方便等優(yōu)點(diǎn);但是該方案不能恢復(fù)備份時(shí)到故障發(fā)生時(shí)這段時(shí)間的數(shù)據(jù)。(2)差異備份方案。該方案的備份速度非???,只需備份發(fā)生變化的數(shù)據(jù);但它必須與完全備份方案結(jié)合在一起才能使用。(3)數(shù)據(jù)庫事務(wù)日志備份方案。該方案可以很方便、有效地選擇需要恢復(fù)的數(shù)據(jù),即在故障發(fā)生時(shí)已經(jīng)成功執(zhí)行并提交的事務(wù)都將被恢復(fù);但如果有不記錄事務(wù)日志的事務(wù)執(zhí)行時(shí),該方案則無法恢復(fù)。(4)文件組備份方案、差異備份方案、數(shù)據(jù)庫事務(wù)日志備份方案三種數(shù)據(jù)備份方案結(jié)合在一起使用?,F(xiàn)在有許多大型系統(tǒng)的數(shù)據(jù)庫分布在不同的磁盤上,利用這一方案可以很好的解決這一類數(shù)據(jù)庫的備份,而且該方案備份靈活,數(shù)據(jù)恢復(fù)的可控性也非常強(qiáng);但該方案的操作與管理程序比較煩雜。(5)完全備份方案與差異備份方案以及數(shù)據(jù)庫事務(wù)日志備份方案三者綜合使用。該方案是目前非常常用的數(shù)據(jù)庫備份方案,因?yàn)樗艽蟠筇岣呦到y(tǒng)數(shù)據(jù)庫的安全性,同時(shí)該方案是上述所有方案中風(fēng)險(xiǎn)最小的一種。
四、SQL Server數(shù)據(jù)庫備份與恢復(fù)示例
SQL Server是一種性價(jià)比很高的數(shù)據(jù)庫,它具有很大的市場占有率。所以對它進(jìn)行數(shù)據(jù)備份與恢復(fù)變得十分重要,這里我們以Delphi環(huán)境為例,介紹如何進(jìn)行SQL Server的數(shù)據(jù)備份與恢復(fù)。
在Delphi中進(jìn)行SQL Server數(shù)據(jù)備份與恢復(fù)時(shí),我們可以通過調(diào)用SQL Server系統(tǒng)中的備份與恢復(fù)兩個存儲過程來實(shí)現(xiàn)。
SQL Server備份數(shù)據(jù)的存儲過程如下:
CREATE PROCEDURE [ backupdatabasename ]( )
AS
set @ dd=‘backup database newdb to disk=‘+ @
ss+‘
exec (@ dd)
SQL Server恢復(fù)數(shù)據(jù)的存儲過程如下:
CREATE PROCEDURE [ restoredatabasename ]
(@ ss [ varchar] ( 500) )
AS
declare @ dd varchar( 100)
set @ dd=‘restore database newdb from disk=+
@ss+with replace
exec (@ dd)
上述存儲過程中,newdb是需要備份和恢復(fù)的數(shù)據(jù)庫名稱。在進(jìn)行數(shù)據(jù)備份和恢復(fù)時(shí),用戶必須獨(dú)占所要備份和恢復(fù)的數(shù)據(jù)庫。
五、結(jié)束語
本文討論了SQL Server數(shù)據(jù)備份與恢復(fù)的相關(guān)問題,并講述了如何對SQL Server進(jìn)行數(shù)據(jù)備份與恢復(fù),其備份與恢復(fù)實(shí)現(xiàn)簡單,具有較高的實(shí)用性。
參考文獻(xiàn)
[1]周緒等. SQL Server7入門與提高.北京:清華大學(xué)出版社,2010
[2]鄭阿奇. SQL Server實(shí)用教程.北京:電子工業(yè)出版社,2002