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: в базе данных <DatabaseName> не найдена запись каталога для идентификатора> идентификатора раздела<. Метаданные не согласованы. Запустите DBCC CHECKDB для проверки на наличие повреждения метаданных.

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

Состояние

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

Решение

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

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

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

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

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

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

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

Внимание!

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

Ссылки

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