備份和還原:系統資料庫 (SQL Server)

適用於:SQL Server

SQL Server 會維護一組系統層級資料庫,稱為 系統資料庫 ,這對伺服器實例的作業至關重要。 在每次重大更新之後,有幾個系統資料庫必須加以備份。 您必須一律備份的系統資料庫包括 msdbmastermodel 。 如果有任何資料庫在伺服器實例上使用複寫,您也必須備份 distribution 系統資料庫。 這些系統資料庫的備份可讓您在系統失敗後還原和復原 SQL Server 系統,例如遺失存放裝置。

下表摘要列出所有系統資料庫。

系統資料庫 描述 需要備份嗎? 復原模式 註解
master 記錄 SQL Server 系統中所有系統層級資訊的資料庫。 Simple master視需要備份,以充分保護您的商務需求資料。 建議安排定期備份,您可在進行大規模更新之後,以額外的備份來補充。 不支援 的 master 交易記錄備份。
model SQL Server 執行個體上所建立所有資料庫的範本。 Yes 使用者可設定 的 1 只有在商務需求需要時才備份 model ;例如,在自訂其資料庫選項之後立即備份。

最佳做法: 建議您視需要只建立 的完整資料庫備份 model 。 因為 model 很小且很少變更,因此不需要備份記錄。
msdb SQL Server Agent 用於排程警示和作業以及用於記錄操作員的資料庫。 msdb 也包含記錄資料表,例如備份和還原記錄資料表。 Yes 簡單 (預設值) msdb每當更新時備份。
資源資料庫 (RDB) 唯讀資料庫,其中包含 SQL Server 隨附所有系統物件的複本 No 資源資料庫位於檔案中 mssqlsystemresource.mdf ,其中只包含程式碼。 因此,SQL Server 無法備份資源資料庫。

注意: 您可以將檔案視為二進位檔案 .exe ,而不是資料庫檔案,以對 mssqlsystemresource.mdf 檔案執行檔案型或磁片備份。 但是您無法在備份上使用 SQL Server 還原。 還原 的備份複本 mssqlsystemresource.mdf 只能手動完成,而且您必須小心不要以過期或可能不安全的版本覆寫目前的 Resource 資料庫。
tempdb 用以保存暫存或中繼結果集的工作空間。 每當 SQL Server 執行個體啟動時,就會重新建立此資料庫。 當伺服器實例關閉時,中的 tempdb 任何資料會永久刪除。 No Simple 您無法備份 tempdb 系統資料庫。
設定散發 唯有將伺服器設定為複寫散發者時才會存在的資料庫。 這個資料庫會儲存各種複寫的中繼資料和記錄資料,以及異動複寫的交易。 Simple 如需何時備份 distribution 資料庫的資訊,請參閱 備份和還原複寫的資料庫

1 若要瞭解模型的目前復原模式,請參閱 檢視或變更資料庫 (SQL Server) sys.databases (Transact-SQL) 的復原模式。

還原系統資料庫的限制

您只能從伺服器執行個體目前執行的 SQL Server 版本所建立的備份還原系統資料庫。 例如,若要在使用 Service Pack 1 執行 SQL Server 2016 (13.x) 的伺服器實例上還原系統資料庫,您必須使用在伺服器實例升級至 SQL Server 2016 (13.x) SP 1 之後建立的資料庫備份。

若要還原任何資料庫,SQL Server 的執行個體必須處於執行中狀態。 啟動 SQL Server 實例時, master 必須能夠存取資料庫,且至少部分可供使用。 如果 master 變成無法使用,您可以使用下列任一種方式,將資料庫傳回可用狀態:

  • 從目前的資料庫備份還原 master

    如果您可以啟動伺服器實例,您應該能夠從完整資料庫備份還原 master 。 如需詳細資訊,請參閱 還原 master 資料庫(Transact-SQL)。

  • 完全重建 master

    如果嚴重損壞而 master 無法啟動 SQL Server,您必須重建 master 。 如需詳細資訊,請參閱重建系統資料庫

    重要

    master重建會重建所有系統資料庫。

在某些情況下,復原 model 資料庫的問題可能需要重建系統資料庫,或取代 mdf 資料庫的 和 ldf 檔案 model 。 如需詳細資訊,請參閱重建系統資料庫

相關工作