就是愛分享
電腦科技日益進步,但經過數十年的發展,電腦軟硬體的穩定性仍未達多數人能滿意的水準,電腦中的資料還是有喪失或毀損的情況發生,若再加上天災人禍等意外狀況,存於電腦中的資料實在是不太安全了。就算使用的是具有容錯能力的RAID磁碟陣列,也是難以保證資料庫是百分之百的安全。

雖然電腦軟硬體設備的費用可能不便宜,但大多數的人都認同經過長時間所累積的電腦資料才是更珍貴的資產,因此為了防止在各種意外發生時,仍能保有資料庫的完整性,管理者就必需花額外的時間和資源來備份SQL Server中的資料庫。SQL Server本身當然也提供了不少備份的功能:

資料庫備份
也就是備份整個資料庫內容。如果要將SQL Server中所有資料庫都備份下來,可能需要相當龐大的儲存空間來存放備份資料。但其好處是在還原資料庫時,也只需將整個資料庫從一份資料庫備份還原到SQL Server就可以了。另外,就算要是使用下述的差異式備份或交易紀錄備份,也必須是在做過完整的資料庫備份後才能進行。

差異式(Differential)備份
只備份從上一次執行完整資料庫備份後有更動過的資料,因此所需的備份時間和儲存空間,通常會比資料庫備份少很多,所以適合還原,然後再用最近一次所做的差異式備份還原到SQL Server,就可讀資料庫的內容回復到最近一次差異式備份時的同樣內容。

交易記錄(Transaction Log)備份
只備份交易記錄檔的內容,由於交易記錄檔只會紀錄我們在前一次資料庫備份或交易記錄備份之後,對資料庫所做的異動過程,也就是只記錄某一段時間的資料庫異動情形,因此在做交易記錄備份之前,一定需做過一次完整的資料庫備份才行。交易記錄備份所需的時間和儲存空間應該不多,不過在做還原時,除了要先將資料庫備份還原外,還需再依序還原各個交易記錄備份中的內容。

檔案及檔案群組備份
如果資料庫的內容分散存於多個檔案或檔案群組,而且資料庫已非常龐大,大到進行一次完整的資料庫備份會有時間和儲存空間上的問題,就可使用這種方式來備份資料庫中部分檔案或檔案群組。由於每次只備份部分的檔案或檔案群組,因此需做數次不同的備份才能完成整個資料庫的備份,但資料庫大到不方便做完整備份時也只好如此。而且檔案及檔案群組備份也也另一個好處,就是當損毀的資料只是資料庫中的某個檔案或檔案群組時,也只要還原毀損的檔案或檔案群組備份就可以了,比起只有整個資料庫的備份時,要還原整個資料庫方便許多。

由於資料庫的備份有多種不同的方法,很自然地,還原資料庫時也需依照當初備份資料庫的方式,及還原作業的時間點,以對應的步驟將備份下來的資料還原到伺服器中,以使資料庫的內容能回復到您所希望的時間點(通常是越接近資料庫出問題的時間越好)。以下介紹各種備份的還原方式:

資料庫備份的還原
不管之前只進行完整的資料庫備份,或是資料庫備份、差異式、和交易記錄備份交錯使用,遇到需要還原資料庫時,都需先還原完整的資料庫備份。

若是只做完整的資料庫備份,只需還原最新的備份資料,就算是完成還原的工作了。但若是搭配差異式或交易記錄備份的話,則此處的還原完整的資料庫備份,應該就只是整個還原作業中的第一個動作而已,在將最近一次的資料庫備份還原到伺服器後,可能還得繼續還原後續的差異式或交易記錄備份資料。

差異式備份的還原
還原差異式備份,其步驟並不複雜,只需先還原最近一次的完整資料庫備份,然後再還原最近一次差異式備份即可。例如採取每週六做一次資料庫備份,每天清晨做一次差異式備份者,在星期三遇到要做還原的情況時,需先還原上週六的資料庫備份,然後再還原當天清晨所做的差異式備份,即可完成整個還原的工作。

如果在做完這兩個還原動作後,您還有後續的交易記錄備份,則可再取出這些備份資料,依序以稍後介紹的方法將它們還原。

交易記錄備份的還原
還原交易記錄備份會比較麻煩,但由於通常我們都會以較頻繁的頻率進行交易記錄備份,所以使用交易記錄備份時,也意味著我們能將資料庫的內容回復到較接近目前的狀態。
0 Responses