|
Репликация
|
|||
---|---|---|---|
#18+
Добрый день всем! Есть такая ситуация: Есть несколько баз данных под управлением Adaptiv Server Anywhere 6.0(2), все это работает на WinNT 4.0 SP 6. Одна база консолидированная, все остальные удаленные. Настроены репликации между консолидированной базой и удаленными. Репликация происходит в оба направления. MessageType=FILE Репликация вызывается с пом. След. последовательности команд: "c:\...\dbbackup.exe" -t -r -k -y -o c:\log\dbbackup.log -c "eng=ЕЕ;dbn=КК;uid=**;pwd=**" e:\dbarchiv "c:\... \dbremote.exe" -k -v -o c:\log\remote.log -c "eng=ЕЕ;dbn=КК;uid=**;pwd=**" e:\dbarchiv ЕЕ, КК – параметры, специфичные для каждой стороны. Нет никакой четкой последовательности, с какой стороны сначала выполняется репликация – т.ею описанная выше последовательность команд может выполняться сначала в центр. Базе, а потом в удаленной, а может и наоборот. Также весьма часто бывает, что на одной стороне репликация выполняется несколько раз подряд, и только потом на другой стороне. (Просьба не бить меня за это камнями, не я все это организовывала). Проблема следующая: - Центральная база получает данные от удаленной (напр. Update). (Эти данные видны в протоколе dbremote). - Этот Update записывается в transaction-log центральной базы (соответственно видно при расшифровке transaction-log с пом. dbtran) - При следующей репликации эти полученные данные центральная база посылает удаленной базе назад!!! За время между репликациями данные в удаленной базе были изменены, и в итоге получается, что после репликации актуальные данные в удаленной DB переписаны старыми, полученными от консолидированной базы. Изменение «проблемных» данных в центральной базе юзерами исключено, логика программы этого не допускает. Когда это конкретно началось – сказать, увы, не могу. Сначала это заметили только на одной удаленной базе, с которой особенно часто происходит обмен данными, но, судя по всему, с остальными происходит тоже самое Если есть какие-то идеи / советы, буду очень признательна. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2003, 16:00 |
|
Репликация
|
|||
---|---|---|---|
#18+
Слишком мрачно все это. На Anywhere я не работал. Советую подумать о переходе на ASE + RS. Я делал систему из 11 БД, завязанных в репликацию (КАЖДАЯ С КАЖДОЙ) и расположенных удаленно друг от друга, в настоящее время эта система расширилась до 18 БД и успешно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2003, 10:47 |
|
Репликация
|
|||
---|---|---|---|
#18+
Дело не в системе, а в логике организации репликации вашей БД. Репликация таблицы должна быть односторонняя, т.е. изменять ее должны только в одной из БД. Если же надо реплицировать данные у двух главных таблиц (ГТ), которые одновременно изменяются в разных БД, то вам надо слегка подправить приложение(БД) путем введения двух вспомогательных таблиц (ВТ) на реплицируемых серверах. Одна для отправки, другая для приема. Данные для репликации закидывать в эти таблицы а их уже односторонне реплицировать. Потом можно написать обработчик для этих ВТ, который уже и будет перекидывать данные из них в гланую таблицу. Вроде так. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2003, 11:23 |
|
Репликация
|
|||
---|---|---|---|
#18+
Это механизм создания 2-х сторонней репликации на Anywhere? Опять повторюсь - слишком сложно, а значит зачастую неработоспособно. В той схеме, которую я делал никакие дополнительные таблицы не создаются. Завязываются необходимые таблицы в 2-х стороннюю репликацию и на каждой из 2-х сторон делаются вставки, изменения, удаления. Для каждой таблицы, учавствующей в репликации, необходимо пересмотреть и возможно изменить идеологию ключей и уникальных индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2003, 12:03 |
|
Репликация
|
|||
---|---|---|---|
#18+
В том-то и дело, что данные одновременно на обеих сторонах меняться не могут. Не позволяет логика программы этого. Выглядит все так, что центр. база посылает удаленной назад данные, полученные от этой удаленной базы во время предыд. репликации. Да и работало все это достатчно продолжительное время (вроде бы) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2003, 14:24 |
|
|
start [/forum/topic.php?fid=55&fpage=135&tid=2014912]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 246ms |
total: | 389ms |
0 / 0 |