詳細講解SQL Server系統(tǒng)數(shù)據(jù)庫的工作原理 |
發(fā)布時間:2007.12.11 04:44 來源:賽迪網 作者:93263 |
我們知道,DBA對SQL數(shù)據(jù)庫引擎的系統(tǒng)數(shù)據(jù)庫必須有深入的了解,同時,數(shù)據(jù)庫開發(fā)人員了解SQL Server自帶的系統(tǒng)數(shù)據(jù)庫也是十分有必要的。下文中列舉了其中的一些系統(tǒng)數(shù)據(jù)庫。
Master
Master數(shù)據(jù)庫保存有放在SQLSERVER實體上的所有數(shù)據(jù)庫,它還是將引擎固定起來的粘合劑。由于如果不使用主數(shù)據(jù)庫,SQLSERVER就不能啟動,所以你必須要小心地管理好這個數(shù)據(jù)庫。因此,對這個數(shù)據(jù)庫進行常規(guī)備份是十分必要的。
這個數(shù)據(jù)庫包括了諸如系統(tǒng)登錄、配置設置、已連接的SERVER等信息,以及用于該實體的其他系統(tǒng)和用戶數(shù)據(jù)庫的一般信息。主數(shù)據(jù)庫還存有擴展存儲過程,它能夠訪問外部進程,從而讓你能夠與磁盤子系統(tǒng)和系統(tǒng)API調用等特性交互。這些過程一般都用像C++這樣的現(xiàn)代編程語言。
如果不幸碰到系統(tǒng)崩潰而必須恢復主數(shù)據(jù)庫的情況,你可以參看MCSE/MCDBA Steven Warren在TechRepublic上發(fā)表的文章。這篇文章講得十分透徹,它解釋了恢復這一重要數(shù)據(jù)庫所需要的一些特殊步驟。
Model
Model是一個用來在實體上創(chuàng)建新用戶數(shù)據(jù)庫的模版數(shù)據(jù)庫。你可以把任何存儲過程、視圖、用戶等放在模型數(shù)據(jù)庫里,這樣在創(chuàng)建新數(shù)據(jù)庫的時候,新數(shù)據(jù)庫就會包含你放在模型數(shù)據(jù)庫里的所有對象了。
Tempdb
正如其名字所提示的,tempdb存有臨時對象,例如全局和本地臨時表格和存儲過程。
這個數(shù)據(jù)庫在SQLSERVER每次重啟的時候都會被重新創(chuàng)建,而其中包含的對象是依據(jù)模型數(shù)據(jù)庫里定義的對象被創(chuàng)建的。除了這些對象,tempdb還存有其他對象,例如表格變量、來自表格值函數(shù)的結果集,以及臨時表格變量。由于tempdb會保留SQLSERVER實體上所有數(shù)據(jù)庫的這些對象類型,所以對數(shù)據(jù)庫進行優(yōu)化配置是非常重要的。
在SQL Server 2005里,tempdb數(shù)據(jù)庫還有一項額外的任務;它還被用作一些特性的版本庫,例如新的快照隔離層和在線索引操作等。關于新的隔離層的簡要說明,請參考我關于SQL Server 2005高級特性的文章。
Distribution
當你的SQLSERVER實體被配置為復制分發(fā)SERVER時,這個數(shù)據(jù)庫就會被添加到你的系統(tǒng)里。在默認情況下,數(shù)據(jù)庫的名字就是distribution,但是你可以更改它的名字。這個數(shù)據(jù)庫用來保存歷史和快照、合并和事務復制等的元數(shù)據(jù)。
Msdb
Msdb數(shù)據(jù)庫用來保存于數(shù)據(jù)庫備份、SQL Agent信息、DTS程序包、SQLSERVER任務等信息,以及諸如日志轉移這樣的復制信息。
注釋:隨著工作或學習的深入,你會逐漸發(fā)現(xiàn)理解SQL Server的最佳方法是研究系統(tǒng)數(shù)據(jù)庫的工作原理。作為一條普遍的規(guī)律,我們通常不建議大家直接在SQL Server里查詢系統(tǒng)表格,但是通過研究這些系統(tǒng)數(shù)據(jù)庫里的表格,大家可以學到很多有關SQL Server工作原理的實用知識。 |