验证 SQL Server 镜像故障转移是否成功

验证 SQL Server 镜像故障转移是否成功

我们在 23 个数据库上将数据库镜像配置为“高安全性,无自动故障转移”。两个合作伙伴都包含主数据库和镜像数据库。我创建了两个脚本,它们将使用正常或强制切换对镜像或主数据库进行故障转移。

我该如何检查数据库以确保它们处于在线状态并且流量正在被重定向?我试图保留所有这些 T-SQL,并希望可以向我已经创建的运行检查的脚本中添加一些内容。

答案1

如果您尝试使用 T-SQL 执行此操作,则意味着通过单个 SQL Server 进行连接。我猜您正在从不同的第三台服务器运行一组监控脚本来监视其他两台服务器。在这种情况下,您可以设置一对链接服务器或使用 OPENROWSET 命令动态查询服务器。尝试一台服务器,然后尝试另一台,如果其中一台连接成功,您就成功了。

这有几个问题 - 首先,当主服务器关闭时,您的监控脚本将挂​​起 30 秒。它们将等待超时,在此期间,您无法进行任何监控。因此,我建议使用 T-SQL 以外的其他工具进行监控。您可以使用许多多线程警报系统,例如 ServersAlive,它可以同时为您检查多个服务器。

第二个问题是您说“流量正在被重定向”。我想确保您了解镜像的工作原理 - 它不会自动重定向查询。镜像的核心在于客户端的连接字符串,该字符串中必须同时包含主服务器和辅助服务器名称。流量是否故障转移到第二台服务器取决于客户端,并且您无法从中心点监控每个客户端。(好吧,您可以查询第二台服务器上的 DMV 并验证每个预期客户端是否都在连接,但这取决于每个客户端是否需要同时连接。)

相关内容