MSSQL_REPL027183
Подробности сообщений
Название продукта |
SQL Server; |
Версия продукта |
10.0 |
Номер сборки продукта |
|
Идентификатор события |
27183 |
Источник события |
MSSQLSERVER; |
Компонент |
SQL Server Database Engine |
Символическое имя |
|
Текст сообщения |
Процессу слияния не удалось перечислить изменения в статьях с параметризованными фильтрами строк. Если эта ошибка продолжает возникать, увеличьте время ожидания запроса для данного пакета, уменьшите срок хранения публикации и усовершенствуйте индексы по опубликованным таблицам. |
Объяснение
Эта ошибка появляется, если возникает тайм-аут агента слияния во время обработки изменений в фильтруемой публикации. Тайм-аут может быть вызван одной из следующих причин:
Не используется оптимизация предварительно вычисляемых секций.
Для фильтрации используется фрагментация индекса столбцов.
Большие объединенные таблицы метаданных, например MSmerge_tombstone, MSmerge_contents и MSmerge_genhistory.
Фильтруемые таблицы, не соединенные уникальным ключом, и фильтры объединения, использующие большое количество таблиц.
Действия пользователя
Чтобы устранить эту проблему, выполните следующие действия.
Увеличьте для агента слияния значение параметра -QueryTimeOut, чтобы разрешить продолжение обработки, пока будут устраняться основные причины, вызывающие эту ошибку. Параметры агента могут быть заданы в профилях агента или в командной строке. Дополнительные сведения см. в следующих разделах:
По возможности используйте оптимизацию предварительно вычисляемых секций. Эта оптимизация используется по умолчанию в случае выполнения ряда требований к публикации. Дополнительные сведения об этих требованиях см. в разделе Оптимизация производительности параметризованного фильтра с помощью предварительно вычисляемых секций. Если публикация не отвечает этим требованиям, рассмотрите возможность повторной разработки публикации.
Укажите наименьшее возможное значение срока хранения данной публикации, потому что репликация не может выполнять очистку метаданных в базах данных публикации и подписок, пока не истечет срок хранения. Дополнительные сведения см. в разделе Окончание срока действия и отключение подписки.
В качестве части обслуживания репликации слиянием иногда проводите проверку увеличения размера системных таблиц, связанных с репликацией слиянием: MSmerge_contents, MSmerge_genhistory и MSmerge_tombstone; MSmerge_current_partition_mappings и MSmerge_past_partition_mappings. Время от времени проводите повторную индексацию этих таблиц. Дополнительные сведения см. в разделе Реорганизация и перестроение индексов.
Убедитесь в том, что столбцы, используемые для фильтрации, надлежащим образом проиндексированы, и при необходимости перестройте такие индексы заново. Дополнительные сведения см. в разделе Реорганизация и перестроение индексов.
Для фильтров соединения, основанных на уникальных столбцах, задайте свойство join_unique_key. Дополнительные сведения см. в разделе Фильтры соединения.
Ограничьте число таблиц, входящих в иерархию фильтра соединения. Если создаются фильтры соединения для пяти и более таблиц, рассмотрите другие решения: не фильтруйте маленькие таблицы, таблицы, которые не предназначены для изменений или являются таблицами подстановки. Используйте фильтры соединения только между теми таблицами, которые должны быть секционированы среди подписок.
Уменьшите количество изменений в фильтруемых таблицах между синхронизациями или чаще запускайте агент слияния. Дополнительные сведения о настройке расписаний синхронизации см. в разделе Как указать расписание синхронизации (среда SQL Server Management Studio) и Как определить расписания синхронизации (программирование репликации на языке Transact-SQL).