SQL Server 備份和還原全攻略

2021-09-08 17:10:38 字數 3820 閱讀 6140

原文:

sql server 備份和還原全攻略

一、知識點

完全備份:備份全部選中的資料夾,並不依賴檔案的存檔屬性來確定備份那些檔案。(在備份過程中,任何現有的標記都被清除,每個檔案都被標記為已備份,換言之,清除存檔屬性)。完全備份也叫完整備份。

差異備份:差異備份是針對完全備份:備份上一次的完全備份後發生變化的所有檔案。(差異備份過程中,只備份有標記的那些選中的檔案和資料夾。它不清除標記,即:備份後不標記為已備份檔案,換言之,不清除存檔屬性)。

增量備份:增量備份是針對於上一次備份(無論是哪種備份):備份上一次備份後,所有發生變化的檔案。(增量備份過程中,只備份有標記的選中的檔案和資料夾,它清除標記,即:備份後標記檔案,換言之,清除存檔屬性。)

事務日誌備份:在特定事務日誌備份之前執行的完整資料庫備份和上次差異備份(如果有)。在完整資料庫備份之後執行的所有事務日誌備份或在特定事務日誌備份之前執行的差異備份(如果您還原了差異備份)。如果你設定了恢復模式為【簡單】,你將無法使用【事務日誌】備份。sql server 2000 和 sql server 2005: 建立事務日誌備份,您必須使用完整恢復或大容量日誌記錄恢復模型。

部分備份:通過指定 read_write_filegroups 建立的備份稱為「部分備份」。在簡單恢復模式下,只允許對唯讀檔案組執行檔案組備份。還原的資料備份型別:資料庫備份、部分備份或檔案備份。對於資料庫備份或部分備份,日誌備份序列必須從資料庫備份或部分備份的結尾處開始延續。對於一組檔案備份,日誌備份序列必須從整組檔案備份的開頭開始延續。

檔案備份:「檔案備份」包含乙個或多個檔案(或檔案組)中的所有資料。

日誌鏈:連續的日誌備份序列稱為「日誌鏈」。日誌鏈從資料庫的完整備份開始。通常,僅當第一次備份資料庫時,或者將恢復模式從簡單恢復模式切換到完整恢復模式或大容量日誌恢復模式之後,才會開始乙個新的日誌鏈。除非在建立完整資料庫備份時選擇覆蓋現有備份集,否則現有的日誌鏈將保持不變。在該日誌鏈保持不變的情況下,便可從**集中的任何完整資料庫備份還原資料庫,然後再還原相應恢復點之前的所有後續日誌備份。恢復點可以是上次日誌備份的結尾,也可以是任何日誌備份中的特定恢復點。

乙個備份方案例子:某個站點在星期天晚上執行完整資料庫備份。在白天每隔 4 小時製作乙個事務日誌備份集,並用當天的備份重寫頭一天的備份。每晚則進行差異備份。如果資料庫的某個資料磁碟在星期四上午 9:12 出現故障,則該站點可以:

1)備份當前事務日誌;(已經出現故障了,如何備份當前事務日誌?)

2)還原從星期天晚上開始的資料庫備份;

3)還原從星期三晚上開始的差異備份,將資料庫前滾到這一時刻;

4)還原從早上 4 點到 8 點的事務日誌備份,以將資料庫前滾到早上 8 點;

5)還原故障之後的日誌備份。這將使資料庫前滾到故障發生的那一刻。

二、還原步驟

建立乙個叫testbackup的資料庫,建立一張叫table1的表,這個時候進行一次完整備份,備份檔案為:testbackupdb-full.bak;接著建立表table2後進行差異備份,備份檔案為:testbackupdb-diff.bak;接著建立表table3後進行事務日誌備份(如果資料庫設定了恢復模式為【簡單】,那麼在備份型別選項中將看不到【事務日誌】),備份檔案為:testbackupdb-log.bak;

建立乙個叫testbackup2的資料庫,用於測試testbackup資料庫的備份檔案的還原。

(圖1:建立庫結構)

(圖2:備份型別)

下面我們就可以對三個備份檔案:testbackupdb-full.bak、testbackupdb-diff.bak、testbackupdb-log.bak進行還原:

步驟1:還原完整備份檔案testbackupdb-full.bak,選項如圖4、圖5所示,還原成功後資料列表就會如圖6所示,這是因為恢復狀態選項:不對資料庫執行任何操作,不回滾未提交的事務。可以還原其他事務日誌。(restore with norecovery)

(圖3:進入ssms還原)

(圖4:還原常規)

(圖5:還原選項)

(圖6:完整備份還原)

步驟2:還原差異備份檔案testbackupdb-diff.bak,操作如步驟1所示,這個時候的資料庫還是跟圖6的狀態一樣的。

步驟3:還原事務日誌備份檔案testbackupdb-log.bak,如圖7進入事務日誌的還原操作介面;看圖8的選項中有指定事務的時間進行還原(還原過程中的恢復狀態都是預設為restore with recovery,所以這裡沒有提及這個選項)。還原後的testbackup2資料庫,還原之後的資料庫testbackup2如圖9所示。

(圖7:進入事務日誌)

(圖8:事務日誌)

(圖9:還原後的資料庫)

三、公升級

通常來說文章寫到這裡就應該結束了,但是很幸運,再給你介紹一下如何在對錶進行分割槽後的還原操作,從上面的操作來看只包括了mdf和ldf檔案,但如果多了幾個ndf檔案,這些還原又一樣嗎?所以我稱這部分的內容為公升級。

情景一:如果本來就有對應的分割槽檔案的,只要在還原的時候修改【還原為】的檔名就可以進行還原了。

情景二:如果剛剛新建了分割槽檔案組和檔案,這個時候接著還原備份就會出現圖10的錯誤(不知道是不是在sql server 2005的問題);要解決這個問題有兩個方法,第乙個:重啟資料庫服務再還原;第二個:設定資料庫的【限制訪問】設定為【single】;

(圖10:錯誤)

四、參考文獻

sql server資料的差異備份如何還原

使用事務日誌備份

sql server 2008事務日誌備份工作原理

有關從完整恢復模式或大容量日誌恢復模式切換的注意事項

備份和還原操作指南主題

SQLServer還原全庫備份

查詢源庫匯出的全庫備份對應的資料檔案和日誌檔案的logicalname restore filelistonly from disk opt mssql full.bak 查詢新建的資料庫對應的資料檔案和日誌檔案 select a.name 邏輯檔名 case when charindex log ...

SQL Server備份和還原

對於生產資料來講,資料的安全性是至關重要的,任何資料的丟失都可能產生嚴重的的後果。而備份作為資料的副本,可以有效的保護和恢復資料 資料丟失的原因 資料丟失的原因主要包括以下幾類 1 程式錯誤。例如,程式異常終止或邏輯錯誤等 2 人為錯誤。例如,使用者或管理員誤操作 3 計算機失敗。例如,硬體 軟體故...

Sql server 備份及還原

最常用的幾種備份方法 資料備份 資料庫級 完整資料庫備份 差異資料庫備份 檔案級 完整檔案備份 差異檔案備份 日誌備份 日誌備份 完整恢復模式下的備份 日誌備份 由於日誌備份只拷貝上次日誌備份以來的所有日誌記錄,所以開銷比資料庫備份小很多 如果災難毀壞的是資料檔案 在維護計畫裡先建立完整資料庫備份 ...