Страница 1 из 1

Репликация с помощью Internet

Добавлено: 12 окт 2005, 08:37
santilaas
Народ, посоветуйте, пожалуйста, как организовать репликацию?
(БД - на Firebird, клиентское приложение - Delphi)

Ситуация следующая: есть главное отделение - там хранится БД (порядка 30 таблиц), собирающая инфу со всех отделений.
Эти отделения расположены в разных районах области (в них стоит та же БД, только в ней хранится информация, соответствующая коткретному отделению)
Необходимо реализовать репликацию данных:
- от районных отделений в главное отделение (здесь реплицируются лишь данные 4-х таблиц, скажем по 500 записей с каждой таблицы в день);
- от главного отделения в районные отделения (здесь реплицируется минимальное количество записей).

В общем нужно огранизовать ежедневную репликацию данных посредством сети интернет.

Добавлено: 12 окт 2005, 09:49
Dimitry Sibiryakov
Это зависит от типа подключения к И-нету у отделений. Если главное отделение имеет постоянный IP - нет проблем. Любой репликатор + туннель если безопасность важна.
Если у всех Dial-up, надо искать off-line репликатор который позволяет изменения перетаскивать как попало вплоть до дискет. Если мне память не изменяет у чехов есть такой (www.2p.cz).

Добавлено: 13 окт 2005, 12:00
santilaas
Любой репликатор + туннель если безопасность важна
Если не трудно:
- какой репликатор (где его скачать (кстати, какой репликатор подойдёт в данной ситуации?), где взять к нему Help)?
- туннель??? - что это и с чем его едят?

Добавлено: 13 окт 2005, 13:27
kdv
забей. если у тебя база сама по себе не различает, в отделении она стоит или в главном офисе, то тебе никакая репликация не поможет.

Если же ты точно знаешь какие данные должны откуда и куда идти, то для тебя будет очень легко написать свою репликацию. Даже легче, чем прикрутить любой существующий репликатор.

Добавлено: 13 окт 2005, 14:46
Dimitry Sibiryakov
Ты, Дима, человека так сразу не обламывай. Я тоже хочу иметь свой кусок масла на бутеброде. :twisted: Если бы репликаторы мог писать каждый второй, их бы развелось невиданное количество.

Добавлено: 13 окт 2005, 16:16
Dimitry Sibiryakov
Поскольку описание "данной ситуации" у тебя крайне скудное, я бы порекомендовал сначала порыться в Интернете на предмет "что такое репликация вообще и как ее приспособить к Firebird/Interbase". Тема эта не для форума, а скорее для лекции или даже нескольких.
Одну ссылку я тебе уже дал. Вторая (естесc-но) будет www.ibphoenix.com и далее на предмет IBReplicator. Но в чем-то Дима прав: если база не приспособлена для репликации, заставить ее реплицироваться - большой геморрой.

Добавлено: 13 окт 2005, 16:58
kdv
дык, кто тебе не дает-то? :) рекламируй свой репликатор. Если он хороший - и я буду рекламировать. Народ-то если и спрашивает, то фениксовый, а тут его продавать очень проблематично (не по ценам, а по способу оплаты).

Добавлено: 13 окт 2005, 18:05
hvlad
kdv писал(а):дык, кто тебе не дает-то? :) рекламируй свой репликатор. Если он хороший - и я буду рекламировать. Народ-то если и спрашивает, то фениксовый
Дык, это он и есть :D
kdv писал(а):а тут его продавать очень проблематично (не по ценам, а по способу оплаты).
Свой, что ли, продать ? :?

Добавлено: 14 окт 2005, 08:48
Dimitry Sibiryakov
kdv писал(а):Народ-то если и спрашивает, то фениксовый, а тут его продавать очень проблематично (не по ценам, а по способу оплаты).
А что, его способ оплаты сильно отличается от способов оплаты той же конференции? По-моему фениксу все равно как приходят деньги, а сгенеренные ключи можно и по почте прислать.

Добавлено: 14 окт 2005, 09:51
kdv
сильно. оплата конференции - нал. за нал репликатор и в голову никому не придет покупать. А если безнал, то как я его буду переправлять им туда?

Добавлено: 19 апр 2006, 04:36
santilaas
Как говорится - не прошло и года.

Ситуация немного изменилась:
реплицируется 15 таблиц (знаю какие, поля, как связаны и куда в итоге должны попадать), репликация отложенная (нет необходимости в автоматической репликации, да и канал не позволяет), т.е хочу делать выгрузку в файл (ВОПРОС: какого формата???), а затем отсылать его на центральное отделение, где запускается обработка, забивающая эти данные в центральную БД.
Особенности центральной БД и БД отделений состоят в следующем:
- для определения, какому отделению принадлежат данные, во всех реплицируемых таблицах есть поле префикса;
- Центральная БД отличается от БД отделений тем, что в ней в каждой таблице, по которой идёт репликация имеется дополнительно свой уникальный код.

