一、知識點
完全備份:備份全部選中的檔案夾,並不依賴檔案的存檔屬性來確定備份那些檔案。(在備份過程中,任何現有的標記都被清除,每個檔案都被標記為已備份,換言之,清除存檔屬性)。完全備份也叫完整備份。
差異備份:差異備份是針對完全備份:備份上一次的完全備份後發生變化的所有檔案。(差異備份過程中,只備份有標記的那些選中的檔案和檔案夾。它不清除標記,即:備份後不標記為已備份檔案,換言之,不清除存檔屬性)。
增量備份:增量備份是針對於上一次備份(無論是哪種備份):備份上一次備份後,所有發生變化的檔案。(增量備份過程中,只備份有標記的選中的檔案和檔案夾,它清除標記,即:備份後標記檔案,換言之,清除存檔屬性。)
交易記錄備份:在特定交易記錄備份之前執行的完整Database Backup和上次差異備份(如果有)。在完整Database Backup之後執行的所有交易記錄備份或在特定交易記錄備份之前執行的差異備份(如果您還原了差異備份)。如果你設定了復原模式為【簡單】,你將無法使用【交易記錄】備份。SQL Server 2000 和 SQL Server 2005: 建立交易記錄備份,您必須使用完整恢複或大容量日誌記錄恢複模型。
部份備份:通過指定 READ_WRITE_FILEGROUPS 建立的備份稱為“部份備份”。在簡單復原模式下,只允許對唯讀檔案組執行檔案組備份。還原的資料備份類型:Database Backup、部份備份或檔案備份。對於Database Backup或部份備份,記錄備份序列必須從Database Backup或部份備份的結尾處開始延續。對於一組檔案備份,記錄備份序列必須從整組檔案備份的開頭開始延續。
檔案備份:“檔案備份”包含一個或多個檔案(或檔案組)中的所有資料。
日誌鏈:連續的記錄備份序列稱為“日誌鏈”。日誌鏈從資料庫的完整備份開始。通常,僅當第一次備份資料庫時,或者將復原模式從簡單復原模式切換到完整復原模式或大量記錄復原模式之後,才會開始一個新的日誌鏈。除非在建立完整Database Backup時選擇覆蓋現有備份組,否則現有的日誌鏈將保持不變。在該日誌鏈保持不變的情況下,便可從媒體集中的任何完整Database Backup還原資料庫,然後再還原相應復原點之前的所有後續記錄備份。復原點可以是上次記錄備份的結尾,也可以是任何記錄備份中的特定復原點。
一個備份方案例子:某個網站在星期天晚上執行完整Database Backup。在白天每隔 4 小時製作一個交易記錄備份集,並用當天的備份重寫頭一天的備份。每晚則進行差異備份。如果資料庫的某個資料磁碟在星期四上午 9:12 出現故障,則該網站可以:
1) 備份當前交易記錄;(已經出現故障了,如何備份當前交易記錄?)
2) 還原從星期天晚上開始的Database Backup;
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:錯誤)