Проблемы
Во время синхронизации репликации слияния в Microsoft S'L Server 2008 и более поздних версиях сервера S'L, агент слияния может вывести из строя. Кроме того, вы получаете следующее сообщение об ошибке:
Агент слияния не удалось после обнаружения, что очистка метаданных на основе удержания удалила метаданные в абоненте для изменений, еще не отправленных издателю. Необходимо переоформить подписку (без загрузки). (Источник: MSSQL_REPL, Номер ошибки: MSSQL_REPL-2147199401) Получить помощь: http://help/MSSQL_REPL-2147199401
Эта проблема может возникнуть по нескольким причинам. К ним относятся многие причины, которые ожидаются при определенных обстоятельствах. Чтобы определить, столкнулись ли вы с этой ошибкой неожиданно, изучите детали метаданных, описанные в разделе "Причина".
Причина
Причину этой проблемы можно найти в следующих системных таблицах на абонента:
-
dbo.sysMergeSubscriptions
-
dbo.MsMerge_Genhistory
Убедитесь, что агент слияния больше не синхронизируется. Затем запустите следующий запрос и изучите результаты:
выберите sentgen от SubscriberDB.dbo.sysMergeSubscriptions, где pubid и subid и sentgen не являются нулевыми Колонка sentgen отмечает старейшую группу изменений, которые абонент отправил издателю. Если возвращается несколько значений, изучите другие столбцы в таблице dbo.sysMergeSubscriptions, чтобы убедиться, что вы просматриваете метаданные для правильной публикации. Далее используйте значение, которое возвращается этот запрос, в следующем запросе:
выберите топ-20 от SubscriberDB.dbo.MSmerge_genhistory где sentgen_value поколениеВыход запроса должен напоминать следующее:Вы можете столкнуться с ошибкой неожиданно, когда все следующие условия верны:
-
Значение в столбце поколения в первом ряду немного больше значения sentgen в предыдущем запросе.
-
Значение в столбце genstatus4.
-
Значение в столбце счета изменения0.
Заметка Значение столбца колдата первого ряда также обычно намного старше значения этого столбца в других строках.
Решение
Чтобы решить эту проблему, репрефализация абонента, который произвел ошибку. В некоторых сценариях вы можете решить эту проблему без полной переифнициализации. Для получения информации о возможном обходе. Чтобы предотвратить возникновение этой проблемы в будущем, примените одно из следующих исправлений, в зависимости от вашей версии сервера S'L.
Сведения о накопительном пакете обновления
SQL Server 2008
В 2008 г. нет исправления этой проблемы.
Пакет услуг S'L Server 2008 R2 2
Исправление этой проблемы было впервые выпущено в Cumulative Update 3. Для получения более подробной информации о том, как получить этот кумулятивный пакет обновлений для s'L Server 2008 R2 Service Pack 2, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2754552 Совокупный пакет обновлений 3 для S'L Server 2008 R2 Service Pack 2Заметка Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все горячие исправления и все исправления безопасности, которые были включены в предыдущий выпуск s-L Server 2008 R2 Service Pack 2. Мы рекомендуем вам рассмотреть вопрос о применении последнего выпуска исправлений, который содержит этот hotfix. Для получения дополнительной информации, нажмите на следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:
2730301 Сборка S'L Server 2008 R2, которая была выпущена после того, как был выпущен пакет услуг S'L Server 2008 R2
SQL Server 2012
Исправление этой проблемы было впервые выпущено в Cumulative Update 4. Для получения более подробной информации о том, как получить этот кумулятивный пакет обновлений для S'L Server 2012, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:
2758687 Совокупный пакет обновлений 4 для Сервера S'L 2012Заметка Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все горячие исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений S'L Server 2012. Мы рекомендуем вам рассмотреть вопрос о применении последнего выпуска исправлений, который содержит этот hotfix. Для получения дополнительной информации, нажмите на следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:
2692828 Сборки сервера S'L 2012, которые были выпущены после того, как был выпущен s'L Server 2012
Пакет услуг S'L Server 2008 R2 1
Исправление этой проблемы было впервые выпущено в Cumulative Update 8. Для получения более подробной информации о том, как получить этот кумулятивный пакет обновлений для s'L Server 2008 R2 Service Pack 1, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
2723743 Совокупный пакет обновлений 8 для сервера S'L 2008 R2 SP1Заметка Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все горячие исправления и все исправления безопасности, которые были включены в предыдущий выпуск s-L Server 2008 R2 Service Pack 1. Мы рекомендуем вам рассмотреть вопрос о применении последнего выпуска исправлений, который содержит этот hotfix. Для получения дополнительной информации, нажмите на следующий номер статьи, чтобы просмотреть статью в базе знаний Microsoft:
2567616 Сборки S'L Server 2008 R2, которые были выпущены после выпуска S'L Server 2008 R2 SP1