问题描述:
1.因为sqlserver内存占用过高,所以我在修改SqlServer内存的时候,不慎将内存最大服务器内存修改为200MB,导致sql服不能启动(正常情况下建议修改占比70%)。
2.最大服务器内存修改为200MB后,启动sql服务的报错如下图:
查找问题:
1.首先我不知道是最大内存过小导致的(内存我是计划设置为2000MB,不小心设置为200MB),我先去查看sqlserver配置管理器,查看sqlserver网络配置,这三个协议是否是启用状态:
2.查看TCP/IP协议的IP地址栏位下TCP端口是否为1433,状态是否已启用
3.通过查看以上的配置我没找到问题,但我点击sqlserver服务器时,我发现SqlServer(MSSQLSEVER)服务已停止,正常情况是不会自己停止的,我尝试手动启动后,过一会又停止了,我才意识到是因为自己设置sqlserver内存最大值出现了问题
问题解决:
通过在网上查找解决办法,利用sqlserver提供的小配置启动方法,然后去修改内存最大值参数。
就是利用启动选项 -f:sqlservr.exe -f-s MSSQLSERVER语句。
1.先关闭sqlserver服务,确保sqlserver服务是停止的,避免产生对数据的影响。打开cmd,执行:net stop mssqlserver
2.重新开启一个cmd窗口1,进入sqlservr.exe的路径下,
执行:
sqlservr.exe -f -s MSSQLSERVER
3.启动之后不要关闭cmd窗口1,直接打开第二个cmd窗口2,
执行:
sqlcmd -E -s MSSQLSERVER
EXEC sp_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
修改sql服务最大内存的最大值,改为默认最大(2147483647),等sql服务能正常启动后,重新修改参数即可。
4.关闭cmd窗口1,正常启动sqlserver(关闭窗口1,窗口2不要关闭)启动成功说明问题解决,如果启动不成功,检查错误日志修复其它参数,直至启动成功(查找其他解决办法)。启动成功后需要重新修改之前通过dos命令修改过的参数!!!