1
2
正确的, 这两个答案和一个小小的思考让我有了接近答案的东西。 首先要澄清一点: 该应用程序是用C(2.0+)编写的,并使用ADO.NET与SQL Server 2005进行对话。 镜像设置是两个承载主体的W2K3服务器,以及一个作为监视器承载Express实例的第三个服务器。这方面的好处是故障转移对使用数据库的应用程序几乎是透明的,它会对某些连接抛出一个错误,但从根本上说,一切都将顺利进行。是的,我们得到了奇怪的假阳性,但关键是让系统以最少的干扰和镜像继续工作。 做 把这个交得很好。 此外,问题不在于严重的服务器故障——这通常更明显,但由于其他原因(c.f.上面的误报)进行故障转移,因为我们有一些事情由于各种原因无法进行故障转移,无论如何,我们都可以看到是否可以识别出我们得到误报的情况。 因此,考虑到上述情况,仅仅检查这些框的状态还不够,而查看事件日志可能过于复杂-答案是,事实证明,相当简单:sp_helpserver sp_helpserver返回的第一列是服务器名。如果定期运行请求,则保存 以前的 服务器名和每次进行比较时,您将能够确定何时发生了更改,然后采取适当的操作。 下面是一个控制台应用程序,它演示了主体——尽管它需要一些工作(例如,每次连接都应该是非池的和新的),但现在已经足够了(所以我会接受这一点作为“答案”)。参数包括主体、镜像、数据库
如果没有a)问问题,然后b)得到回答,我就不会到这里来了,这让我 认为 默普 |
2
1
如果故障转移逻辑在您的应用程序中,您可以编写一个状态屏幕,显示当第一次连接尝试失败时,通过写入var所连接的框。 我认为你最好的选择是一个ping守护进程/cron作业,它定期检查每个框的状态,如果没有响应,它会发送一封电子邮件。 |
3
1
使用主机监视器之类的工具 http://www.ks-soft.net/hostmon.eng/ 要监视与故障转移事件相关的消息的事件日志,可以通过电子邮件/SMS向您发送警报。 不过,我很好奇,您怎么可能不需要知道故障转移发生了,因为您不需要更新应用程序中的数据源来指向您故障转移到的新服务器?镜像发生在不同的主机(主主机和镜像)上,不同于具有多个节点的群集,这些节点从外部看来是单个设备。 另外,您是否使用见证服务器来自动从主服务器故障转移到镜像?这是我所知道的唯一能让它自动发生的方法,在我的经验中,你会得到很多误报,在这些误报中,网络打嗝会欺骗镜子和证人,让他们认为,当事实上不是的时候,初选就要失败了。 |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |