KB4575939 . ИСПРАВЛЕНИЕ. Агент чтения журналов создает исключение нарушения доступа для P2P или репликации транзакций с таблицами секционирования в SQL Server

Применяется к
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 2019 on Windows SQL Server 2017 on Windows

Проблема

Предположим, что у вас есть одноранговая репликация (P2P) или репликация транзакций в секционированных таблицах в Microsoft SQL Server. При выполнении переключения секций или операции слияния с ожидающими реплицированными командами в этой секции в журнале ошибок SQL Server заметите следующую запись об ошибке:

Примечание

Ошибка: 608: не найдена запись каталога для идентификатора>< секции в database <DatabaseName>. Метаданные несогласованны. Запустите DBCC CHECKDB, чтобы проверка для повреждения метаданных.

Кроме того, агент чтения журнала создает дамп нарушения доступа.

Состояние

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

Решение

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

Примечание После применения этого исправления при выполнении переключения секций или слияния с ожидающими реплицированными командами в этом разделе вы по-прежнему будете наблюдать ошибку 608 в журнале ошибок SQL Server, но нет дампов нарушения доступа.

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

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

Дополнительные сведения

Если включить переключение секций на SQL Server 2008 R2 по текущую версию, в ближайшем будущем также могут потребоваться операции разделения и слияния. Перед выполнением операции разделения или слияния в реплицируемой таблице убедитесь, что в соответствующей секции нет ожидающих реплицированных команд. Также следует убедиться, что во время операций разделения и слияния в секции не выполняются операции DML. Если существуют транзакции, которые средство чтения журналов не обработало, или операции DML выполняются в секции реплицированной таблицы при выполнении операции разделения или слияния (с участием одной секции), это может привести к ошибке обработки с помощью агента чтения журнала. Чтобы исправить ошибку, может потребоваться повторная инициализация подписки.

Дополнительные сведения см. в разделе Репликация секционированных таблиц и индексов.

Внимание!

Не следует включать переключение секций для одноранговых публикаций из-за скрытого столбца, который используется для обнаружения и разрешения конфликтов.

Ссылки

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