我们有三个节点sql2022使用始终开启功能的集群。当实例从一个节点故障转移到另一个节点时,我需要启动一项作业来执行一些维护任务。不幸的是,并非所有内容都是共享的。
为此,我在网上找到了很多文档,指出我可以在 SQL 作业代理上为此配置警报,并且我应该使用警报 1480。例如https://www.mssqltips.com/sqlservertip/3489/configure-sql-server-alerts-and-notifications-for-alwayson-availability-groups/。
然而,当我尝试这样做时,我仍然遇到了几个疑问和问题。
首先,我在哪里配置警报?在 SQL 2022 中,主数据库是按实例虚拟化的。那么我应该在集群实例上还是在单个节点上配置警报。在早期版本中,作业始终在节点上,但随着新的虚拟主数据库的出现,这种情况发生了变化。
其次,我尝试在节点和集群上配置它,我注意到我收到的远不止一条 1480 消息。我不确定,但我认为我收到的实例上每个数据库的一条警报。这不是我想要的。当节点故障转移时,我需要 1 条警报。
第三,当警报在旧的主服务器上启动时和新的主要服务器。我向作业添加了一个步骤来检测服务器是否是主服务器,但在故障转移警报后的一段时间内,所涉及的两个节点都返回它们是主服务器,并且也有一些中间状态。警报发生前故障转移已完成。我希望在完成时收到警报。
这让我很困惑。
我只希望在故障转移完成并准备就绪时,每个实例都收到一个警报。因此,我可以启动单个作业,最好只在新的主实例上启动。
我怎样才能得到它?(如果不可能,欢迎尽我所能)