症状
假设您使用的是 Microsoft SQL Server 2016 或2017。 当可用性组在删除并重新创建 DAG 后立即加入现有分布式可用性组(DAG)时,它可能无法加入 DAG,并且你会收到类似于以下内容的错误消息:
Alwayson:处理 AG 配置更改通知,在状态 "转发器" (7)中为 AG "AGName" 。错误:41162,严重级别:16,状态:0。无法验证可用性组 "AGName" 的配置的序列号。 内存中的序列号与保留的序列号不匹配。 将自动重新启动可用性组和/或本地可用性副本。 此时不需要任何用户操作。Alwayson: AR "AGName" 正在处理通知(类型64)。Alwayson:处理 AG 配置更改通知,在状态 "转发器" (7)中为 AG "AGName"。Alwayson: AR "AGName" 正在验证 WSFC 中的 AG 完整性。Alwayson: AR "AGName" 角色转换 [转发器]-> [转发器]、触发器 [VALIDATE_AG_CONFIG]、状态(wsfc = 1、metadata = 1)。Alwayson: AR "AGName" 正在处理通知(类型为2)。
此外,错误 41162 可能 会使 AG 解析状态,并且可能导致其他两个问题: 错误 19407 和声明失败。
Error 19407:
在数据库 DBName 中,Nonqualified 事务将回滚到 Alwayson 可用性组状态更改。 估计回滚完成:100%。 这只是一条信息性消息。 无需用户操作。[HaDrDbMgr::SetPrimaryAR]将 primary 设置为 AGID: AGNumber,ReplicaID: ReplicaNumber,AGDBID: AGDBNumber错误:19407,严重级别:16,状态:2。可用性组 "组名 " 与 Windows Server 故障转移群集之间的租约已过期。 SQL Server 实例与 Windows Server 故障转移群集之间出现连接问题。 若要确定可用性组是否正确故障转移,请检查 Windows Server 故障转移群集中对应的可用性组资源。
断言
始终打开:处理 ag 的配置更改通知,该通知针对 AG "DatabaseName" 的状态为 "RESOLVING_NORMAL" (0)。
Alwayson: AR "DatabaseName" 现在正在验证 WSFC 中的 AG 完整性。
Alwayson: GetTransportWithRef ()被拒绝,因为本地 AR 未联机。
数据库 "DatabaseName"-加固 lsn 的状态信息: "(34:304752:1)" 提交 Lsn: "(0:0:0)" 提交时间: "1 月 1 1900 12: 00AM"
恢复(DatabaseName,6):开始停止并行恢复工作人员
* * 转储线程-spid = 0,EC = 0x000001F280CC7250
正在向FileLocation发送堆栈转储
* 开始堆栈转储:
* 位置: "FileLocation":1774
* 表达式: GetContext ()->GetController ()->GetHadrArRoleExternal () = = HADR_ROLE_FORWARDING_SECONDARY
* SPID: spid
* 进程 ID: ProcessId
错误:17066,严重性:16,状态:1。
SQL Server 断言:文件: < "Filelocation" >,line = 1774 失败断言 = ' GetContext ()->GetController ()->GetHadrArRoleExternal () = = HADR_ROLE_FORWARDING_SECONDARY "。 此错误可能与计时有关。 如果再次运行该语句后,该错误仍然存在,请使用 DBCC CHECKDB 检查数据库的结构完整性,或者重新启动服务器以确保内存中的数据结构未损坏。
错误:3624,严重性:20,状态:1。
系统断言检查失败。 有关详细信息,请查看 SQL Server 错误日志。 通常,断言失败由软件错误或数据损坏导致。 若要检查数据库是否损坏,请考虑运行 DBCC CHECKDB。 如果你同意在安装期间将转储发送到 Microsoft,则会向 Microsoft 发送一个小转储。 在来自 Microsoft 的最新服务包或来自技术支持的修补程序中,可能会提供更新。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方案
此问题已在 SQL 的以下累积更新中得到修复 服务
关于 SQL Server 的累积更新:
SQL Server 的每个新累积更新都包含 修补程序和上一版本附带的所有安全修补程序 累积更新。 查看 SQL Server 的最新累积更新:
按需即时修复程序信息:
此问题已在 SQL Server 的以下按需修补程序中修复:
参考
了解 Microsoft 用于描述软件更新的术语。