Репликация с помощью Internet
Модератор: kdv
Репликация с помощью Internet
Народ, посоветуйте, пожалуйста, как организовать репликацию?
(БД - на Firebird, клиентское приложение - Delphi)
Ситуация следующая: есть главное отделение - там хранится БД (порядка 30 таблиц), собирающая инфу со всех отделений.
Эти отделения расположены в разных районах области (в них стоит та же БД, только в ней хранится информация, соответствующая коткретному отделению)
Необходимо реализовать репликацию данных:
- от районных отделений в главное отделение (здесь реплицируются лишь данные 4-х таблиц, скажем по 500 записей с каждой таблицы в день);
- от главного отделения в районные отделения (здесь реплицируется минимальное количество записей).
В общем нужно огранизовать ежедневную репликацию данных посредством сети интернет.
(БД - на Firebird, клиентское приложение - Delphi)
Ситуация следующая: есть главное отделение - там хранится БД (порядка 30 таблиц), собирающая инфу со всех отделений.
Эти отделения расположены в разных районах области (в них стоит та же БД, только в ней хранится информация, соответствующая коткретному отделению)
Необходимо реализовать репликацию данных:
- от районных отделений в главное отделение (здесь реплицируются лишь данные 4-х таблиц, скажем по 500 записей с каждой таблицы в день);
- от главного отделения в районные отделения (здесь реплицируется минимальное количество записей).
В общем нужно огранизовать ежедневную репликацию данных посредством сети интернет.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Это зависит от типа подключения к И-нету у отделений. Если главное отделение имеет постоянный IP - нет проблем. Любой репликатор + туннель если безопасность важна.
Если у всех Dial-up, надо искать off-line репликатор который позволяет изменения перетаскивать как попало вплоть до дискет. Если мне память не изменяет у чехов есть такой (www.2p.cz).
Если у всех Dial-up, надо искать off-line репликатор который позволяет изменения перетаскивать как попало вплоть до дискет. Если мне память не изменяет у чехов есть такой (www.2p.cz).
забей. если у тебя база сама по себе не различает, в отделении она стоит или в главном офисе, то тебе никакая репликация не поможет.
Если же ты точно знаешь какие данные должны откуда и куда идти, то для тебя будет очень легко написать свою репликацию. Даже легче, чем прикрутить любой существующий репликатор.
Если же ты точно знаешь какие данные должны откуда и куда идти, то для тебя будет очень легко написать свою репликацию. Даже легче, чем прикрутить любой существующий репликатор.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Поскольку описание "данной ситуации" у тебя крайне скудное, я бы порекомендовал сначала порыться в Интернете на предмет "что такое репликация вообще и как ее приспособить к Firebird/Interbase". Тема эта не для форума, а скорее для лекции или даже нескольких.
Одну ссылку я тебе уже дал. Вторая (естесc-но) будет www.ibphoenix.com и далее на предмет IBReplicator. Но в чем-то Дима прав: если база не приспособлена для репликации, заставить ее реплицироваться - большой геморрой.
Одну ссылку я тебе уже дал. Вторая (естесc-но) будет www.ibphoenix.com и далее на предмет IBReplicator. Но в чем-то Дима прав: если база не приспособлена для репликации, заставить ее реплицироваться - большой геморрой.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
А что, его способ оплаты сильно отличается от способов оплаты той же конференции? По-моему фениксу все равно как приходят деньги, а сгенеренные ключи можно и по почте прислать.kdv писал(а):Народ-то если и спрашивает, то фениксовый, а тут его продавать очень проблематично (не по ценам, а по способу оплаты).
Как говорится - не прошло и года.
Ситуация немного изменилась:
реплицируется 15 таблиц (знаю какие, поля, как связаны и куда в итоге должны попадать), репликация отложенная (нет необходимости в автоматической репликации, да и канал не позволяет), т.е хочу делать выгрузку в файл (ВОПРОС: какого формата???), а затем отсылать его на центральное отделение, где запускается обработка, забивающая эти данные в центральную БД.
Особенности центральной БД и БД отделений состоят в следующем:
- для определения, какому отделению принадлежат данные, во всех реплицируемых таблицах есть поле префикса;
- Центральная БД отличается от БД отделений тем, что в ней в каждой таблице, по которой идёт репликация имеется дополнительно свой уникальный код.
Но тут у меня ещё вопрос: Как корректно отследить связи мастер-деталь при загрузке в центральную БД (сначала загружать данные мастер-таблиц, а топом уже подчинённых или как)???
И ещё: как делать саму выгрузку - каким-то образом отлавливать изменения таблиц(подлежащих репликации) за определённую дату???
А может, кто-нибудь, тренировался на простом примере. Может поделитесь простеньким исходником (пусть в БД будет 2 связанные таблицы - для понимания больше и не надо). А то ведь буду долго здесь всех доставать.
Помогите, плз - уже горит
Заранее премного благодарен (даже тем, кто просто прочитает).
Ситуация немного изменилась:
реплицируется 15 таблиц (знаю какие, поля, как связаны и куда в итоге должны попадать), репликация отложенная (нет необходимости в автоматической репликации, да и канал не позволяет), т.е хочу делать выгрузку в файл (ВОПРОС: какого формата???), а затем отсылать его на центральное отделение, где запускается обработка, забивающая эти данные в центральную БД.
Особенности центральной БД и БД отделений состоят в следующем:
- для определения, какому отделению принадлежат данные, во всех реплицируемых таблицах есть поле префикса;
- Центральная БД отличается от БД отделений тем, что в ней в каждой таблице, по которой идёт репликация имеется дополнительно свой уникальный код.
Но тут у меня ещё вопрос: Как корректно отследить связи мастер-деталь при загрузке в центральную БД (сначала загружать данные мастер-таблиц, а топом уже подчинённых или как)???
И ещё: как делать саму выгрузку - каким-то образом отлавливать изменения таблиц(подлежащих репликации) за определённую дату???
А может, кто-нибудь, тренировался на простом примере. Может поделитесь простеньким исходником (пусть в БД будет 2 связанные таблицы - для понимания больше и не надо). А то ведь буду долго здесь всех доставать.
Помогите, плз - уже горит
Заранее премного благодарен (даже тем, кто просто прочитает).
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Нет, ты бы все-таки теорию почитал...
Выкидывать можно в файл любого формата вплоть до скрипта. Это зависит от промежуточного софта.
Префиксы - это хорошо.
Либо реплицируешь сначала мастер-таблицу потом деталь, либо воспроизводишь операции в том же порядке как они были в базе.
Узнавать какие именно записи реплицировать: либо по времени изменения либо протоколирующие триггеры. Сравнительный метод тут вряд ли подойдет.
Примеры были опять же на www.ibphoenix.com
Выкидывать можно в файл любого формата вплоть до скрипта. Это зависит от промежуточного софта.
Префиксы - это хорошо.
Либо реплицируешь сначала мастер-таблицу потом деталь, либо воспроизводишь операции в том же порядке как они были в базе.
Узнавать какие именно записи реплицировать: либо по времени изменения либо протоколирующие триггеры. Сравнительный метод тут вряд ли подойдет.
Примеры были опять же на www.ibphoenix.com
есть реликатор внедренный в работу
Нами разработан и внедрен репликатор. Центр + 30 отделений, 120таблиц, и вдобавок еще истории редактирования каждой записи. все реплицируется.
Можем рассмотреть вопрос установки-внедрения, или продажи репликатора.
PS- наше мнение- реплицируйте полностью базу, потому что не ровен час произойдет какой нибудь организационный косячок (типа отделение не представит отчет и мотивирует что одной цифры не хватило которая не реплицировалась) и нач-во будет ругаться.
поэтому сразу ориентируейтесь на полную репликацию. 15 таблиц или 30 разницы никакой.
Можем рассмотреть вопрос установки-внедрения, или продажи репликатора.
PS- наше мнение- реплицируйте полностью базу, потому что не ровен час произойдет какой нибудь организационный косячок (типа отделение не представит отчет и мотивирует что одной цифры не хватило которая не реплицировалась) и нач-во будет ругаться.
поэтому сразу ориентируейтесь на полную репликацию. 15 таблиц или 30 разницы никакой.
santilaas писал(а):Как говорится - не прошло и года.
Ситуация немного изменилась:
реплицируется 15 таблиц (знаю какие, поля, как связаны и куда в итоге должны попадать), репликация отложенная (нет необходимости в автоматической репликации, да и канал не позволяет), т.е хочу делать выгрузку в файл (ВОПРОС: какого формата???), а затем отсылать его на центральное отделение, где запускается обработка, забивающая эти данные в центральную БД.
Особенности центральной БД и БД отделений состоят в следующем:
- для определения, какому отделению принадлежат данные, во всех реплицируемых таблицах есть поле префикса;
- Центральная БД отличается от БД отделений тем, что в ней в каждой таблице, по которой идёт репликация имеется дополнительно свой уникальный код.
Но тут у меня ещё вопрос: Как корректно отследить связи мастер-деталь при загрузке в центральную БД (сначала загружать данные мастер-таблиц, а топом уже подчинённых или как)???
И ещё: как делать саму выгрузку - каким-то образом отлавливать изменения таблиц(подлежащих репликации) за определённую дату???
А может, кто-нибудь, тренировался на простом примере. Может поделитесь простеньким исходником (пусть в БД будет 2 связанные таблицы - для понимания больше и не надо). А то ведь буду долго здесь всех доставать.
Помогите, плз - уже горит
Заранее премного благодарен (даже тем, кто просто прочитает).
репликация
выгрузка делается в SQL-скрипт (простой текстовый формат) который готовится для того отделения в который посылается
при работе операторов срабатывает триггер который ставит отметку в журнал о том что запись изменилась/добавилась.
по этому журналу формируются пакет данных на выгрузку в SQL-скрипт
при работе операторов срабатывает триггер который ставит отметку в журнал о том что запись изменилась/добавилась.
по этому журналу формируются пакет данных на выгрузку в SQL-скрипт
santilaas писал(а):AlekseyV, купить у Вас репликатор - я не куплю, но если не трудно, скажите, пожалуйста:
- в какие файлы делается выгрузка данных (XML или что другое)?
- как узнаёте, какие именно записи реплицировать (хотя бы в общих чертах)?