sql server2000還原模型的說明
SQL Server 2000為我們提供了三種數(shù)據(jù)庫恢復(fù)模型:simple(簡單恢復(fù)),full(完全恢復(fù)),bulk_logged(大容量日志記錄恢復(fù))。簡單恢復(fù)模型最容易操作,但它是最缺乏靈活性的災(zāi)難恢復(fù)策略。選擇簡單恢復(fù)模型等同于把trunc. log on chkpt.設(shè)置成true。在這種恢復(fù)模型下,我們只能進(jìn)行完全備份和差異備份(differential backup):這是因?yàn)槭聞?wù)日志總是被截?cái)啵聞?wù)日志備份不可用。一般地,對(duì)于一個(gè)包含關(guān)鍵性數(shù)據(jù)的系統(tǒng),我們不應(yīng)該選擇簡單恢復(fù)模型,因?yàn)樗荒軌驇椭覀儼严到y(tǒng)還原到故障點(diǎn)。使用這種恢復(fù)模型時(shí),我們最多只能把系統(tǒng)恢復(fù)到最后一次成功進(jìn)行完全備份和差異備份的狀態(tài)。進(jìn)行恢復(fù)時(shí),我們首先要恢復(fù)最后一次成功進(jìn)行的完全備份,然后在此基礎(chǔ)上恢復(fù)差異備份(差異備份只能把自從數(shù)據(jù)庫最后一次完全備份之后對(duì)數(shù)據(jù)庫的改動(dòng)施加到數(shù)據(jù)庫上)。完全恢復(fù)模型把trunc. log on chkpt.選項(xiàng)和Select Into/Bulk Copy選項(xiàng)都設(shè)置成false。完全恢復(fù)具有把數(shù)據(jù)庫恢復(fù)到故障點(diǎn)或特定即時(shí)點(diǎn)的能力。對(duì)于保護(hù)那些包含關(guān)鍵性數(shù)據(jù)的環(huán)境來說,這種模型很理想,但它提高了設(shè)備和管理的代價(jià),因?yàn)槿绻麛?shù)據(jù)庫訪問比較頻繁的話,系統(tǒng)將很快產(chǎn)生龐大的事務(wù)日志記錄。由于在這種模型中Select Into/Bulk Copy設(shè)置成了false,SQL Server將記錄包括大容量數(shù)據(jù)裝入在內(nèi)的所有事件。最后一種恢復(fù)模型是大容量日志記錄恢復(fù),它把trunc. log on chkpt.設(shè)置成false,把Select Into/Bulk Copy設(shè)置成true。在大容量日志記錄恢復(fù)模型中,大容量復(fù)制操作的數(shù)據(jù)丟失程度要比完全恢復(fù)模型嚴(yán)重。完全恢復(fù)模型記錄大容量復(fù)制操作的完整日志,但在大容量日志記錄恢復(fù)模型下,SQL Server只記錄這些操作的最小日志,而且無法逐個(gè)控制這些操作。在大容量日志記錄恢復(fù)模型中,數(shù)據(jù)文件損壞可能導(dǎo)致要求手工重做工作。 下表比較了三種恢復(fù)模型的特點(diǎn)。恢復(fù)模型 優(yōu)點(diǎn) 工作損失表現(xiàn) 能否恢復(fù)到即時(shí)點(diǎn)? 簡單 允許高性能大容量復(fù)制操作。收回日志空間,使得空間要求最小。 必須重做自最新的數(shù)據(jù)庫或差異備份后所發(fā)生的更改。 可以恢復(fù)到任何備份的結(jié)尾處。隨后必須重做更改。 完全 數(shù)據(jù)文件丟失或損壞不會(huì)導(dǎo)致工作損失。可以恢復(fù)到任意即時(shí)點(diǎn)(例如,應(yīng)用程序或用戶錯(cuò)誤之前)。 正常情況下沒有。如果日志損壞,則必須重做自最新的日志備份后所發(fā)生的更改。 可以恢復(fù)到任何即時(shí)點(diǎn)。 大容量日志記錄 允許高性能大容量復(fù)制操作。大容量操作使用最少的日志空間。 如果日志損壞,或者自最新的日志備份后發(fā)生了大容量操作,則必須重做自上次備份后所做的更改。 否則不丟失任何工作。 可以恢復(fù)到任何備份的結(jié)尾處。隨后必須重做更改。
在數(shù)據(jù)庫的Options選項(xiàng)卡中,我們可以從Model下拉列表框選擇Simple把恢復(fù)模型改成簡單模型。另外,Microsoft擴(kuò)展了ALTER DATABASE命令,我們可以用它設(shè)置數(shù)據(jù)庫屬性。例如,用下面這個(gè)T-SQL命令可以把恢復(fù)模型設(shè)置為完全恢復(fù)模型:ALTER DATABASE Northwind SET RECOVERY FULL
