Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Репликация между серверами FireBird 1.0.2 [D6, FireBird 1.0.2]


nik7777 ©   (2004-06-25 08:55:00) 

Приветствую всех Мастеров!!!
У меня стоит задача: надо, чтобы сервера InterBase 6.0 (FireBird 1.0.2) обменивались данными - репликация.
При том, что вся информация сливается в головной сервер, а все остальные (к примеру, по филиалам) черпают данные с головного.
Я уже задавал вопрос данного характера. Спасибо за помощь тем кто помог найти репиликатор и информацию.
Теперь стоит задача разобраться с этим самым репликатором - IBRplManager.exe (авторские права - InterBase Software Corporation). Вроде делаю все как по документации, которая входит в установочный пакет (вернее просто распаковываю архив и можно юзать). Но никак у меня не получается настроить "Create system objects" выходит следующая ошибка: "Dynamic SQL Error SQL error code = -204 Ambiguous field name between table PUBLISHEDDB and table RELATIONS REPLNO". Проделывал перенастройку с "нуля" несколько раз, вплоть до создания по новой настроечной БД (config.gdb) - не помогает. Не знаю больше что делать.
Большая просьба ко всем кто работал когда-либо с данным приложением или как-то сталкивался с ней, помогите пожалуйста разобраться. Кто чем сможет. Любой помощи буду рад!
Ввво как надо (проводя большим пальцем по передней окружности шеи)!!!

Заранее спасибо!!!
С уважением, Николай!

z_man@mosk.ru


vv_fran   (2004-07-05 09:50:00) [1]

nik7777
>Я это делаю через обычный текстовый файл
>>А если после загрузки данных из филиала в центр из этого текстовика, сформировать опять же текстовик уже с данными из центра и отправить в филиал, который в свою очередь тоже загрузит данные уже из нового текстовика? Если таким образом обойти проблему?

У меня так и сделано. Экспорт-импорт в оба конца


Deniz   (2004-07-05 09:18:00) [2]

> nik7777   (05.07.04 07:02) [6]
> Проблема не в репликации - с ней все замечательно. Проблема состоит в синхронизации

Если ты сам будешь писАть программу(называй как хочешь, репликация или синхронизация), которая нужные данные будет перекидывать из одной базы в другую в обе стороны, то никаких проблем не будет. А для переноса пользоваться можно и текстовым, и своим форматом, и XML, и DBF и т.д., все это на любителя!


nik7777   (2004-07-05 07:02:00) [3]

Deniz
>Так ведь можно репликацию самому написать ...
Проблема не в репликации - с ней все замечательно. Проблема состоит в синхронизации (в два конца "от филиала в центр" и "из центра в филиал"). Чтобы свежие данные были по обе стороны.

vv_fran
>Я это делаю через обычный текстовый файл
А если после загрузки данных из филиала в центр из этого текстовика, сформировать опять же текстовик уже с данными из центра и отправить в филиал, который в свою очередь тоже загрузит данные уже из нового текстовика? Если таким образом обойти проблему?


vv_fran   (2004-07-02 08:41:00) [4]

Эти репликаторы во многих случаях не возможно использовать, в зависимости от данных. Приходится писать свой. Я это делаю через обычный текстовый файл. Он передается по Эл.почте. и на другом конце спец.утилитой загружается в сервер.


Deniz   (2004-07-02 08:32:00) [5]

Так ведь можно репликацию самому написать, это не так уж сложно, тем более можешь учесть специфику БД и что-нибудь еще сделать во время репликации.


kaif   (2004-07-01 18:40:00) [6]

Я подозреваю вот, что.
InterBase позволяет делать запрос вида:

SELECT ID, T1.A, T2.B
FROM TABLE1 T1, TABLE2
WHERE T1.ID = T2.ID

Firebird в этой ситуации ругается, так как T1.ID и T2.ID считает разными полями, хотя и имеющими одинаковое значение в данном запросе. Именно в этих ситуациях возникает ошибка, о которой тьы пишешь (ambiguous field name)
То есть Firebird-у нужно указать явно, из какой таблицы берется поле, если существуют одноименные поля в двыух таблицах, независимо от того, есть или нет объединение по этому полю в данном запросе.

SELECT T1.ID, T1.A, T2.B
FROM TABLE1 T1, TABLE2
WHERE T1.ID = T2.ID

Так что либо переходи на сервер IB6.5, либо нужно изменять текст запросов этого менеджера репликаций. Если текст запросов подправить невозможно, то с Firebird это может вобще не сработать. Там явно есть конструкция вроде:

SELECT REPLNO, ...
FROM  PUBLISHEDDB P, RELATIONS R
WHERE P.REPLNO = R.REPLNO ...

Firebird хочет, чтобы было указано, из какой таблицы планировщику брать REPLNO. Хотя это и маразм (ИМХО).


nik7777   (2004-07-01 15:46:00) [7]

Может быть есть какой-нибудь другой способ репликации и синхронизации между серверами FireBird 1.0. Если есть такая информация, неоткажите в помощи. Я уже неделю пытаюсь разобраться в синхронизации в IBReplication Manager и все без успешно. Подскажите, покажите, дайте ссылку, пожалуйста! Я понимаю, что когда сам находишь и разбираешься - это отлиная практика, но поверте мне, у меня нет никапельки времени - сроки "горят". поэтому адресу http://ibase.ru/develop.htmвсе что мог вытащил, но без успешно.

Прошу, пожалуйста, помогите мне!!!


nik7777   (2004-06-25 14:35:00) [8]

Мастера,помогите пожалуйста!!!
Очень необходимо!
Сроки "горят"!!! :((


Наверх

Титульная страница Поиск, карта сайта Написать письмо