1. 數據庫組成
數據庫的存儲結構分為邏輯存儲結構和物理存儲結構。
◊ 邏輯存儲結構:說明數據庫是由哪些性質的信息所組成。SQL Server的數據庫不僅僅只是數據的存儲,所有與數據處理操作相關的信息都存儲在數據庫中。
◊ 物理存儲結構:數據庫在磁盤上是以文件為單位存儲的,由數據庫文件和事務日志文件組成,一個數據庫至少應該包含一個數據庫文件和一個事務日志文件。
SQL Server數據庫系統中的數據庫文件是由數據文件和日志文件組成的,數據文件以盤區為單位存儲在存儲器中。
1.1 數據文件
數據庫文件是指數據庫中用來存放數據庫數據和數據庫對象的文件,一個數據庫可以有一個或多個數據庫文件,一個數據庫文件只能屬於一個數據庫。當有多個數據庫文件時,有一個文件被定為主數據文件,用來存儲數據庫的啟動信息和部分或全部數據,一個數據庫只能有一個主數據庫文件。數據文件則划分為不同的頁面和區域,頁是SQL Server存儲數據的基本單位。
主數據文件是數據庫的起點,指向數據庫文件的其他部分,每個數據庫都有一個主要數據文件,擴展名為.mdf。
次數據文件包含除主數據庫文件之外的所有數據文件,一個數據庫可以沒有次數據文件,也可以有多個次數據文件,擴展名為.ndf。
1.2 日志文件
SQL Server的日志是由一系列日志記錄組成,日志文件中記錄了存儲數據庫的更新情況等事務日志信息,用戶對數據庫進行的插入、刪除和更新等操作都會記錄在日志文件中。當數據庫損壞時,可以根據日志文件來分析出錯的原因,或者數據丟失時,還可以使用事務日志恢復數據庫。每一個數據庫至少必須擁有一個事務日志文件,而且允許擁有多個日志文件。
SQL Server2012不強制使用.mdf、.ndf或者.ldf作為文件的擴展名,但建議使用這些擴展名幫助標准文件的用途。數據庫中的所有文件的位置都記錄在master數據庫和該數據庫在主數據文件中。
2. 系統數據庫
2.1 master數據庫
master是SQL Server中最重要的數據庫,是整個數據庫服務器的核心。用戶不能直接修改master數據庫,如果master數據庫損壞了,那么整個SQL Server服務器將不能工作。
master數據庫中包含了以下的一些內容:
◊ 所有用戶的登錄信息
◊ 用戶所在的組
◊ 所有系統的配置選項
◊ 服務器中本地數據庫的名稱和信息
◊ SQL Server的初始化方式等
master數據庫保存系統表用於系統的總體控制。如在新建一個數據庫時,在master數據庫的sysdatabases表中插入對應的記錄。
作為一個數據庫管理員,應該定期備份master數據庫。
2.2 model數據庫
model數據庫是SQL Server中創建數據庫的模板,如果用戶
◊ 希望創建的數據庫有相同的初始化文件大小,則可以在model數據庫中保存文件大小的信息;
◊ 希望所有的數據庫中都有相同的一個或多個表,可以將該數據表保存在model數據庫中。
新創建的數據庫以model數據庫中的數據作為模板,因此在修改model數據庫之前要考慮到,任何對model數據庫中數據的修改都要影響到所有使用該模板創建的數據庫。
由於model數據庫作為其他任意數據庫的模板,系統中必須保留,不能刪除。
在更改model數據庫時需要注意:任意新建的數據庫至少要比model數據庫大。如果將model數據庫大小更改為100MB,則不能創建小於100MB的數據庫。
2.3 msdb數據庫
msdb提供了運行SQL Server Agent工作的信息。SQL Server Agent是SQL Server中的一個Windows服務,該服務用來運行制定的計划任務。如在計划對一個數據庫每夜進行備份時,則在msdb數據庫中有一個相應的記錄項。
2.4 tempdb數據庫
tempdb是SQL Server中的一個臨時數據庫,用於存放臨時對象或中間結果,只要創建臨時表,則臨時表會創建在tempdb數據庫中。SQL Server關閉后,該數據庫中的內容被清空,每次重新啟動服務器之后,tempdb數據庫將被完全重建。