我正在试验给SQL Server少量内存的效果,我认为它会恢复。
我将SQL Server配置为使用200MB的内存,现在它不想启动,我在Internet上进行了一些搜索,建议我以单用户模式启动SQL Server。但是,我得到了错误
用户A的登录失败。原因:服务器处于单用户模式。此时只有一个管理员可以连接(Microsoft SQL Server,错误:18461)
我已经停止了SQL Server代理。
我正在试验给SQL Server少量内存的效果,我认为它会恢复。
我将SQL Server配置为使用200MB的内存,现在它不想启动,我在Internet上进行了一些搜索,建议我以单用户模式启动SQL Server。但是,我得到了错误
用户A的登录失败。原因:服务器处于单用户模式。此时只有一个管理员可以连接(Microsoft SQL Server,错误:18461)
我已经停止了SQL Server代理。
Answers:
如果以单用户模式启动SQL Server,则只有一位管理员可以同时连接。
这里可能发生的事情是某些服务正在使用sysadmin登录名进行连接,例如Reporting Services或SQL Server代理。
在单用户模式下启动SQL Server时,可以选择指定客户端应用程序,以便仅该应用程序可以连接。
看一下其中列出的命令行选项:
-m“客户端应用程序名称”
在SQLCMD或SQL Server Management Studio中使用-m选项时,可以将连接限制为指定的客户端应用程序。例如,-m“ SQLCMD”将连接限制为单个连接,并且该连接必须将自身标识为SQLCMD客户端程序。当以单用户模式启动SQL Server并且未知的客户端应用程序正在建立唯一的可用连接时,请使用此选项。要通过Management Studio中的查询编辑器进行连接,请使用-m“ Microsoft SQL Server Management Studio-查询”。
客户端应用程序名称区分大小写。
如果能够以这种方式连接,请将最大服务器内存更改为合理的值。我想您将能够连接,因为否则您可能会收到诸如“管道的另一端没有进程”之类的消息,因此我假设您的服务器正在运行。
但是,如果由于内存配置不允许而无法登录SQL Server,则可以使用该-f
选项以最小配置启动SQL Server 。
-F
以最少的配置启动SQL Server实例。如果配置值的设置(例如,过量使用内存)阻止了服务器启动,则此功能很有用。以最低配置模式启动SQL Server会将SQL Server置于单用户模式。有关更多信息,请参见以下有关-m的描述。
以最小配置模式启动SQL实例
NET START MSSQLSERVER /f
从同一cmd窗口连接到实例并更改“最大内存”设置:
SQLCMD -S Server/Instance -E
您应该看到如下所示的提示:
1>
默认情况下,最大内存设置可能无法查看和更改。若要修改此行为,请使用以下查询:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO
从Configuration Manager重新启动实例。
在单用户模式下启动SQL Server之后,能够在SSMS中打开查询编辑器窗口。请参阅:https://www.sqlservercentral.com/forums/topic/unable-to-open-ssms-in-single-user-mode