Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
Имею:
Дистрибутор и издатель - сервер в центральном офисе.
ОС WIN2003 Server, SQL Server 2000 SP4, домена нет, службы SQL сервера грузятся под именем администратора системы.

Подписчик - сервер в удаленном офисе, ОС WIN XP Professional ,SQL Server 2000 SP4. Домена нет. Пользователь - администратор компьютера, его логин прописан в центральном офисе. Доступ к папкам в центральном офисе имеет.

Связь - VPN , пропускная способность невысокая. Реализован интернет через Skylink.

Тип репликации - слиянием.

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

Подписка - push. Merge-agent запускается на центральном сервере.
Расписание - раз в час.

Уже который день не могу никак наладить репликацию. Основные симптомы следующие:
Отрабатывает snapshot agent происходит первичная синхронизация, т.е. все скрипты и данные успешно перегоняются на удаленный сервер. Далее следует одно и то же: После применения синхронизации в конце этого сеанса выдаются сообщения типа:
Сначала - no data need to be merged, а потом - после раздумий
(привожу в виде таблицы)

last command {call sp_MSgetmetadatabatch(?,?,?)}

Category Source Number Full message
--------------------------------------------------------------------------
Agent MergeReplication Provider -2147200996 The process could not query row metadata at the 'Subscriber'.
----------------------------------------------------------------------------
Data Source WRK2(это подписчик) 11 Общая ошибка сети. Обратитесь к документации по сети.
----------------------------------------------------------------------------
Agent MergeReplication Provider -2147199469 The merge process encountered an unexpected network error. The connection to Subscriber 'WRK2' is no longer available.
------------------------------------------------------------------------------

В следующий сеанс связи могут происходить какие-то процессы получения (upload) и отправки (download) информации, но все заканчивается неизменно приблизительно вышеуказанными ошибками, причем первое сообщение варьируется.
Приведу еще некоторые примеры:
Last command {call sp_MSproxiedmetadata(?,?,?,?)}
The merge process could not apply the replication metadata.

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

В целом мне совершенно непонятны причины происходящего. То ли это плохая связь? То ли что-то с правами доступа? С блокировками? С первоначальной синхронизацией? С общим скудоумием?
Уже пробовал и так и сяк - не идет, гадюка! Прошу поделиться опытом, кто сталкивался с подобным - хоть куда копать?
22 дек 05, 12:21    [2198227]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10753
Блог
https://www.sql.ru/articles/mssql/03100901PurgingMergeMetadata.shtml
22 дек 05, 12:51    [2198474]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
У меня ощущение - что в статье совет конечно же полезный, но это все-таки не то. Для того, чтобы чистить таблицы MSmerge_contents и MSmerge_genhistory как утверждает автор, надо быть уверенным, что на дату последующую за датой, начиная с которой метаданные будут удаляться, подписчик и издатель синхронизированы. У меня же такой уверенности нет.
Для справки - как я поступаю:
Создал публикацию - создал подписку - запустил процесс - слежу - слежу - вижу ошибки - останавливаю репликацию - удаляю подписку - скриптую публикацию - удаляю публикацию - воссоздаю публикацию из скрипта - создаю подписку - запускаю - далее по кругу... (Не знаю, вышеупомянутые таблицы при удалении публикации удаляются или нет, на следующем круге посмотрю.)
Перед этим пробовал тренироваться на базе Pubs - все прекрасно работало.

Может попробовать полностью воссоздать весь процесс начиная с дистрибутора и разрешения репликации?
22 дек 05, 15:27    [2199559]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
Ну подскажите же хоть что нибудь.
Гибнет дело. Не пойму с какого конца рыть. После новогодних праздников поскольку все стояло репликация естетственно не шла. Сегодня с утра запустил - идут обновления с подписчика (upload). Обратно - ни-ни. Сообщение каждый раз одно и то же:The process could not query row metadata at the 'Subscriber'.
Last command:{call sp_MSgetmetadatabatch(?,?,?)}
Запустил реинициализацию подписки. Результат:
уже третий раз подряд применяет первичную синхронизацию. Я уже об этом писал раньше: отрабатываются все скрипты схемы, перекачиваются данные, отрабатываются скрипты ключей и триггеров и выдается сообщение:The subscription to publication 'VS' is invalid.
Last command {call sp_MSgetreplicainfo(?,?,?,?,?,?,?)}
При следующем сеансе работы merge agent все начинается сначала.
Ну что же делать?
10 янв 06, 18:51    [2241240]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10753
Блог
Попробуйте динамические снимки (если фильтры динамические), может тогда перавя синхронизация пройдёт успешно...
10 янв 06, 19:32    [2241327]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
Нет динамических фильтров нет. В предыдущие разы я обходил эту проблему через архивацию на издателе и восстановление БД на подписчике, а потом уничтожение подписки и создание новой с параметром, что первичная синхронизация не требуется. Но после этого начинаются проблемы с репликацией, о которых я уже неоднократно упоминал - односторонний обмен (только upload), всякие рразные сообщения и т.д.
11 янв 06, 09:41    [2242094]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
Только что, после четырехкратной первичной синхронизации Merge Agent history выдает сообщение:
Сначала
Downloaded 180 Data Changes (100 inserts, 10 updates, 70 deletes, 0 conflicts)
Т.е. это можно понять,так что первичная синхронизация прошла? И пошла собственно репликация?
Но вслед за этим:
The process could not query row metadata at the 'Subscriber'.
Last command {call sp_MSgetmetadatabatch(?,?,?)}

