設定錯誤的Maximum Server Memory導致無法啟動SQL Server,
解決該問題大約只要3秒鐘。
之前我在開發In-Memory時,發生一件有趣的事讓我印象深刻,
該公司的資深開發人員需要重新設定SQL Server的Maximum server memory,
當他透過SSMS並輸入一半時(只輸入1000 MB),不小誤按Enter,
接下來沒幾秒就是SQL Service自動停止並無法啟動,
而Error Log會出現記憶體不足的錯誤訊息(模擬如下圖)
SQL Server was unable to run a new system task, either because there is insufficient memory or the number of configured sessions exceeds the maximum allowed in the server.
正確解決方法就是重新設定正確的maximum server memory,
但我們必須先使用-f啟動SQL Server。啟動參數加入 -f(使用最小組態啟動SQL Server)
然後使用sqlcmd進行連接該SQL Instance
sqlcmd -S your sql instance –E
連接成功後,輸入以下scripts修改maximum server memory
sp_configure 'max server memory', 120960;
go;
RECONFIGURE;
Go
--checking
select value_in_use from sys.configurations
where name ='max server memory (MB)'
最後移除-f 啟動參數,並重新啟動SQL Services,搞定收工。
參考
Database Engine Service Startup Options
[SQL SERVER][Memo]如何更新system catalogs
[SQL SERVER][Memo]如何啟用遠端DAC
[SQL SERVER][TS] 讓 SQL Express 版本也能使用DAC