SQL Server服務沒有自動啟動原因案例分析

来源:https://www.cnblogs.com/kerrycode/archive/2018/12/28/10189541.html
-Advertisement-
Play Games

這個案例是前兩天出現的,一直沒有時間總結,25號凌晨4點去處理資料庫的故障問題。遠程連上公司的區域網,psping檢查發現伺服器的1433埠不通,資料庫連接不上,但是主機又能ping通,登錄伺服器檢查發現SQL Server的SQL Server (MSSQLSERVER) Service 等服務... ...


這個案例是前兩天出現的,一直沒有時間總結,25號凌晨4點去處理資料庫的故障問題。遠程連上公司的區域網,psping檢查發現伺服器的1433埠不通,資料庫連接不上,但是主機又能ping通,登錄伺服器檢查發現SQL Server的SQL Server (MSSQLSERVER) Service 等服務都沒有啟動.從Zabix檢查也發現服務停了, 真是懵了,使用systeminfo命令檢查系統的情況,發現這台伺服器在凌晨3:31重啟了,但是對應的SQL Server服務沒有自動啟動,

 

 

 

clip_image001

 

 

檢查錯誤日誌,發現SQL Server等相關服務的自動啟動都失敗了,如下所示:

 

 

clip_image002

 

A timeout was reached (30000 milliseconds) while waiting for the SQL Server (MSSQLSERVER) service to connect.

 

如上截圖所示,其實還有一些自動啟動的服務也都出現了錯誤,繼續往下麵看,發現錯誤日誌有下麵錯誤信息:

 

The system has rebooted without cleanly shutting down first. This error could be caused if the system stopped responding, crashed, or lost power unexpectedly.

 

Event 41的Kernel-Power錯誤意味著系統在未首先正常關機的情況下重新啟動。當系統停止響應、出現故障或意外斷電時,會發生此錯誤。更多相關信息參考https://support.microsoft.com/zh-cn/help/2028504/windows-kernel-event-id-41-error-the-system-has-rebooted-without-clean

 

 

 

clip_image003

 

 

 

到此,我們知道了系統異常重啟了,但是為什麼系統重啟後,那些自動啟動的服務(例如SQL Server服務都啟動失敗呢?)什麼原因導致呢?A service does not start, and events 7000 and 7011 are logged in the Windows event log 這裡簡單的介紹了一下,但是感覺沒有詳細介紹。

 

 

The service control manager waits for the time that is specified by the ServicesPipeTimeout entry before logging event 7000 or 7011. Services that depend on the Windows Trace Session Manager service may require more than 60 seconds to start. Therefore, increase the ServicesPipeTimeout value appropriately to give all the dependent services enough time to start.

 

For more information, click the following article number to view the article in the Microsoft Knowledge Base:

839803 The Windows Trace Session Manager service does not start and Event ID 7000 occurs

 

 

我們可以理解為service control manager等待SQL Server的服務啟動,但是這個服務由於資源問題或一些依賴選項問題,導致它在30秒內沒有成功啟動,所以service control manager就出錯了。網上有人這樣介紹:

 

 

It could be that some other dependent components (the disk, network shares, etc) take longer to start up. Could you set the service to start as Automatic (delayed)

 

 

   其實後面跟系統管理員溝通這個問題,才知道是因為資料庫伺服器(Virtual Machine)所在的Nutanix一臺主機由於故障,VM自動切換到另一臺主機,切換過程中VM會重新啟動,而且當時出現問題的有3台VM伺服器(SQL Server 2008/2014都有)。

 

 

解決方案:

 

 

1: 將SQLSQL Server (MSSQLSERVER)等相關服務的啟動類型改為Automatic(Delayed Start)

 

 

clip_image004

 

 

 

2:修改Serivce Timeout的值。

 

 

To change the service timeout value:

 

1Click the Start button, then click Run, type regedit, and click OK.

 

2In the Registry Editor, click the registry subkey HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control.

 

3In the details pane, locate the ServicesPipeTimeout entry, right-click that entry and then select Modify.#這個值改為60秒或120

 

Note: If the ServicesPipeTimeout entry does not exist, you must create it by selecting New on the Edit menu, followed by the DWORD Value, then typing ServicesPipeTimeout, and clicking Enter.

 

4Click Decimal, enter the new timeout value in milliseconds, and then click OK.

 

5Restart the computer.

 

 

 

不過這個錯誤,我沒法重現這個錯誤、從而無法測試驗證上訴解決方案能否真正解決問題。不過上面大體分析是基本正確的。

 

 

 

參考資料:

 

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd349403(v=ws.10)

https://support.microsoft.com/en-in/help/922918/a-service-does-not-start-and-events-7000-and-7011-are-logged-in-window


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • --聲明變數,同時為變數賦值 declare @n int=10 print @n --單獨使用一條語句為變數複製 set @n=20 print @n select @n=30 print @n --通過set賦值與select複製的區別 select @n=COUNT(*) from Emplo... ...
  • 1、MongoDB介紹 1.1 什麼是MongoDB ? MongoDB 是由C++語言編寫的,是一個基於分散式文件存儲的開源資料庫系統。 在高負載的情況下,添加更多的節點,可以保證伺服器性能。 MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 MongoDB 將數據存儲為一個文 ...
  • 正文 生產環境中有一實例每天使用mysqldump備份時長達到了2個小時53分鐘,接近3個小時,還不算上備份文件歸檔的時間,這個時間對於邏輯備份來說有點久。為了提高邏輯備份效率,打算替換為使用mydumper。 對比mysqldump,mydumper具有如下特點: 1. 多線程備份 2. 備份執行 ...
  • 正常切換切換前: 主庫:SQL> select DATABASE_ROLE from v$database;DATABASE_ROLE PRIMARY SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS f ...
  • SELECT子句:用來指定查詢返回欄位,星號(*)表示返回所有欄位 SELECT [DISTINCT]*|欄位列表 #DISTINCT 用來過濾重覆數據 FROM子句:用來指定數據來源的表 FROM <表名> WHERE子句:用來定義查詢返回數據的條件 WHERE 查詢條件 GROUP BY子句:用 ...
  • 配合食用:http://www.runoob.com/mysql/mysql-data-types.html 一.數據類型 1、整型 取值範圍如果加了 unsigned,則最大值翻倍,如 tinyint unsigned 的取值範圍為(0~256)。 int(m) 里的 m 是表示 SELECT 查 ...
  • 以下是根據工作中遇到各種場景用到的一些Mysql用法,比較實用,基本是語法之外的一些東西。 以下是根據工作中遇到各種場景用到的一些Mysql用法,比較實用,基本是語法之外的一些東西。 修改賬戶密碼 1.打開Mysql控制台,輸入原密碼; 2.輸入以下語法:mysql> set password fo ...
  • CREATE TABLE [StudentScores] ( [UserName] NVARCHAR(20), --學生姓名 [Subject] NVARCHAR(30), --科目 [Score] FLOAT, --成績 ) INSERT INTO [StudentScores] SELECT '... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...