利用Ring Buffer在SQL Server 2008中进行连接故障排除

SQL Server 2008中包含一个新功能,旨在帮助解决特别棘手的连接问题。这个新功能是Connectivity Ring Buffer,它可以捕捉每一个由服务器发起的连接关闭记录(server-initiated connection closure),包括每一个session或登录失败事件。为了进行有效的故障排除,Ring Buffer会尝试提供客户端的故障和服务器的关闭动作之间的关系信息。只要服务器在线, 最高1K的Ring Buffer就会被保存,1000条记录后,Buffer开始循环覆盖,即从最老的记录开始覆盖。Connectivity Ring Buffer的记录是能够使用DMV查询的:   SELECT CAST(record AS XML) FROM sys.dm_os_ring_buffers WHERE ring_buffer_type = ‘RING_BUFFER_CONNECTIVITY’   上述指令会选择所有记录为XML类型;在Management Studio中,你可以单击记录,从而获得更具可读性的版本。如果你想使用SQL查询XML记录从而找到相应的问题,你可以使用SQL server的XML 支持,将之变为一个临时的表,从而查询记录。   一个基本的Buffer entry:Killed SPID 一个导致服务器发起的连接关闭的简单方法是打开两个SQL服务器的连接,找到一个连接的SPID,然后从另一个连接中将该SPID杀死。 C:\>osql -E 1> SELECT @@spid 2> go —— 51 (1 row affected) C:\>osql -E 1> kill 51 2> go 1> 如果你做了上述工作,然后查询Ring Buffer,你会得到和如下类似的结果:…

1