SQL Server 會維護一組系統層級資料庫,即ystem 資料庫,這對伺服器實例的作業至關重要。 每個重大更新之後,都必須備份數個系統資料庫。 您必須一律備份的系統資料庫包含 msdb、 master 和 model。 如果有任何資料庫在伺服器實例上使用複寫,您也必須備份 分發 系統資料庫。 這些系統資料庫的備份可讓您在發生系統失敗時還原和復原 SQL Server 系統,例如硬碟遺失。
下表摘要說明所有系統資料庫。
| 系統資料庫 | 說明 | 需要備份嗎? | 恢復模式 | 評論 |
|---|---|---|---|---|
| 主人 | 記錄 SQL Server 系統之所有系統層級資訊的資料庫。 | 是的 | 簡單 | 根據您的業務需求,頻繁備份主副本以充分保護數據。 我們建議定期備份排程,您可以在大量更新之後補充額外的備份。 |
| 模型 | 在 SQL Server 實例上建立之所有資料庫的範本。 | 是的 | 用戶可配置1 | 只有在您的商務需求需要時才備份模型,例如,自定義其資料庫選項後立即備份。 最佳做法: 建議您視需要只建立 模型的完整資料庫備份。 因為 模型 很小且很少變更,因此不需要備份記錄。 |
| msdb | SQL Server Agent 使用的資料庫,用於排程警示和作業以及記錄操作員。 msdb 也包含記錄數據表,例如備份和還原記錄數據表。 | 是的 | 簡單 (預設值) | 每當 msdb 被更新時備份。 |
| 資源 (RDB) | 唯讀資料庫,其中包含隨 SQL Server 隨附的所有系統物件複本 | 否 | - |
資源資料庫位於mssqlsystemresource.mdf檔案中,其中只包含程序代碼。 因此,SQL Server 無法備份 資源 資料庫。 注意:您可以藉由將檔案視為二進制檔(.exe)檔案,而不是資料庫檔案,在mssqlsystemresource.mdf檔案上執行檔案型或磁碟備份。 但是您無法在備份上使用 SQL Server 還原。 還原mssqlsystemresource.mdf的備份復本只能手動完成,您必須小心不要以過期或可能不安全的版本覆寫目前的 Resource 資料庫。 |
| tempdb | 用來保留暫存或中繼結果集的工作區。 每次啟動 SQL Server 實例時,都會重新建立此資料庫。 當伺服器實例關閉時, tempdb 中的任何數據會永久刪除。 | 否 | 簡單 | 您無法備份 tempdb 系統資料庫。 |
| 設定散發 | 只有在伺服器設定為復寫散發者時才存在的資料庫。 此資料庫會儲存所有類型的複寫的元數據和歷程記錄數據,以及事務複製的交易。 | 是的 | 簡單 | 如需何時備份 發行 資料庫的資訊,請參閱 備份和還原複製的資料庫。 |
1 若要瞭解模型的目前恢復模式,請參閱檢視或變更資料庫 (SQL Server) 或 sys.databases 的恢復模式 (Transact-SQL)。
還原系統資料庫的限制
系統資料庫只能從伺服器實例目前執行之 SQL Server 版本上建立的備份還原。 例如,若要在 SQL Server 2012 SP1 上執行的伺服器實例上還原系統資料庫。
若要還原任何資料庫,SQL Server 實例必須執行。 啟動 SQL Server 實例需要 可存取 master 資料庫,且至少部分可使用。 如果 master 變成無法使用,您可以使用下列任一種方式,將資料庫傳回可用狀態:
從目前的資料庫備份還原 master 。
如果您可以啟動伺服器實例,您應該能夠從完整資料庫備份還原 master 。
完全重建 主圖形 。
如果 master 嚴重損壞導致您無法啟動 SQL Server,您必須重建 master。 如需詳細資訊,請參閱 重建系統資料庫。
這很重要
重建 master 會重建所有系統資料庫。
在某些情況下,復原模型資料庫的問題可能需要重建系統資料庫,或取代模型資料庫的 mdf 和 ldf 檔案。 如需詳細資訊,請參閱 重建系統資料庫。