powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Репликация
5 сообщений из 5, страница 1 из 1
Репликация
    #32164168
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!

Есть такая ситуация:

Есть несколько баз данных под управлением 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 переписаны старыми, полученными от консолидированной базы.

Изменение «проблемных» данных в центральной базе юзерами исключено, логика программы этого не допускает.

Когда это конкретно началось – сказать, увы, не могу. Сначала это заметили только на одной удаленной базе, с которой особенно часто происходит обмен данными, но, судя по всему, с остальными происходит тоже самое

Если есть какие-то идеи / советы, буду очень признательна. Заранее спасибо.
...
Рейтинг: 0 / 0
Репликация
    #32164725
Sasha11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слишком мрачно все это.
На Anywhere я не работал.
Советую подумать о переходе на ASE + RS.
Я делал систему из 11 БД, завязанных в репликацию (КАЖДАЯ С КАЖДОЙ) и расположенных удаленно друг от друга, в настоящее время эта система расширилась до 18 БД и успешно работает.
...
Рейтинг: 0 / 0
Репликация
    #32164803
ggg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело не в системе, а в логике организации репликации вашей БД. Репликация таблицы должна быть односторонняя, т.е. изменять ее должны только в одной из БД. Если же надо реплицировать данные у двух главных таблиц (ГТ), которые одновременно изменяются в разных БД, то вам надо слегка подправить приложение(БД) путем введения двух вспомогательных таблиц (ВТ) на реплицируемых серверах. Одна для отправки, другая для приема. Данные для репликации закидывать в эти таблицы а их уже односторонне реплицировать. Потом можно написать обработчик для этих ВТ, который уже и будет перекидывать данные из них в гланую таблицу.
Вроде так.
...
Рейтинг: 0 / 0
Репликация
    #32164865
Sasha11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это механизм создания 2-х сторонней репликации на Anywhere?
Опять повторюсь - слишком сложно, а значит зачастую неработоспособно.
В той схеме, которую я делал никакие дополнительные таблицы не создаются.
Завязываются необходимые таблицы в 2-х стороннюю репликацию и на каждой из 2-х сторон делаются вставки, изменения, удаления.
Для каждой таблицы, учавствующей в репликации, необходимо пересмотреть и возможно изменить идеологию ключей и уникальных индексов.
...
Рейтинг: 0 / 0
Репликация
    #32165124
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том-то и дело, что данные одновременно на обеих сторонах меняться не могут. Не позволяет логика программы этого.
Выглядит все так, что центр. база посылает удаленной назад данные, полученные от этой удаленной базы во время предыд. репликации.

Да и работало все это достатчно продолжительное время (вроде бы)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Репликация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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