在SQL Server 2000中,有無數(shù)種備份數(shù)據(jù)庫的方法。無論你的數(shù)據(jù)庫有多大、改變是否頻繁,都有滿足你的要求的備份策略。讓我們看看幾種可以在不同環(huán)境下工作的基本備份策略。
本文假定你有備份數(shù)據(jù)庫的權(quán)限。也就是說,你要么是系統(tǒng)管理員,要么是db_owner或者backupadministrator。還有,我們還假定你的操作系統(tǒng)提供了訪問備份所需要的資源的權(quán)利,例如,訪問磁盤或者磁帶驅(qū)動器。
從哪兒開始
在你開始備份一個SQL Server數(shù)據(jù)庫之前,你需要知道該數(shù)據(jù)庫使用了哪個恢復(fù)模型。這里有三種不同的恢復(fù)模型:FULL、BULK_LOGGED和SIMPLE。
FULL恢復(fù)模型向你提供了的恢復(fù)靈活性。新數(shù)據(jù)庫默認(rèn)使用的就是這種恢復(fù)模型。利用這種模型,你可以恢復(fù)數(shù)據(jù)庫的一部分或者完全恢復(fù)。假設(shè)交易記錄(transactions log)還沒有被破壞,你還可以在失敗之前恢復(fù)出最后一次的已提交(committed)交易。在所有的恢復(fù)模型中,這種模型使用了最多的交易記錄空間,并輕微影響了SQL Server的性能。
BULK_LOGGED恢復(fù)模型比FULL模型少了一些恢復(fù)選項,但是進(jìn)行批操作(bulk operation)時它不會嚴(yán)重影響性能。在進(jìn)行某些批操作時,由于它只需記錄操作的結(jié)果,因此它使用了較少的記錄空間。然而,用這種模型,你不能恢復(fù)數(shù)據(jù)庫中的特定標(biāo)記,也不能僅僅恢復(fù)數(shù)據(jù)庫的一部分。
SIMPLE恢復(fù)模型是這三種模型中最容易實施的,它所占用的存儲空間也最小。然而,你只能恢復(fù)出備份結(jié)束時刻的數(shù)據(jù)庫。
為了找出你所用數(shù)據(jù)庫的恢復(fù)模型,可以運行下面的命令,該命令應(yīng)該返回FULL、BULK_LOGGED和SIMPLE這三個值中的某一個:
SELECT dbpropertyex("database", "recovery")
為了改變數(shù)據(jù)庫的恢復(fù)選項,運行下面的命令:
ALTER DATABASE database name SET RECOVERY {FULL SIMPLE BULK_LOGGED}
除數(shù)據(jù)之外,SQL Server備份還包括數(shù)據(jù)庫大綱(schema)和數(shù)據(jù)庫元數(shù)據(jù)(即數(shù)據(jù)庫文件、文件組和它們的位置)。SQL Server允許在備份時用戶依然使用數(shù)據(jù)庫,所以在備份期間發(fā)生的交易也記錄到備份中去了。
備份數(shù)據(jù)庫
為了備份數(shù)據(jù)庫,你可以運行BACKUP命令。(你也可以使用SQL Enterprise Manager。)在執(zhí)行命令之前知道它的語法永遠(yuǎn)是個好主意。BACKUP命令有許多選項,它的基本語法是:
BACKUP DATABASE { database_name } TO < backup_device >
backup_device可以是磁盤或者磁帶——或者它也可以是一個用磁盤文件、磁帶或者已命名管道表示的邏輯上的備份設(shè)備。
如果你想做一個快速、一次性的備份,那么向下面那樣使用磁盤文件:
BACKUP DATABASE Northwind TO DISK = "c:\backup\Northwind.bak"
如果你想把數(shù)據(jù)庫備份到另外一臺服務(wù)器上,可以使用UNC名字:
BACKUP DATABASE Northwind TO DISK =\\FILESERVER\Shared\Backup\Northwind.bak
本文假定你有備份數(shù)據(jù)庫的權(quán)限。也就是說,你要么是系統(tǒng)管理員,要么是db_owner或者backupadministrator。還有,我們還假定你的操作系統(tǒng)提供了訪問備份所需要的資源的權(quán)利,例如,訪問磁盤或者磁帶驅(qū)動器。
從哪兒開始
在你開始備份一個SQL Server數(shù)據(jù)庫之前,你需要知道該數(shù)據(jù)庫使用了哪個恢復(fù)模型。這里有三種不同的恢復(fù)模型:FULL、BULK_LOGGED和SIMPLE。
FULL恢復(fù)模型向你提供了的恢復(fù)靈活性。新數(shù)據(jù)庫默認(rèn)使用的就是這種恢復(fù)模型。利用這種模型,你可以恢復(fù)數(shù)據(jù)庫的一部分或者完全恢復(fù)。假設(shè)交易記錄(transactions log)還沒有被破壞,你還可以在失敗之前恢復(fù)出最后一次的已提交(committed)交易。在所有的恢復(fù)模型中,這種模型使用了最多的交易記錄空間,并輕微影響了SQL Server的性能。
BULK_LOGGED恢復(fù)模型比FULL模型少了一些恢復(fù)選項,但是進(jìn)行批操作(bulk operation)時它不會嚴(yán)重影響性能。在進(jìn)行某些批操作時,由于它只需記錄操作的結(jié)果,因此它使用了較少的記錄空間。然而,用這種模型,你不能恢復(fù)數(shù)據(jù)庫中的特定標(biāo)記,也不能僅僅恢復(fù)數(shù)據(jù)庫的一部分。
SIMPLE恢復(fù)模型是這三種模型中最容易實施的,它所占用的存儲空間也最小。然而,你只能恢復(fù)出備份結(jié)束時刻的數(shù)據(jù)庫。
為了找出你所用數(shù)據(jù)庫的恢復(fù)模型,可以運行下面的命令,該命令應(yīng)該返回FULL、BULK_LOGGED和SIMPLE這三個值中的某一個:
SELECT dbpropertyex("database", "recovery")
為了改變數(shù)據(jù)庫的恢復(fù)選項,運行下面的命令:
ALTER DATABASE database name SET RECOVERY {FULL SIMPLE BULK_LOGGED}
除數(shù)據(jù)之外,SQL Server備份還包括數(shù)據(jù)庫大綱(schema)和數(shù)據(jù)庫元數(shù)據(jù)(即數(shù)據(jù)庫文件、文件組和它們的位置)。SQL Server允許在備份時用戶依然使用數(shù)據(jù)庫,所以在備份期間發(fā)生的交易也記錄到備份中去了。
備份數(shù)據(jù)庫
為了備份數(shù)據(jù)庫,你可以運行BACKUP命令。(你也可以使用SQL Enterprise Manager。)在執(zhí)行命令之前知道它的語法永遠(yuǎn)是個好主意。BACKUP命令有許多選項,它的基本語法是:
BACKUP DATABASE { database_name } TO < backup_device >
backup_device可以是磁盤或者磁帶——或者它也可以是一個用磁盤文件、磁帶或者已命名管道表示的邏輯上的備份設(shè)備。
如果你想做一個快速、一次性的備份,那么向下面那樣使用磁盤文件:
BACKUP DATABASE Northwind TO DISK = "c:\backup\Northwind.bak"
如果你想把數(shù)據(jù)庫備份到另外一臺服務(wù)器上,可以使用UNC名字:
BACKUP DATABASE Northwind TO DISK =\\FILESERVER\Shared\Backup\Northwind.bak