我有一个要停用的 SQL 框。在这样做之前,我想了解所有可能依赖机器的应用程序,而不是仅仅关闭它并听到人们尖叫。
做这个的最好方式是什么?
我知道我可以运行 SQL 跟踪一段时间以获取登录信息等 - 还有其他方法吗?
我想尽可能多地了解调用者,包括请求来自的 IP 地址或机器名称、应用程序名称、凭据。大多数情况下,我想知道是否有许多应用程序可能正在使用类似凭据调用的单个盒子上运行。我还想知道有 2 个以上的应用程序(例如),而不是看起来像一个。
如果 SQL Server 本身没有给我这个,我可以利用服务器级别的其他工具吗?
您可能想看看 WireShark。您可以将它安装在 SQL 机器上,并监控所有传入 SQL 服务器的请求。我会将wireshark中的过滤器缩小到仅在您的SQL端口上发出请求的事情。我不确定您希望它运行多长时间-但是一旦完成,您就可以获取该跟踪并通过过滤器对其运行查询以获取诸如不同IP等之类的东西...
我认为您暂时运行跟踪的想法是目前最好的想法。没有其他方法可以明确找到此信息 - 您无法知道客户端“可能”连接的内容,您只能看到客户端“执行”连接的内容。
不过,有些事情可能会帮助您猜测:
此外,当您停用它时:只需拔下 LAN 电缆一周,然后再将其关闭。然后,如果有人确实需要它上面的东西,它实际上是一个 1 秒的修复,你不会冒任何风险,比如旧磁盘拒绝再次旋转。当然,在拔掉电源之前备份整个该死的东西。
什么 SQL 版本?
在 SQL 2005 之后,您可以创建登录触发器并将所有登录事件记录到表中。eventdata () 和sys.dm_exec_connections将包含一些(如果不是全部)您正在寻找的详细信息。