意外关闭SQL内存不足而无法登录,我该如何解决?


14

我将我的SQL Server实例的“最大内存”调低为15 MB ...现在我无法登录以增加它。如何在不登录的情况下增加最大内存?

版本是SQL 2008 R2

Answers:


18

使用专用管理员连接(DAC)进行连接,可以保证使用最少的资源来解决与此类似的问题。例如,如果要通过Management Studio连接,请启动“新建查询”窗口,然后键入ADMIN:servername而不是servername提示您进行连接的方式。忽略任何错误,这些错误通常是良性的,因为它们与对象资源管理器,数据库下拉列表,IntelliSense等相关,也试图代表您进行连接(仅允许一个DAC连接)。

更多信息在这里在这里,和这里的一些故障排除


7

或者,(因为它之前发生过两次并且DAC技巧对我不起作用),请关闭SQL Server服务,然后将其恢复为“最小配置”模式,这是单用户模式的修改版本。

通过命令行转到服务中列出的sqlservr.exe可执行文件的路径。但是,相反的运行sqlservr.exe -m,使用sqlservr.exe -f"sqlcmd"。这将仅允许来自指定应用程序的连接,因此其他所有操作都将失败,但是您将能够连接,更改设置,从SQLCMD内部发出SHUTDOWN命令,然后正常启动它。


5

在命令提示符下,使用Didicated Administrator Connection(DAC)启动sqlCmd。:

    C:\> sqlcmd -S服务器名-U sa -P –A

连接后,执行以下操作将内存设置为4Gigs。它应该足以允许您使用Management Studio工具重新连接。

sp_configure'显示高级选项',1;  
走  
重新配置;  
走  
sp_configure'最大服务器内存',4096;  
走  
重新配置;  
走  

有关DAC的更多信息,请参见:专用管理员连接(DAC)https://msdn.microsoft.com/zh-cn/library/ms189595 ( v= sql.105) .aspx


3

我只是遇到了同样的问题,而且没有启动SSMS或DAC的运气,所以希望这可以帮助下一个陷入恐慌的人。

我在服务器上启动了SQL Server配置管理器(我正在运行SQL 2017),在左侧窗格中选择了``SQL Server服务'',然后右键单击右侧窗格中的``SQL Server(MSSQLSERVER)''并选择“属性”。在“属性”窗口中,我转到“启动参数”选项卡,并添加了“ -f”启动参数。我重新启动了SQL Service,它以“ 最小配置 ”模式启动。然后,我能够进入SSMS并更正“最大内存”设置。然后,我返回到“启动参数”选项卡,并删除了“ -f”参数,然后再次重新启动服务。


1

同样的问题,内存被错误设置为太低。无法使用DAC连接,请执行以下操作:

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. 使用服务器上的SSMS直接连接,并能够访问属性并设置正确的内存设置。

1

这可以使用net start / stop命令或sqlserver.exe命令完成。首先让我们检查一下如何通过net start / stop命令完成此操作。net start / stop命令的语法为NET START服务名称可以如下所示获得。

  1. 在“运行”窗口中键入services.msc,然后单击“确定”。这将打开服务对话框。
  2. 导航到您想要获取服务名称的SQL Server实例,然后双击它。这将打开该实例的属性对话框。复制那里列出的服务名称。
  3. ---启用服务是单用户模式

    C:\ Program Files \ Microsoft SQL Server \ 130 \ Tools \ Binn> net启动“ SQL Server(MSSQLSERVER)” / f / m SQL Server(MSSQLSERVER)服务正在启动。SQL Server(MSSQLSERVER)服务已成功启动。使用服务器上的SSMS直接连接,并能够访问属性并设置正确的内存设置。或运行以下命令:-sp_configure'显示高级选项',1; 重新配置;GO sp_configure'最大服务器内存',4096; 重新配置;走

-通过停止服务退出单用户模式

C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net stop "SQL Server (MSSQL
SERVER)"

要以多用户模式启动SQL实例,请使用如上所示的net stop停止服务,然后在不指定\ m参数的情况下启动它,如下所示。

C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net start "SQL Server (MSSQLSERVER)"
The SQL Server (MSSQLSERVER) service is starting.
The SQL Server (MSSQLSERVER) service was started successfully.

这里要注意的一件事是,启动SQL Server实例不会启动SQL Server代理服务。为了启动SQL Server代理,请使用上面共享的方法获取服务名称,然后如上图所示启动它。或者转到服务并启用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.