SQL Server資料庫啟動過程詳解及啟動不起來的問題分析及解決方案

來源:互聯網
上載者:User

SQL Server資料庫啟動過程詳解及啟動不起來的問題分析及解決方案

目前SQL Server資料庫作為微軟一款優秀的RDBMS,其本身啟動的時候是很少出問題的,我們在平時用的時候,很少關注起啟動過程,或者很少瞭解其底層運行過程,大部分的過程只關注其內部的表、預存程序、視圖、函數等一系列應用方式,而當有一天它啟動並執行正常的時候突然啟動不起來了,這時候就束手無策了,能做的或許只能是重裝、配置、還原等,但這一個過程其實是一個非常耗時的過程,尤其當我們面對是龐大的生產庫的時候,可能在這火燒眉毛的時刻,是不允許你再重搭建一套環境的。

所以作為一個合格的資料庫使用者,我們要瞭解其啟動、運行過程的事情,一旦發生問題,我們也能及時定位,迅速解決。

閑言少敘,我們進入本篇的正題。 

SQL Server本身就是一個Windows服務,每一個執行個體對應的就是一個sqlserver.exe進程。這是一個可執行檔檔案,預設就放在SQL Server的安裝目錄下,當我們啟動的時候,就是直接調用這個檔案,然後啟動這個服務。 

第一部分、SQL Server執行個體啟動的方法和啟動所發生的問題

  SQL Server執行個體分為下面幾種啟動方法:

(1)在Windows服務控制台裏手動啟動,或者自動啟動(預設),這個也是最常用的方式

(2)第二種方式是SQL Server本身自己提供的啟動方式,我們這裡可以手動啟動

(3)在SQL Server的SSMS裡面手動啟動它,這個方式一般大部分利用這種方式進行手動重啟

(4)通過Windows命令視窗,用'net start'命令手動啟動,這種方法也可以用

以上這幾種方式都可以啟動SQL Sever,並且都會在SQL 日誌資訊中有所記錄。

 

----------------------------------------------------------霸氣的分割線-----------------------------------------------------------------------

第二部分、SQL Server執行個體啟動的詳細過程以及所發生的問題項

第一步、檢查登錄機碼

當一個sqlserver.exe檔案開始啟動的時候,首先要乾的第一件事就是先檢查它的配置資訊存放於註冊表的值項

比較重要的幾個索引值有下面幾個:

這裡的

AuditLevel:其實就是SQL 如何記錄使用者登入記錄;

LoginMode:是SQL Server伺服器身分識別驗證方式等;

BackupDirectory:預設的備份路徑等資訊;

關於註冊表資訊簡要瞭解即可,不建議做任何修改,當然這些值的資訊預設在SQL Server中都能設定:

在不修改註冊表的情況下,一般這一步的啟動順序一般不會出現問題,當然出現問題了也通常沒有辦法解決,大部分的解決方式只有重裝了。

但這一步驟,通常出現以下兩個個問題通常是可以解決的:

<1>啟動帳號許可權問題

如果我們啟動SQL Server的進程使用的帳號連讀註冊表的許可權都沒有,那這個服務是怎麼也啟動不了的,通常這時候連SQL 的錯誤記錄檔都沒有能力產生出來。

這時候我們該如何發現呢,雖然這時候它沒有能力建立SQL 的錯誤記錄檔,但是它在Windows層面留下了痕迹,我們來看:

我將服務啟動帳號設定成gust來賓帳號,來啟動該服務

這時候會產生以下錯誤資訊:

在Windows的日誌資訊裡也會產生一條錯誤記錄檔記錄:

這裡的拒絕訪問指的就是拒絕訪問註冊表資訊了。

解決方案:

此問題的解決方式就很簡單了,只需要將當然的使用者提權到SQL Server服務的啟動帳號就行了,提權的方式也很簡單,只需要添加到SQL的本機使用者的啟動服務組就可以了。

當然,也可以直接換一個更進階別的使用者登入。一般預設都用的超級管理員賬戶。

<2>訪問日誌和檔案夾出現問題

預設在SQL Server啟動的時候會建立一個開機記錄檔案,記錄所有正確的日誌資訊,當然也包括錯誤的日誌資訊,如果這時候找不到這個日誌資訊的路徑,或者已經存在一個日誌,但是日誌被鎖定了(某些NB的殺毒軟體擅長幹這個),這時候這個服務也是啟動不了的,同樣也建立不出SQL Server的記錄檔,這時候我們還得藉助於Windows平台本身,來解決。

SQL Server啟動的建立的記錄檔路徑,同樣存在於登錄機碼裡,我們來看這個參數:

這裡我們故意改成一個錯誤的路徑,來啟動下看看:

會產生以下錯誤

系統的錯誤記錄檔資訊

錯誤說明的很清楚。

解決方案:

這個問題解決起來也很簡單,只需要檢查好該路徑,確保路徑下的檔案正確就可以。

不過有一點需要注意,當SQL Server還沒啟動起來的時候,有部分錯誤資訊日誌需要檢查Windows平台下的系統日誌。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.