我想测量 SQL Server 切换服务器角色所需的时间。有没有办法知道镜像服务器成为主服务器并准备好进行新更新需要多长时间?
非常感谢!
答案1
使用分析器基础结构进行监控数据库镜像状态更改事件类。StartTime 将包含事件发生的时间,State 将包含更改后的新状态。我不确定我是否记得状态更改是在新主体运行恢复之前还是之后发生的,不过,您必须进行测试并查看。从 Nick 的帖子来看,我认为是在之后,所以该事件非常适合您。
答案2
您是否尝试过查看故障转移到的服务器上的错误日志?应该会看到类似以下内容的内容:
2010-02-01 16:33:50.600,spid23s,Starting up database 'adventureworks'.
2010-02-01 16:33:54.240,spid23s,2 transactions rolled forward in database 'adventureworks' (8). This is an informational message only. No user action is required.
2010-02-01 16:33:54.330,spid28s,0 transactions rolled back in database 'adventureworks' (8). This is an informational message only. No user action is required.
2010-02-01 16:33:54.330,spid28s,Recovery is writing a checkpoint in database 'adventureworks' (8). This is an informational message only. No user action is required.
2010-02-01 16:33:55.220,spid12s,Database mirroring is active with database 'adventureworks' as the principal copy. This is an informational message only. No user action is required.
答案3
一种非常丑陋的暴力方法可能是让一个小应用程序每秒连接一次主体。如果您使用显式客户端重定向对其进行配置,您将能够知道它在什么时候发生故障转移,并且您可以成功连接到新的主体。
查找 SqlConnection .Net 类 - 成功连接时的 DataSource 成员为您提供所连接的服务器名称。
跟踪所涉及的时间是一项 SMOC。
希望这可以帮助。