Но тут у меня ещё вопрос: Как корректно отследить связи мастер-деталь при загрузке в центральную БД (сначала загружать данные мастер-таблиц, а топом уже подчинённых или как)???

И ещё: как делать саму выгрузку - каким-то образом отлавливать изменения таблиц(подлежащих репликации) за определённую дату???

А может, кто-нибудь, тренировался на простом примере. Может поделитесь простеньким исходником (пусть в БД будет 2 связанные таблицы - для понимания больше и не надо). А то ведь буду долго здесь всех доставать.

Помогите, плз - уже горит
Заранее премного благодарен (даже тем, кто просто прочитает).

Добавлено: 19 апр 2006, 08:18
Dimitry Sibiryakov
Нет, ты бы все-таки теорию почитал...
Выкидывать можно в файл любого формата вплоть до скрипта. Это зависит от промежуточного софта.
Префиксы - это хорошо.
Либо реплицируешь сначала мастер-таблицу потом деталь, либо воспроизводишь операции в том же порядке как они были в базе.
Узнавать какие именно записи реплицировать: либо по времени изменения либо протоколирующие триггеры. Сравнительный метод тут вряд ли подойдет.
Примеры были опять же на www.ibphoenix.com

есть реликатор внедренный в работу

Добавлено: 11 май 2006, 08:44
AlekseyV
Нами разработан и внедрен репликатор. Центр + 30 отделений, 120таблиц, и вдобавок еще истории редактирования каждой записи. все реплицируется.

Можем рассмотреть вопрос установки-внедрения, или продажи репликатора.

PS- наше мнение- реплицируйте полностью базу, потому что не ровен час произойдет какой нибудь организационный косячок (типа отделение не представит отчет и мотивирует что одной цифры не хватило которая не реплицировалась) и нач-во будет ругаться.
поэтому сразу ориентируейтесь на полную репликацию. 15 таблиц или 30 разницы никакой.

santilaas писал(а):Как говорится - не прошло и года.

Ситуация немного изменилась:
реплицируется 15 таблиц (знаю какие, поля, как связаны и куда в итоге должны попадать), репликация отложенная (нет необходимости в автоматической репликации, да и канал не позволяет), т.е хочу делать выгрузку в файл (ВОПРОС: какого формата???), а затем отсылать его на центральное отделение, где запускается обработка, забивающая эти данные в центральную БД.
Особенности центральной БД и БД отделений состоят в следующем:
- для определения, какому отделению принадлежат данные, во всех реплицируемых таблицах есть поле префикса;
- Центральная БД отличается от БД отделений тем, что в ней в каждой таблице, по которой идёт репликация имеется дополнительно свой уникальный код.

Но тут у меня ещё вопрос: Как корректно отследить связи мастер-деталь при загрузке в центральную БД (сначала загружать данные мастер-таблиц, а топом уже подчинённых или как)???

И ещё: как делать саму выгрузку - каким-то образом отлавливать изменения таблиц(подлежащих репликации) за определённую дату???

А может, кто-нибудь, тренировался на простом примере. Может поделитесь простеньким исходником (пусть в БД будет 2 связанные таблицы - для понимания больше и не надо). А то ведь буду долго здесь всех доставать.

Помогите, плз - уже горит
Заранее премного благодарен (даже тем, кто просто прочитает).

Добавлено: 13 май 2006, 19:39
santilaas
AlekseyV, купить у Вас репликатор - я не куплю, но если не трудно, скажите, пожалуйста:
- в какие файлы делается выгрузка данных (XML или что другое)?
- как узнаёте, какие именно записи реплицировать (хотя бы в общих чертах)?

репликация

Добавлено: 15 май 2006, 06:07
AlekseyV
выгрузка делается в SQL-скрипт (простой текстовый формат) который готовится для того отделения в который посылается

при работе операторов срабатывает триггер который ставит отметку в журнал о том что запись изменилась/добавилась.

по этому журналу формируются пакет данных на выгрузку в SQL-скрипт
santilaas писал(а):AlekseyV, купить у Вас репликатор - я не куплю, но если не трудно, скажите, пожалуйста:
- в какие файлы делается выгрузка данных (XML или что другое)?
- как узнаёте, какие именно записи реплицировать (хотя бы в общих чертах)?