Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Репликация и логическая целостность / 7 сообщений из 7, страница 1 из 1
04.07.2001, 14:43
    #32008895
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и логическая целостность
Ситуация примерно следующая: есть таблица T1 (родительская) и таблица T2 (дочерняя). Foreign key, все дела. При репликации передаются изменения, произошедшие в обеих таблицах.
Проблема состоит в том, что "логический объект" - некая вьюха из конкретного родителя и его детей должна быть целостной. Например, делаем insert 5 записей в таблицу T2, которые относятся к одному и тому же родителю в T1. Эта вставка происходит обязательно в транзакции (так нужно по предметной области). Поскольку агент репликации передает изменения не в транзакции (или я ошибаюсь ?), то может получиться, что сначала передадутся 3 записи, а через некоторое время еще 2. Если в этот промежуток вклинится клиент и зачитает вьюху, то будет хреново, потому что логический объект будет неполным. Можно ли как-то выкрутиться из данной ситуации ?
...
Рейтинг: 0 / 0
04.07.2001, 14:53
    #32008897
Peter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и логическая целостность
AFAIK вы ошибаетесь. Пока транзакция на вставку не завершена, во view не будет видно новых записей (если во view не стоит NOLOCK возле имени таблицы и уровень изоляции не Read Uncommited). А раз не видно записей во view - значит, они не будут реплицированы.
...
Рейтинг: 0 / 0
04.07.2001, 15:05
    #32008899
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и логическая целостность
Я не об этом. На конкретной машине вставка завершилась, транзакция прошла успешно, все. Через некоторое время проснется агент репликации и начнет передавать изменения. Важно, чтобы пока ВСЕ изменения не передались, они не стали видны на другой машине.
...
Рейтинг: 0 / 0
04.07.2001, 15:27
    #32008901
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и логическая целостность
А о какой репликации идет речь? Вот в репликации непосредственно обновляемых подписчиков эта проблема точно отсутствует. Зато присутствуют другие .
...
Рейтинг: 0 / 0
05.07.2001, 06:18
    #32008930
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и логическая целостность
Merge репликация, но не оговорено, будет запускаться агент время от времени или постоянно обновляемые подписчики. А о каких проблемах во втором случае вы говорите ?
...
Рейтинг: 0 / 0
05.07.2001, 06:53
    #32008936
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и логическая целостность
1. Необходимость высокоскоростного и надежного соединения. Если такового нет, то многие распределенные транзакции (на которых и построена репликация непосредственно обновляемых подписчиков) просто не смогут закрепиться. Плюс жуткие тормоза при каждом шевелении данными.
2. ПОНИЖЕННАЯ надежность. При выходе из строя одного из серверов, учствующих в репликации, все остальные тоже не смогут модифицировать данные, поскольку транзакции модификации данных не смогут закрепиться на одном из участвующих в репликации серверов.

Для Merge-репликации оговоренная тобой проблема действительно имеет быть. И она не единственная. Синхронизация действительно идет НЕ в транзакции. Я обнаружил еще одну аналогичную проблему Merge-репликации. Если во время синхронизации передается большой массив информации, и во время передачи вдруг разорвалось соединение, оказывается половина данных перекачено, а половина нет. В результате могут, к примеру, появиться счета или накладные, в которых присутствуют не все позиции (по крайней мере до прошествия полной синхронизации). Действительно, данные, переданные при начале синхронизации, появляются на экранах пользователей до окончания синхронизации, что может привести к принятию неверных решений.
Судя по всему, философского камня, который решал бы все проблемы на все случаи жизни не существует. Иначе был бы только один вид репликации, годящийся на все случаи жизни, а их множество. У каждого вида свои достоинства и свои недостатки. Нужно выбирать для конкретной ситуации тот вид, плюсы которого перевешивают его же недостатки. А избавиться от всех минусов напрочь IMHO не получится.
...
Рейтинг: 0 / 0
05.07.2001, 09:22
    #32008961
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и логическая целостность
Вот-вот. Именно эта проблема и встала в полный рост. И что, никто с ней не умеет по-человечески справиться ? У меня есть пара идеек, но они достаточно корявые - типа взведенения неких флажков, проверки старта/финиша агента и т.д.
А более гладких способов нет ?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Репликация и логическая целостность / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]