SQL Server最大内存设设置太小导致无法启动SQL 服务

场景

SQL Server 右键属性,设置服务器属性最大服务器内存为 100MB,设置太小造成SQL 服务无法启动。

悲剧开始。。。。 幸亏不是生产环境。(奉劝各位不要随意改配置,要了解所以然)

很显然问题原因是:限制内存并应用后,SQLServer内存不足自动停止,并且无法正常启动之

 

解决方案
查了些资料,都是从cmd启动个最精简版的sqlserver服务,然后在上面执行设置代码,最后重启成功。

1.正常关闭SQL Server服务,如果是集群,需要先关停止集群角色防止故障转移,然后再单独关闭服务。

cmd命令:net stop mssqlserver

--注意这一步可能会使实例处于挂起状态很长时间,但是正常关闭是必须的,直接杀进程可能造成数据文件损坏。

2.找这个sqlservr.exe的目录(每个人的物理地址可能多少有差异,请注意),启动cmd,并执行命令:

首先开启一个CMD窗口1,执行cmd命令:  
cd   C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn

接着执行cmd命令:   sqlservr.exe -f -s MSSQLSERVER
MSSQLSERVER 默认实例名,可修改为你实际实例名修改
-f最小模式启动实例

 

图一  sqlservr.exe的目录:(定位到目录)

执行cmd命令:  cd   C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn

图二 打开cmd命令,定位到 sqlservr.exe的目录,并执行命令 sqlservr.exe -f -s MSSQLSERVER

 

3.不要关闭第一次cmd命令,注意不要关闭,另外开启一个新的cmd 命令窗口2,立即运行下面命令进入命令行模式

执行:sqlcmd -E -s MSSQLSERVER

--注释
sqlcmd -E 
--如果是命名实例则:
sqlcmd -E -S IP\<实例名> 
注意命名实例需要开启SQL server Browser服务,才能连接。
4.修复,就本故障来说,修改内存最大值为不限制
接着在第二个窗口有限一下修改配置

EXECsp_configure 'show advanced options', '1' RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'max server memory', 2147483647 RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'show advanced options', '0' RECONFIGURE WITH OVERRIDE;
GO
 
5.关闭cmd窗口1,正常启动SQLServer实例(注意关闭窗口1,窗口2不要关闭)

启动成功则OK,如果启动不成功,检查错误日志修复其它参数,直至启动成功。

启动成功后可根据需要重新调整合适的参数
后话,即使上边动作都按照操作执行,可能还会遇到无法登陆的其他情况,具体问题具体对待。
基本上无法登陆情况总结如下:
1.sql服务没有启动
2.TCP/IP没有开启
3.TCP/IP属性,IP地址没有启用

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值