暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL Server 专用管理员连接

SQLServer 2022-06-16
1065


如果你不知道 DAC或专用管理员连接,当你需要用时,为时已晚。

DAC是什么?

专用管理员连接(Dedicated Admin Connection,DAC)允许单个用户在其自己的单个保留线程上连接和运行查询。默认情况下,DAC 只允许本地连接。例如从运行 SQL 实例的服务器建立的连接。为了允许远程连接到 DAC,请运行以下 SQL

    sp_configure 'remote admin connections', 1;  
    GO
    RECONFIGURE;
    GO


    如果你无权访问你的本地实例或通过 RDP 运行实际服务器,那么你应该确保启用远程管理员连接,否则你将无法操作实例。

    为什么需要DAC

    在某些时候,你的SQL Server可能不允许更多连接,甚至服务器没有任何响应,这通常是由于服务器在重负载下造成的,如 RESOURCE SEMAPHORE 等待(内存等待)的积压最终会导致服务器没有响应。

    如果出现以上情况,你的手机将非常繁忙,不仅警报不断,领导或同事的电话也不断。你需要连接到数据库实例,才能排查或解决问题。这也将过几道坎才能连接到实例。你可能无法登录服务器、登录之后你可能没有资源打开SSMS、打开SSMS后你可能连接不到实例。你唯一真正的选择是重新启动实例,而没有真正的故障排除机会。

    使用 DAC

    当你的服务器没有响应并且你无法正常连接到实例,假设你已启用 DAC,你可以通过在实例名称前加上“admin:”前缀来通过 SSMS 连接。记住,一次只有一个系统管理员用户可以连接到 DAC。此连接是单线程的,因此也不会有并行计划,任何需要并行操作的命令都将失败,如 DBCC CHECKDB、BACKUP 等。

    进入后,你可以运行诊断查询,如 sp_who2、whoisactive 等。你可以运行任何其他脚本,以便找出导致服务器瘫痪的原因。这样,你就可以在不重启实例的情况下恢复数据库服务器了。即使你无法修复最终不得不重启服务,你至少有时间收集相关正在发生问题的一些信息,以防止它再次发生。

    文章转载自SQLServer,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论