作为一名DBA,经常会处理一些比较棘手的服务无响应问题,鉴于事态的严重性,多数DBA可能直接用“重启”大法,以便尽快的恢复生产环境的正常运转,但是多数情况下我们却无法究其原因,即使产生了dump文件,没有微软的支持,我们同样被蒙在鼓里,幸好微软给我们留了一条“后路”,供我们在SQL服务无法连接时,使用它连接并查看“病因”,那就是DAC, dedicated administrator connection,管理员专用连接。
有关管理员专用连接请查看:http://msdn.microsoft.com/zh-cn/library/ms189595.aspx
开启远程管理连接:该选项默认是关闭的,如果不开启,只能在服务器本机进行连接,可以通过
select * from sys.configurations where name = 'remote admin connections'
进行查看,使用如下语句开启
SP_CONFIGURE 'remote admin connections',1 GO RECONFIGURE GO
如何进行连接?
1、通过SQLCMD进行连接:
sqlcmd -S. -A
2、还可以将admin绑定到服务器前面:
sqlcmd -Sadmin:.
3、在sqlcmd中显示结果总是很难查看,所以我比较喜欢选择用查询编辑器启动:
首先断开对象资源管理器中的所有连接,然后点击新建查询,输入:admin:服务器名称
4、进入SQL Server的后门后,我们就可以通过一些DMV等查看当前的进程都在干什么,都在等待什么,从而进一步分析判断问题出在哪里了。
建议生产环境开启该选项,便于SQL Server无响应时排查问题。