對於唯讀資料庫,單獨使用完整備份比同時使用完整備份和差異備份更容易管理。
當資料庫為唯讀時,備份和其他操作無法更改檔案中包含的元資料。
因此,差異備份所要求的元資料(如差異備份開始的日誌序列號,即差異基準 lsn)儲存在master資料庫中。
如果在資料庫唯讀時採用的是差異基準,則差異位圖指示的更改多於在基準備份之後實際發生的更改。
額外的資料由備份讀取,但不會寫入到備份中,因為儲存在 backupset 系統表中的differential_base_lsn用於確定在基準之後是否實際更改了資料。
重新構建、還原唯讀資料庫或者分離再重新附加唯讀資料庫後,會丟失差異基準資訊。
這是因為master資料庫與使用者資料庫不同步。
sql server 資料庫引擎無法檢測或防止此問題的出現。
所有後續差異備份都不是基於最新的完整備份,從而可能會出現出人意料的結果。
若要建立新的差異基準,建議先建立完整資料庫備份。
建立唯讀資料庫的完整資料庫備份之後,如果要建立後續差異備份,則請備份master資料庫。
如果master資料庫丟失,請在還原使用者資料庫的任何差異備份之前,將其還原。
如果分離和附加計畫稍後對其使用差異備份的唯讀資料庫,則應盡快執行此唯讀資料庫和master資料庫的完整資料庫備份。
差異備份 (sql server)
SQL Server差異備份的備份 還原原理
記住一點 差異備份是基於最後一次完整備份的差異,而不是基於最後一次差異的差異 備份過程 1 完整備份之後有無對資料庫做過修改,如果有,記錄資料庫的最後lsn last lsn 如果完整備份之後無對資料庫做過修改,那麼差異備份就沒有意義了 2 做差異備份時根據差異位圖讀取差異頁面內容 注意 差異位圖記...
sqlserver 差異備份與還原示例
建立測試資料庫 create database test gouse test go 建立測試表 create table test id uniqueidentifier default newid summary varchar 200 完整備份資料庫 backup database test ...
sqlserver 差異備份與還原示例
示例 建立測試資料庫 create database test gouse test go 建立測試表 create table test id uniqueidentifier default newid summary varchar 200 完整備份資料庫 backup database te...