在日常管理維護(hù)SQL Server的時候,我們需要注意很多地方,然后有時候做起事情來也不得章法,現(xiàn)在就基本的原理和常見問題的解決思路,在這跟大家分享一下。
首先介紹一下SQL Server基本的運(yùn)行原理。
作為一個Windows服務(wù),SQL Server的每個實(shí)例就是一個sqlserve.exe進(jìn)程。這個進(jìn)程啟動后會讀取SQL Server實(shí)例的啟動配置,檢測硬件,配置內(nèi)存和CPU,初始化一些SQL Server系統(tǒng)配置,啟動數(shù)據(jù)庫,連接網(wǎng)絡(luò)。然后數(shù)據(jù)庫就算正常啟動了,然后客戶端可以正常訪問了。
這個是基本的啟動過程,那在什么情況下回出現(xiàn)不能正常啟動呢,當(dāng)然介紹的都是我們可以解決的基本情況,像執(zhí)行文件損壞,數(shù)據(jù)庫損壞,這些不能立即解決的問題,日后在介紹。
1.SQL Server實(shí)例服務(wù)進(jìn)程無法正常啟動
sqlservr.exe進(jìn)程在啟動的時候,需要讀取一些注冊表的鍵值以及讀取一些文件,然后根據(jù)這些配置做相應(yīng)的動作。
那需要讀取的注冊表鍵值是哪些,一般都有什么作用呢:
1)HLM\SPFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer下,
Audit Level:設(shè)置SQL Server是否記錄用戶登錄信息,也可以在Management Studio里的服務(wù)器屬性設(shè)置。
Login Mode:設(shè)置SQL Server是只接收Windows賬戶登錄,還是同時接收WIndows和SQL server賬戶。
2)啟動參數(shù)HLM\SPFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\Parameters下,
SQL Server可以有很多啟動參數(shù),有些事提供分析問題用的。
下面介紹幾個固定的參數(shù):
-d 記錄的是master數(shù)據(jù)庫的數(shù)據(jù)文件物理位置
-l 記錄的是master日志文件物理位置
-e 記錄的是SQL Server錯誤日志文件的位置
3)網(wǎng)絡(luò)配置信息HLM\SPFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\SuperSocketNetLib下,
SQL Server會偵聽哪幾個網(wǎng)絡(luò)協(xié)議,以及每個網(wǎng)絡(luò)協(xié)議的配置,也是放在注冊表里。
從注冊表讀取SQL Server啟動信息這一步可能遇到的兩個問題:
1)啟動賬號權(quán)限問題
如果啟動賬號沒有權(quán)限讀取注冊表或調(diào)用SQL Server的某些資源文件,那么SQL Server這個進(jìn)程有可能無法創(chuàng)建,這時可能errorlog文件都無法生成。
需要解決這個問題,就是給啟動賬戶賦予權(quán)限。
2)日志文件和文件夾訪問問題
SQL Server要成功啟動,必須要能正確的創(chuàng)建出日志文件errorlog,如果日志文件不能被創(chuàng)建成功,那么SQL Server也就不能啟動。
有時候日志的路徑不正確,即-e參數(shù)指定的位置不正確;或者某個進(jìn)程將errorlog文件鎖定了。
2.系統(tǒng)數(shù)據(jù)庫無法正常啟動
SQL Server服務(wù)開啟后,首先就是要去啟動系統(tǒng)數(shù)據(jù)庫,如果系統(tǒng)數(shù)據(jù)庫無法正常打開,SQL Server也不會正常啟動。
3.網(wǎng)絡(luò)配置失敗
要接收客戶端的連接,SQL Server必須配置好網(wǎng)絡(luò)協(xié)議,一般是TCP/IP,Named Pipe,LPC,如果協(xié)議沒有正確配置,客戶端也不能正常連接到SQL Server。
SQL Server要啟動的協(xié)議里,有
Shared Memory是專供本地連接通過LPC(Local Procedure Call)技術(shù)像SQL Server做的連接。
Named Pipe是客戶需要通過pipe的名字和SQL Server交互,有時,需要確認(rèn)errorlog里打出pipe名字就是客戶端期望。
TCP/IP是SQL Server實(shí)例偵聽的IP地址以及端口號。
4.用戶數(shù)據(jù)無法正常啟動
SQL Server啟動的最后一步是打開用戶數(shù)據(jù)庫,如果數(shù)據(jù)庫文件損壞,或者上次SQL Server關(guān)閉的時候數(shù)據(jù)庫沒有被正常關(guān)閉,開啟用戶數(shù)據(jù)庫的時候可能會遇到麻煩。
5.群集環(huán)境下SQL Server資源無法保持正常在線
群集環(huán)境下安裝的SQL Server,會由Windows群集服務(wù)來監(jiān)控SQL Server是否正常工作。如果群集服務(wù)連不上SQL Server,就可能發(fā)生切換。管理需要監(jiān)控和分析,SQL Server資源為什么不能保持在線,上次發(fā)生切換的原因是什么。
提示:Errorlog日志記錄的是SQL Server在啟動或運(yùn)行過程中遇到的所有嚴(yán)重問題,所以當(dāng)SQL Server遇到異常問題時,首先檢查日志文件。這個文件一般保存7個,按時間由近到遠(yuǎn)的順序,且重啟SQL Server服務(wù)會生成新的errorlog文件。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。