10.2 系統數據庫

10.2 系統數據庫


10.2.1 顯示系統數據庫

  SQL Server 默認有5個系統數據庫:master、model、msdb、Resource和tempdb。

  系統數據庫將顯示在“系統數據庫”節點下。用戶創建的數據庫將直接顯示在“數據庫”節點之下。每個 SQL Server 實例可以包含一個或多個用戶數據庫。

wKiom1VAdX-zrJoaAAG6GnDkujk044.jpg



10.2.2  master 數據庫

  master 數據庫記錄 SQL Server 系統的所有系統級信息。這包括實例範圍的元數據(例如登錄帳戶)、端點、鏈接服務器和系統配置設置。此外,master 數據庫還記錄了所有其他數據庫的存在、數據庫文件的位置以及 SQL Server 的初始化信息。

  如果 master 數據庫不可用,則 SQL Server 無法啓動。

  master 數據庫的 ID 始終爲 1。


最佳實踐:

  鑑於 master 數據庫的重要性,建議始終有一個 master 數據庫的有效備份。

  如果創建、修改或刪除了任意數據庫,或者更改了服務器或數據庫的配置值,或者添加或修改了登錄帳戶,由於 master 的數據已經更新,請儘快備份 master 數據庫。


10.2.3  model 數據庫

  model 數據庫是一個模板,在 SQL Server 實例上創建的所有數據庫將使用這個模板。model 數據庫的全部內容(包括數據庫選項)都會被複制到新的數據庫。

  啓動期間,也可使用 model 數據庫的某些設置創建新的 tempdb,因此 model 數據庫必須始終存在於 SQL Server 系統中。

  model 數據庫的 ID 始終爲 3。


10.2.4  msdb 數據庫

  SQL Server 代理使用 msdb 數據庫來計劃警報和作業,SSMS、Service Broker 和數據庫郵件等其他功能也使用該數據庫。

  例如,SQL Server 在 msdb 中的表中自動保留一份完整的聯機備份與還原歷史記錄。這些信息包括執行備份一方的名稱、備份時間和用來存儲備份的設備或文件。 SSMS 利用這些信息來提出計劃,以還原數據庫和應用任何事務日誌備份。

  msdb 也會記錄有關所有數據庫的備份事件,即使它們是由自定義應用程序或第三方工具創建的。例如,如果使用調用 SQL Server 管理對象 (SMO) 對象的 Microsoft Visual Basic 應用程序執行備份操作,則事件將記錄在 msdb 系統表、Microsoft Windows 應用程序日誌和 SQL Server 錯誤日誌中。

  msdb 數據庫的 ID 始終爲 4。


10.2.5  Resource 數據庫

  Resource 數據庫爲只讀數據庫,它包含了 SQL Server 中的所有系統對象。SQL Server 系統對象(例如 sys.objects)在物理上保留在 Resource 數據庫中,但在邏輯上顯示在每個數據庫的 sys 架構中。 Resource 數據庫不包含用戶數據或用戶元數據。

  Resource 數據庫支持更爲輕鬆快捷地升級到新的 SQL Server 版本。在早期版本的 SQL Server 中,進行升級需要刪除和創建系統對象。由於 Resource 數據庫文件包含所有系統對象,因此,現在僅通過將單個 Resource 數據庫文件複製到本地服務器便可完成升級。

  Resource 數據庫取決於 master 數據庫的位置。如果移動了 master 數據庫,則必須將 Resource 數據庫移動到同一個位置。Resource 數據庫的物理文件名爲 mssqlsystemresource.mdf 和 mssqlsystemresource.ldf。 這些文件位於 <drive>:\Program Files\Microsoft SQL Server\MSSQL12.<實例 ID>\MSSQL\Binn\ 文件夾。每個 SQL Server 實例都具有一個(也是唯一的一個)關聯的 mssqlsystemresource.mdf 文件,並且實例間不共享此文件。 

  SQL Server 不能備份 Resource 數據庫。

  Resource 數據庫的 ID 始終爲 32767。如果確定需要修改 Resource 數據庫,請在微軟的數據庫專家指導下進行。

  與 Resource 數據庫相關聯的其他重要值是版本號和數據庫的上次更新時間。以下查詢可以確定 Resource 數據庫的版本號以及上次升級時間。

SELECT SERVERPROPERTY('ResourceVersion');

GO

SELECT SERVERPROPERTY('ResourceLastUpdateDateTime');

GO


10.2.6  tempdb 數據庫

  tempdb 系統數據庫是一個全局資源,可供連接到 SQL Server 實例的所有用戶使用,並可用於保存臨時表、臨時變量、遊標、排序的中間結果的工作表、行版本等。

  每次啓動 SQL Server 時都會重新創建 tempdb,從而在系統啓動時總是保持一個乾淨的數據庫副本。

  因爲每次啓動 SQL Server 時都會創建 tempdb,所以 model 數據庫必須始終存在於 SQL Server 系統中。

  不允許對 tempdb 進行備份和還原操作。

  tempdb 數據庫的 ID 始終爲 2。


10.2.7  distribution 數據庫

  數據庫的 ID 最小爲 5。

  如果 SQL Server 實例配置爲複製分發服務器,複製(Replication)管理程序將自動在 SQL Server 實例中創建一個 distribution 數據庫。此數據庫存儲元數據、各種複製的歷史記錄數據以及用於事務複製的事務。由於此數據庫位於“系統數據庫”節點,因此不能直接刪除此數據庫,而是通過刪除對應的分發發佈服務器。



提示:

  SQL Server 2000 有一個 NorthWind 演示數據庫。SQL Server 2005 及後續產品不再提供演示數據庫,可以在開源網站 http://msftdbprodsamples.codeplex.com/ 下載。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章