我有 3 台服务器,其中一台配置了指向另一台的链接服务器——我称之为服务器 A。服务器 A 有 100 多个用于各种目的的用户数据库。服务器 B 正在运行我们正在尝试消除的 SQL 2005。服务器 C 具有服务器 B 的一些数据库的副本,我们正在将应用程序从服务器 B 的数据库副本迁移到服务器 C。
当我在服务器 B 上时,我可以看到从服务器 A 到某个数据库的连接,但我不知道如何判断服务器 A 的哪些过程、任务或作业正在使用与服务器 B 的链接服务器连接。
为了停用服务器 B 上的数据库,我需要将服务器 A 的连接重新指向服务器 C 上的数据库;但为了做到这一点,我需要知道服务器 A 上的哪些过程、任务或作业正在使用该连接,以便可以更新它们。
有没有办法在不禁用链接服务器的情况下查看链接服务器上的依赖关系以查看开始失败的原因?
好吧,您可以解析服务器 A 上的过程(只要它们未加密)和作业,以查找链接服务器的名称 - 但请记住,这些请求可以通过应用程序传入,来自 ad hoc SQL,动态构建等,所以这不会捕获所有内容。如果链接的服务器名称是可能在代码或注释中自然找到的常用术语,这也会产生误报。
当然,您可能需要先寻找同义词:
然后使用这些同义词名称而不是
'linked_server_name'
上面的。我使用我开发的这个脚本来帮助我查找链接服务器引用,但可以用来查找多个对象中的任何文本字符串。