У нас есть пара серверов SQL2000, которые синхронизируют пару баз данных с помощью репликации слиянием. На каком-то этапе за последние несколько месяцев агент слияния для одной из баз данных исчез. Трудно сказать, когда это произошло, эта система реально используется всего пару месяцев пару раз в год.
Насколько я могу судить (я не эксперт по репликации), и подписки, и публикации все еще существуют, но одна из них больше не выполняет репликацию слиянием из-за отсутствия агента слияния. Другой - идеальное копирование слияния.
Схема для баз данных осталась прежней, но данные изменились. Сервер подписчика имеет более новые данные, чем сервер издателя.
Как лучше всего вернуть агент слияния? Я смотрел в BOL, рыскал по сети, вся эта репликация до смешного пугает!
Да это страшно.
Я вспоминаю некоторое время назад, что если репликация не выполнялась хотя бы раз в 2 недели (я думаю), по умолчанию подписка истекала и исчезала. Прошло много лет с тех пор, как я сделал это, так что это действительно туманно. Для нас, когда конечный пользователь ушел в отпуск на 2 недели, подписка на рабочие станции истекала (до появления высокоскоростного интернета мы использовали репликацию слиянием для полевых единиц).
Мы изменили настройку на 6 месяцев до истечения срока ее действия.
Не знаю, ваша ли проблема в этом, в этом проекте было много поздних ночей и головокружения из-за репликации ........ и кошмаров, когда мы спали.
РЕДАКТИРОВАТЬ: кое-что еще, что я только что вспомнил. Репликация будет выполняться с использованием разрешений, которые использует учетная запись агента SQL. Поэтому, если есть какие-либо проблемы с учетной записью, которую использует служба агента SQL, это отрицательно скажется на репликации.
Я тоже не очень разбираюсь в репликации, но когда нам нужно было повторить репликацию слиянием, я просто убеждаюсь, что у издателя есть последние данные с помощью инструмента сравнения данных sql, и воссоздаю все это целиком. Я не знаю, подходит ли это для вас, но наши базы данных довольно маленькие и географически не удалены.
Мы используем инструмент Apex SQL Data Diff. Я уверен, что есть много других вариантов.