KB4521739 - ИСПРАВЛЕНО: ошибка возникает, когда процесс захвата CDC пытается вставить дубликат ключа в таблицу "cdc.lsn_time_mapping" в SQL Server 2016, 2017 и 2019

Применяется к
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 может попытаться вставить дублирующиеся start_lsn в таблицу cdc.lsn_time_mapping, что приводит к появлению сообщения об ошибке примерно следующего содержания:

Нарушение ограничения PRIMARY KEY 'lsn_time_mapping_clustered_idx'. Не удается вставить повторяющийся ключ в объект 'cdc.lsn_time_mapping'. Повторяющееся значение ключа — (Value).
      

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».

Решение

Эта проблема устранена в следующих накопительных обновлениях для SQL Server:

Примечание. Чтобы это исправление вступило в силу, необходимо включить флаг трассировки (TF) 8291.

Сведения о накопительных обновлениях для SQL Server:

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.