Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с репликацией - помогите!  [new]
ПолныйЧайНик
Guest
MSSQL 7.0 Делаю репликацию всей базы. Snapshot генерится нормально, а вот Distribution Агент потом ругается - FOREIGN KEY-и ему мешают в таблицах. Все FOREIGN KEY-и <NOT FOR REPLICATION>, но все равно ни чего не получается. Помогите!
19 дек 00, 11:17    [2448]     Ответить | Цитировать Сообщить модератору
 RE:Проблема с репликацией - помогите!  [new]
Kenat
Member

Откуда: Moscow
Сообщений: 6
Как дети. ))))
В течении 2 лет всё работает как часики и с тиггерами и foreign key и кольцевыми репликациями.
Сделай отдельно репликации связанных таблиц и увидишь где ошибся.
19 дек 00, 11:35    [2449]     Ответить | Цитировать Сообщить модератору
 RE:Проблема с репликацией - помогите!  [new]
ПолныйЧайНик
Guest
Я верю! Я верю, что работает!
Зачем же сразу так. Но почему, почему нельзя по-бук-вам растолковать, step-by-step, для бедного тормозного ПолногоЧайНика.
ПолныйЧайНик.
19 дек 00, 13:33    [2450]     Ответить | Цитировать Сообщить модератору
 RE:Проблема с репликацией - помогите!  [new]
Garya
Guest
Скорее всего, проблема в DRI. Процедуры репликации пытаются затолкать в таблицы на стороне "многие" записи ДО того, как в таблицы на стороне "один" помещены записи, на которые они могут сослаться. Покрути параметры связей DRI, проверь последовательность передачи записей при репликации. Сначала должны реплицироваться таблицы на стороне "один", а затем уже на стороне "многие".
21 дек 00, 18:35    [2451]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Проблема с репликацией - помогите!  [new]
sky
Member

Откуда:
Сообщений: 281
ТОлько что при проведении репликации столкнулся с почти аналогичной проблемой: на подписчике были удалены куча записей, хотя должны были быть перенесены на издатель. То есть суть в том, что забивались записи на подписчике, а после репликации по идее должны быть и там и там. а получилось, что записи на подписчике удалились самым наглым образом.
Может ли быть такое из-за :
Процедуры репликации пытаются затолкать в таблицы на стороне "многие" записи ДО того, как в таблицы на стороне "один" помещены записи, на которые они могут сослаться.
И если да, то поможет ли снятие флага Enforce Relationship for Replication?
14 апр 03, 18:15    [173893]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией - помогите!  [new]
Garya
Member

Откуда: Москва
Сообщений: 31898
Блог
Что там сначала должно быть, а что потом - это бабушка на двое сказала. Если записи удаляются, то удалиться они должны сначала на стороне "многие", а потом уже на стороне "один". Если записи добавляются, то наоборот - сначала они должны добавиться на стороне "один", а потом уже на стороне "многие". Чтобы не заморачиваться над всеми этими вопросами, сними в свойствах связи флажок Enforce Relationship for Replication.
14 апр 03, 19:27    [173951]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией - помогите!  [new]
Сергей Тихонов
Member

Откуда: Киев
Сообщений: 787
> ПолныйЧайНик

Если у вас такое происходит, значит есть нарушения DRI в БД.
На публикаторе оно не проявилось потому, что FK были созданы, скорее всего, с опцией WITH NOCHECK. Когда генерятся скрипты снэпшота, этого не происходит. проверьте свои данные...
14 апр 03, 19:57    [173964]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией - помогите!  [new]
Garya
Member

Откуда: Москва
Сообщений: 31898
Блог
2 Сергей Тихонов. Да нет. У меня подобные вещи проявлялись в версии 7.0, когда с данными было все в порядке. Просто механизмы репликации не разбираются в вопросах, в какой последовательности информация должна добавляться в таблицы и в каких удаляться. Кроме того, зачастую они операцию update могут заменить парой операций delete и insert, что в промежутке между ними также может привести к временному нарушению ссылочной целостности.
14 апр 03, 20:28    [173969]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией - помогите!  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10753
Блог
В случае мерж-репликации, можно попробовать поиграться с вот этими параметрами запуска агента:
https://www.sql.ru/articles/mssql/02120401ReplicationAgents.shtml#DownloadGenerationsPerBatch
https://www.sql.ru/articles/mssql/02120401ReplicationAgents.shtml#UploadGenerationsPerBatch
https://www.sql.ru/articles/mssql/02120401ReplicationAgents.shtml#ForceConvergenceLevel
https://www.sql.ru/articles/mssql/02120401ReplicationAgents.shtml#MaxDownloadChanges
https://www.sql.ru/articles/mssql/02120401ReplicationAgents.shtml#MaxUploadChanges
14 апр 03, 21:14    [173981]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией - помогите!  [new]
cvasil
Member

Откуда:
Сообщений: 519
Я обычно внешние ключи накатываю на подписчика уже после приложения снэпшота.
Естественно все с опциями "not for replication".
15 апр 03, 01:24    [174028]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией - помогите!  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1716
Сталкивался с такой проблемой.
Решилось все тем, что таблицы связанные по одному FK должны находиться в одной публикации.
15 апр 03, 09:29    [174160]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с репликацией - помогите!  [new]
Сергей Тихонов
Member

Откуда: Киев
Сообщений: 787
> Garya
Возможно, автор топика неточно описал ситуацию...
Насколько я понял, проблема возникает на этапе первоначального применения снэпшота на подписчике... А снэпшот применяется в следующей последовательности:
1. Файлы *.sch - создание таблиц
2. Файлы *.bcp - заливаются данные
3. Файлы *.dri - создаются индексы и FK.
4. Файлы *.trg - применяются триггеры.
Поэтому и возникла версия о несогласованности данных...
15 апр 03, 10:03    [174213]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Проблема с репликацией - помогите!  [new]
gamzaev
Member

Откуда:
Сообщений: 13
А что определяет флаг на Enforce Relationship for Replication и Enforce Relationship for INSERT and UPDATEs. Как можно их программно изменять с помощью TSQL или чего нить другого?
14 июн 04, 00:51    [740342]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить