MSSQL_REPL027183

Сведения о сообщении

Название продукта SQL Server
Идентификатор события 27183
Источник события MSSQLSERVER
Компонент Система управления базами данных SQL Server
Символическое имя
Текст сообщения Процесс слияния не смог определить изменения в статьях с параметризованными фильтрами строк. Если этот сбой продолжается, увеличьте время ожидания запроса для этого процесса, уменьшите срок хранения публикации и улучшайте индексы в опубликованных таблицах.

Объяснение

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

  • Не используется предварительная оптимизация секций.

  • Фрагментация индекса по столбцам, используемым для фильтрации.

  • Большие таблицы метаданных слияния, такие как MSmerge_tombstone, MSmerge_contents и MSmerge_genhistory.

  • Отфильтрованные таблицы, не присоединенные к уникальному ключу, и фильтры соединения, включающие большое количество таблиц.

Действие пользователя

Чтобы устранить проблему, выполните следующие действия.

  • Увеличьте значение параметра -QueryTimeOut для агента слияния, чтобы разрешить обработку продолжаться при устранении базовых проблем, вызывающих ошибку. Параметры агента могут задаваться в профилях агента или в командной строке. Дополнительные сведения можно найти здесь

  • По возможности используйте предварительную оптимизацию секций. Эта оптимизация используется по умолчанию, если выполняются ряд требований к публикации. Дополнительные сведения об этих требованиях см. в разделе "Оптимизация параметризованной производительности фильтра" с помощью предварительно вычисляемых секций. Если публикация не соответствует этим требованиям, рассмотрите возможность перепроектирования публикации.

  • Укажите самый низкий параметр для периода хранения публикации, так как репликация не может очистить метаданные в базах данных публикации и подписки до тех пор, пока не будет достигнут срок хранения. Дополнительные сведения см. в разделе Subscription Expiration and Deactivation.

  • В рамках обслуживания репликации слиянием иногда проверяется рост системных таблиц, связанных с репликацией слиянием: MSmerge_contents, MSmerge_genhistory и MSmerge_tombstone, MSmerge_current_partition_mappings и MSmerge_past_partition_mappings. Периодически переиндексировать эти таблицы. Дополнительные сведения см. в статье Реорганизация и перестроение индексов.

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

  • Задайте свойство join_unique_key для фильтров соединения, основанных на уникальных столбцах. Дополнительные сведения см. в разделе "Фильтры присоединения".

  • Ограничьте число таблиц, входящих в иерархию фильтра соединения. При создании фильтров соединения из пяти и более таблиц рассмотрите другие решения: не фильтруйте маленькие таблицы, таблицы, которые не изменяются или служат в основном таблицами подстановки. Используйте фильтры соединения только между теми таблицами, которые должны быть разделены между подписками.

  • Внесите меньшее количество изменений в отфильтрованные таблицы между синхронизациями или запустите агент слияния чаще. Дополнительные сведения о настройке расписаний синхронизации см. в разделе "Указание расписаний синхронизации".

См. также

Справочник по ошибкам и событиям (репликация)