程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 深入了解SQLServer系統數據庫工作原理

深入了解SQLServer系統數據庫工作原理

編輯:關於SqlServer
數據庫管理員(DBA)的一項基本的技能是對SQL數據庫引擎的系統數據庫的深刻理解。數據庫開發人員了解SQLSERVER自帶的系統數據庫也是十分有用的。下面就列出了其中的一些系統數據庫。(注:如果你決定研究一下這些系統數據庫,那麼你需要有一個開發數據庫。) j:2y0Dg  
'r5w+v  
Master xZYj1A rk  
-"p NqZI  
Master數據庫保存有放在SQLSERVER實體上的所有數據庫,它還是將引擎固定起來的粘合劑。由於如果不使用主數據庫,SQLSERVER就不能啟動,所以你必須要小心地管理好這個數據庫。因此,對這個數據庫進行常規備份是十分必要的。 q>bkWw/+  
DrFc y  
這個數據庫包括了諸如系統登錄、配置設置、已連接的SERVER等信息,以及用於該實體的其他系統和用戶數據庫的一般信息。主數據庫還存有擴展存儲過程,它能夠訪問外部進程,從而讓你能夠與磁盤子系統和系統API調用等特性交互。這些過程一般都用像C++這樣的現代編程語言。 Fp3^P1U$  
BDN^` c*  
如果不幸碰到系統崩潰而必須恢復主數據庫的情況,你可以參看MCSE/MCDBA Steven Warren在TechRepublic上發表的文章。這篇文章講得十分透徹,它解釋了恢復這一重要數據庫所需要的一些特殊步驟。 > 2=nT+*w  
[HKgA2G  
Model >4o\ kD=  
]xYOoygJ  
Model是一個用來在實體上創建新用戶數據庫的模版數據庫。你可以把任何存儲過程、視圖、用戶等放在模型數據庫裡,這樣在創建新數據庫的時候,新數據庫就會包含你放在模型數據庫裡的所有對象了。 M$ 5%a  
A8Rs!/B|@  
Tempdb T-Egs8x`Z  
;jiTD\_wr  
正如其名字所提示的,tempdb存有臨時對象,例如全局和本地臨時表格和存儲過程。 {$7`i^q!I+  
]*w/8Ke7/"  
這個數據庫在SQLSERVER每次重啟的時候都會被重新創建,而其中包含的對象是依據模型數據庫裡定義的對象被創建的。除了這些對象,tempdb還存有其他對象,例如表格變量、來自表格值函數的結果集,以及臨時表格變量。由於tempdb會保留SQLSERVER實體上所有數據庫的這些對象類型,所以對數據庫進行優化配置是非常重要的。 )B:i0XAM  
\5!Jz+N*  
在SQL Server 2005裡,tempdb數據庫還有一項額外的任務;它還被用作一些特性的版本庫,例如新的快照隔離層和在線索引操作等。關於新的隔離層的簡要說明,請參考我關於SQL Server 2005高級特性的文章。 7uh|UJD  
a(g;B9MK  
Distribution  RZ|Z+1o  
Z'5Zco2  
當你的SQLSERVER實體被配置為復制分發SERVER時,這個數據庫就會被添加到你的系統裡。在默認情況下,數據庫的名字就是distribution,但是你可以更改它的名字。這個數據庫用來保存歷史和快照、合並和事務復制等的元數據。 Yl"~DYJL  
\?tw[ %  
Msdb WgRIT3zQ  
WszB3e"g  
Msdb數據庫用來保存於數據庫備份、SQL Agent信息、DTS程序包、SQLSERVER任務等信息,以及諸如日志轉移這樣的復制信息。 V1J]-84>S  
f~x&Ie   
結束語 J ZrrC_1  
^#is:g  
在過去幾年裡,我發現理解SQLSERVER的最佳方法是研究系統數據庫的工作原理。作為一條普遍的規律,我不建議你直接在SQLSERVER裡查詢系統表格;但是通過研究這些系統數據庫裡的表格,你可以學習到很多關於SQLSERVER工作原理的知識。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved