上月幫公司關鍵服務 SQL Server Database 建 Mirror(參考SQL Server Mirror筆記)
但昨天維護主機時卻發現,啊看!怎麼SQL沒運行,即使有更新重開機,服務的啟動類型是自動也該跑啊!
為解決這問題,開始思考應該:時時檢查服務狀態,當服務未啟動時,下指令讓他啟動
爬文了下找到這篇,用batch來檢查服務狀態,並自動啟動
sc query "MSSQLSERVER" |find "RUNNING" >nul
if "%ERRORLEVEL%"=="0" (
echo MSSQLSERVER is Already Existed and Running!
pause
exit
) else (
net start "MSSQLSERVER"
)
看網誌許久沒更新,避免來源網誌關了,這裡也記錄說明一下
1、sc,是一個用來和服務控制管理員及服務溝通的命令列程式。
query接服務名稱,傳回服務狀態
find類grep,搜尋字串
>nul 類/dev/null 不顯示出來(結果直接丟到null)
2、if else不多說明
%ERRORLEVEL%,錯誤返回碼0就輸出MSSQLSERVER已經在執行,
否則運行啟動MSSQL的指令碼net start “MSSQLSERVER”
net有很多用途,可以net /?看一下
最後放到排程裡運行。