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

Методы, механизмы и инструментарий для репликации

Модератор: kdv

Ответить
santilaas
Сообщения: 51
Зарегистрирован: 27 авг 2005, 21:05

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

Сообщение santilaas » 12 окт 2005, 08:37

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

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

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 12 окт 2005, 09:49

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

santilaas
Сообщения: 51
Зарегистрирован: 27 авг 2005, 21:05

Сообщение santilaas » 13 окт 2005, 12:00

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 окт 2005, 13:27

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

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 13 окт 2005, 14:46

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 13 окт 2005, 16:16

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 окт 2005, 16:58

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

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 13 окт 2005, 18:05

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 14 окт 2005, 08:48

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 14 окт 2005, 09:51

сильно. оплата конференции - нал. за нал репликатор и в голову никому не придет покупать. А если безнал, то как я его буду переправлять им туда?

santilaas
Сообщения: 51
Зарегистрирован: 27 авг 2005, 21:05

Сообщение santilaas » 19 апр 2006, 04:36

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

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

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

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

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

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 19 апр 2006, 08:18

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

AlekseyV
Сообщения: 3
Зарегистрирован: 14 дек 2005, 06:12

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

Сообщение AlekseyV » 11 май 2006, 08:44

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

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

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

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

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

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

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

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

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

santilaas
Сообщения: 51
Зарегистрирован: 27 авг 2005, 21:05

Сообщение santilaas » 13 май 2006, 19:39

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

AlekseyV
Сообщения: 3
Зарегистрирован: 14 дек 2005, 06:12

репликация

Сообщение AlekseyV » 15 май 2006, 06:07

выгрузка делается в SQL-скрипт (простой текстовый формат) который готовится для того отделения в который посылается

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

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

Ответить