Вопрос по репликации (не пойму кое-чего)

Cooper
Дата: 13.10.2003 12:57:55
Привет.

Вот у меня есть издатель и несколько подписчиков. У каждого мерже агента свое расписание, по которому конкретный подписчик синхронизируется с издателем. Но в этом то и проблема, мне нужно, чтобы синхронизировались все подписчики ОДНОВРЕМЕННО. То есть, на издателя (/дистрибьютера) качаются данные СО ВСЕХ подписчиков, решаются конфликты и обратно с издателя пишутся данные на ВСЕ подписчики.

Возможно ли сделать так?
Если да, то как? (может нужно job соответствующий написать? а может есть каки-нить настройки?)

Спасибо.

===============================
Qper
Александр Гладченко
Дата: 13.10.2003 14:41:54
Тогда Вам нужно сделать целую кучу одинаковых расписаний, одинаковых на всех подписчиках. Но полной синхронности вы всё равно не достигните. Кстати, а для чего это Вам? У Вас что, узаконены конфликты?
LUKASUS
Дата: 13.10.2003 15:12:02
Для одновременной синхронизации данных на всех подписчиках в любой момент времени подходит Transaction Replication,а Merge изначально не для этого создавался
Cooper
Дата: 13.10.2003 15:27:11
2 Александр Гладченко

Тогда Вам нужно сделать целую кучу одинаковых расписаний, одинаковых на всех подписчиках. Но полной синхронности вы всё равно не достигните.

В том то и дело, что это принципиально другая вещь получается. Идет независимая синхронизация подписчиков с издателем. И естественно даже при одинаковом расписании - не происходит синхронизации между всеми подписчиками.

Кстати, а для чего это Вам?

Как для чего? для того, чтобы провести синхронизацию и увидеть в "первом приближении" обобщенные данные всех участников репликации.

У Вас что, узаконены конфликты?

Если вкратце, то - да, узаконены.

2 LUKASUS

А почему в мерже нельзя так?:
на издателя (/дистрибьютера) качаются данные СО ВСЕХ подписчиков, решаются конфликты и обратно с издателя пишутся данные на ВСЕ подписчики

===============================
Qper
LUKASUS
Дата: 13.10.2003 15:36:00
А почему в мерже нельзя так?:
на издателя (/дистрибьютера) качаются данные СО ВСЕХ подписчиков, решаются конфликты и обратно с издателя пишутся данные на ВСЕ подписчики


Если правильно настроена политика решения конфликтов,то даже если два подписчика по очереди будут синхронизироваться то после некоторое время (до первых изменениях на подписчиках)данные будут синхронизированными
Cooper
Дата: 13.10.2003 15:48:27
2 LUKASUS

Да не получается у меня так:

Вот на примере:
Есть один издатель(/дистрибьютер), два подписчика. Установил одинковое расписание для обоих подписчиков. Запускаю репликацию. Предположим первой синхронизировалась подписка "А" с издателем. Затем синхронизируется подписка "B". В итоге имеем. Издатель и подписчик "В" имеют все данные, а на подписчике "А" - нет данных с подписчика "В".

Почему нельзя сначала собрать данные со всех подписчиков на издателя(/дистрибьютера), а потом растирожировать на все подписчики?

===============================
Qper
LUKASUS
Дата: 13.10.2003 16:09:19
Все понятно :)
Посмотрите у Вас тип подписки pull, а нужен push, тогда будет так как хочеться
Cooper
Дата: 13.10.2003 16:13:09
ИМЕННО, что push.

===============================
Qper
Cooper
Дата: 13.10.2003 18:27:21
В таком случае я не пойму - зачем нужны приоритеты для подписчиков? Если они независимо синхронизируются с издателем?

Хотя в книжке читаю:

Мерже агент собирате модифицированные строки с подписчиков и издателя и помещает их в базу distribution. Если в один момент имеется более одного состояния для одной и той же строки (строка изменена на нескольких серверах), то возникает конфликт изменения.Агент должен решить, какое изменение имеет право "на жизнь", а какое должно быть потеряно. Это заключение делается на основе шкалы приоритетов.
(с) Е.Мамаев

Вопрос - Как собрать данные с подписчиков на дистрибьютера? МОжет кто занет?

===============================
Qper
GreenSunrise
Дата: 13.10.2003 19:58:28
2Александр Гладченко: Извините, вы не могли бы сказать, что такое "узаконенность конфликтов"? Потенциально в любой репликации могут быть конфликты. Что значит "узаконены или нет"?

2LUKASUS: Почему вы думаете, что push и pull подписки будут вести себя по-разному в случае разрешения конфликтов?
Расписание джобов можно при любом типе подписки настроить, как надо - хоть одновременно запускать, хоть нет. Все равно подписчики по очереди будут синхронизироваться с дистрибьютором.

Есть один издатель(/дистрибьютер), два подписчика. Установил одинковое расписание для обоих подписчиков. Запускаю репликацию. Предположим первой синхронизировалась подписка "А" с издателем. Затем синхронизируется подписка "B". В итоге имеем. Издатель и подписчик "В" имеют все данные, а на подписчике "А" - нет данных с подписчика "В".
Естественно. Они попадут туда при следующей синхронизации.

Как собрать данные с подписчиков на дистрибьютера?
См. предыдущий абзац. Не надо никаких дополнительных действий.


Еще не забывайте, что есть два режима выбора победителя при сравнении весов: "Use the Publisher as a proxy for the Subscriber when resolving conflicts" и "Use the following priority to resolve the conflict"