啓動SQL Server服務和數據庫

在日常管理維護SQL Server的時候,我們需要注意很多地方,然後有時候做起事情來也不得章法,現在就基本的原理和常見問題的解決思路,在這跟大家分享一下。
首先介紹一下SQL Server基本的運行原理。
作爲一個Windows服務,SQL Server的每個實例就是一個sqlserve.exe進程。這個進程啓動後會讀取SQL Server實例的啓動配置,檢測硬件,配置內存和CPU,初始化一些SQL Server系統配置,啓動數據庫,連接網絡。然後數據庫就算正常啓動了,然後客戶端可以正常訪問了。
這個是基本的啓動過程,那在什麼情況下回出現不能正常啓動呢,當然介紹的都是我們可以解決的基本情況,像執行文件損壞,數據庫損壞,這些不能立即解決的問題,日後在介紹。
1.SQL Server實例服務進程無法正常啓動
sqlservr.exe進程在啓動的時候,需要讀取一些註冊表的鍵值以及讀取一些文件,然後根據這些配置做相應的動作。
那需要讀取的註冊表鍵值是哪些,一般都有什麼作用呢:
1)HLM\SPFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer下,
Audit Level:設置SQL Server是否記錄用戶登錄信息,也可以在Management Studio裏的服務器屬性設置。
Login Mode:設置SQL Server是隻接收Windows賬戶登錄,還是同時接收WIndows和SQL server賬戶。
2)啓動參數HLM\SPFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\Parameters下,
SQL Server可以有很多啓動參數,有些事提供分析問題用的。
下面介紹幾個固定的參數:
-d 記錄的是master數據庫的數據文件物理位置
-l 記錄的是master日誌文件物理位置
-e 記錄的是SQL Server錯誤日誌文件的位置
3)網絡配置信息HLM\SPFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\SuperSocketNetLib下,
SQL Server會偵聽哪幾個網絡協議,以及每個網絡協議的配置,也是放在註冊表裏。
從註冊表讀取SQL Server啓動信息這一步可能遇到的兩個問題:
1)啓動賬號權限問題
如果啓動賬號沒有權限讀取註冊表或調用SQL Server的某些資源文件,那麼SQL Server這個進程有可能無法創建,這時可能errorlog文件都無法生成。
需要解決這個問題,就是給啓動賬戶賦予權限。
2)日誌文件和文件夾訪問問題
SQL Server要成功啓動,必須要能正確的創建出日誌文件errorlog,如果日誌文件不能被創建成功,那麼SQL Server也就不能啓動。
有時候日誌的路徑不正確,即-e參數指定的位置不正確;或者某個進程將errorlog文件鎖定了。
2.系統數據庫無法正常啓動
SQL Server服務開啓後,首先就是要去啓動系統數據庫,如果系統數據庫無法正常打開,SQL Server也不會正常啓動。
3.網絡配置失敗
要接收客戶端的連接,SQL Server必須配置好網絡協議,一般是TCP/IP,Named Pipe,LPC,如果協議沒有正確配置,客戶端也不能正常連接到SQL Server。
SQL Server要啓動的協議裏,有
Shared Memory是專供本地連接通過LPC(Local Procedure Call)技術像SQL Server做的連接。
Named Pipe是客戶需要通過pipe的名字和SQL Server交互,有時,需要確認errorlog裏打出pipe名字就是客戶端期望。
TCP/IP是SQL Server實例偵聽的IP地址以及端口號。
4.用戶數據無法正常啓動
SQL Server啓動的最後一步是打開用戶數據庫,如果數據庫文件損壞,或者上次SQL Server關閉的時候數據庫沒有被正常關閉,開啓用戶數據庫的時候可能會遇到麻煩。
5.羣集環境下SQL Server資源無法保持正常在線
羣集環境下安裝的SQL Server,會由Windows羣集服務來監控SQL Server是否正常工作。如果羣集服務連不上SQL Server,就可能發生切換。管理需要監控和分析,SQL Server資源爲什麼不能保持在線,上次發生切換的原因是什麼。
提示:Errorlog日誌記錄的是SQL Server在啓動或運行過程中遇到的所有嚴重問題,所以當SQL Server遇到異常問題時,首先檢查日誌文件。這個文件一般保存7個,按時間由近到遠的順序,且重啓SQL Server服務會生成新的errorlog文件。

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