KB4521739 - 修复:在 SQL Server 2016、2017 和 2019 中,当 CDC 捕获过程尝试在表“cdc.lsn_time_mapping”中插入重复键时发生错误

应用对象
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows SQL Server 2017 on Linux SQL Server 2019 on Windows SQL Server 2019 on Linux

症状

假设在 Microsoft SQL Server 2016、2017 或 2019 中启用了 CDC) 记录 (更改数据。 由于计时问题,CDC 捕获过程可能会尝试在表cdc.lsn_time_mapping中插入重复的start_lsn,你可能会收到类似以下内容的错误消息:

违反主键约束“lsn_time_mapping_clustered_idx”。 无法在对象“cdc.lsn_time_mapping”中插入重复键。 重复的键值为 (Value) 。
      

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

此问题已在 SQL Server 的以下累积更新中修复:

注意: 若要使此修补程序生效,需要启用跟踪标志 (TF) 8291。

关于 SQL Server 的累积更新:

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

参考资料

了解 Microsoft 用于描述软件更新的术语。