sqlservr.exe 使用 24GB的内存访问不可访问的数据库

分享于 

3分钟阅读

互联网

 

问题:

运行 SBS 2011的服务器引起了我的各种头痛。 除了 sqlservr.exe.的第一个想法,所有内存都在使用中,主要是为了解决SQL可以使用的内存量。 但是在 SQL Server Management Studio中,服务器不能连接到数据库本身。 当启动 SQL Server 配置管理 时,"未能及时连接到目标计算机。"就好像没办法了,每个动作都需要花几分钟来处理,因为内存不够。

目前尚不清楚这个数据库是否在我们系统的其他地方使用,所以杀死它不是一个选择。 是否有直接的方法限制内存使用? 潜在的问题很可能是认证问题,但是当一个窗口需要 5分钟才能加载时,我无法解决这个问题。 感谢你预先提示


回答 1:

如果你不能与SSMS或者 SQL Server 配置管理 连接,你会遇到很多问题。 但是让我们看看我们可以做什么来减少内存压力,以便你可以继续进行故障排除。

你将在"最小配置"模式下启动 SQL Server。 如果无法让 SQL Server 配置管理 正常工作,你将需要:

  • 使用 sc.exe 修改服务的启动参数并重新启动服务;或者
  • 从服务 控制面板 停止实例,并从命令提示符启动实例

要添加的参数为 -f

-f

以最小配置启动SQLServer实例。 在配置值的设置(如过度分配内存)防碍服务器启动时,这非常有用。 以最小配置模式启动 SQL Server 将 SQL Server 置于单用户模式下。 有关详细信息,请参阅以下-m的说明。

根据二进制文件的安装位置,它的外观如下所示:


C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERbinnsqlserver.exe -sMSSQLSERVER -f



这将以最低的配置启动 SQL,这样你就可以处理你的认证问题。

警告:任何客户端连接将被中断,因此在维护窗口中执行这里操作。


回答 2:

绝对不要杀死 sqlserver.exe 进程。 这是个最好的方法,以得到损坏的数据库。

你需要重启 SQL Server 服务( 甚至是整个服务器) ;这样可以使你从低内存条件中解脱出来,并允许你执行适当的故障排除和调优。

你可以通过查找服务器上TCP端口 1433上的打开连接来检查是否实际使用了数据库:


netstat -nao | find":1433"



这将给你一个快速 Glimpse,关于( 如果有的话) 使用数据库;这将允许你至少估计停止服务的影响。

为了重启服务,不能做任何事;不仅因为服务器不可以用,而且限制内存使用的配置参数。



数据  EXE  RAM  
相关文章