Так есть у меня репликация слиянием или нет...
??
Продолжаю наблюдение.

Все-таки у меня складывается впечатление (чисто интуитивное), что проблема в плохой связи, канал как я уже говорил у меня не очень. Может кто подскажет, какие сетевые параметы можно регулировать. Ну там, размеры пакетов или еще какие-нибудь умности?
11 янв 06, 10:20    [2242265]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
Фирюза
Member

Откуда: Уфа
Сообщений: 106
лично у меня такая проблема из-за плохой связи, решается повторным запуском (неоднократным)
11 янв 06, 10:39    [2242342]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Если дело в плохой связи, можно попробовать поднастроить мерж-агента, выбрав профиль не по умолчанию - по умолчанию он оптимизирован под локалку. Попробуйте использовать "Slow link agent profile".
11 янв 06, 11:09    [2242517]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
Уже стоит этот профиль
11 янв 06, 11:12    [2242546]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
На форуме не раз писали, что на плохом канале нормально репликация жить не будет :-// До какого-то предела еще можно поупираться, но сверх того только канал расширять.
11 янв 06, 11:17    [2242578]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10753
Блог
Если канал плохой, тем более нужно как можно сильнее сокращать объём метаданных. Именно на них у Вас всё и сваливается.
11 янв 06, 11:21    [2242613]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Да у него на первичной синхронизации еще сваливается. До метаданных еще дело не дошло.
11 янв 06, 11:24    [2242643]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Вот тут кое-какие советы есть, но ничего нового:
A Slow Network Is Causing Problems
Может, по ссылкам в этой статье что-то полезное обнаружится.
11 янв 06, 11:32    [2242705]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
А где вообще можно узнать какие характеристики канала минимально должны быть для обеспечения приемлемой репликации? Ну вот например время ответа при пинговании? А то у меня вот сейчас например все время выдает превышение интервала ожилания. В то же время через проводник я худо-бедно на удаленный комп попадаю, на удаленный SQL Server - тоже, запрос какой-нибудь там выполняю. Медленно, да. Но работает же? И потом почему работает перекачка данных при первичной синхронизации - и работает неплохо. Большие объемы перекачиваются. Ориентировочно - 20 мб/час. Нет, тут что-то еще
11 янв 06, 11:34    [2242731]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10753
Блог
garvy
А где вообще можно узнать какие характеристики канала минимально должны быть для обеспечения приемлемой репликации? Ну вот например время ответа при пинговании? А то у меня вот сейчас например все время выдает превышение интервала ожилания. В то же время через проводник я худо-бедно на удаленный комп попадаю, на удаленный SQL Server - тоже, запрос какой-нибудь там выполняю. Медленно, да. Но работает же?

Определяется это опытным путём с учётом накопленной статистики по проведённым сеансам. Параметры запуска агента (а стандартного профиля для этого явно не достаточно) тоже нужно подбирать с учётом своей специфики. Например, таймауты обязательно стоит увеличить https://www.sql.ru/articles/mssql/02120401ReplicationAgents.shtml#QueryTimeout При объединении больших объёмов метаданных на удалённых серверах стандартных значений никогда не хватает, в результате появляется описанная в вопросе ошибка.
При маленьких объёмах тиражирования (десятки коротких обновлений за сеанс) минимальная толщина канала, который не будет сильно вредничать, около 36.6 Кбит. Чем тоньше канал, тем дороже поддержка на нём репликации и тем дороже обходиться трафик, поскольку из-за обрывов возникают технические добавки к трафику. Об этом не раз говорилось на семинарах и в этом форуме.

garvy
И потом почему работает перекачка данных при первичной синхронизации - и работает неплохо. Большие объемы перекачиваются. Ориентировочно - 20 мб/час. Нет, тут что-то еще


Это как раз легко объяснимо, особенно, если Вы используете компрессованный снимок, который и распаковывается и применяется из локальной папки подписчика. К тому же, в этот момент метаданные нулевые и проблем с удалёнными объединениями данных не возникает.
11 янв 06, 14:40    [2243793]     Ответить | Цитировать Сообщить модератору
 Re: Никак не настрою merge репликацию  [new]
garvy
Member

Откуда: Москва
Сообщений: 798
Спасибо за советы и ссылки. Буду изучать. Кстати, последние 4 часа репликация исправно заработала. Причем я ничего не менял. Но проблема остается. Так как сути происходящих процессов я так и не понял.
11 янв 06, 15:57    [2244217]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить