Форум: "Базы";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
ВнизРепликация FB + Delphi.... Варианты исполнения Найти похожие ветки
← →
S@shka © (2005-10-12 10:52) [0]Добрый!
Стоит задача реплицирования данных с одной БД в другую, расположенную на удаленном по сети ПК.
Причем, если быть точным реплика идет из нескольких БД в Одну, т.е. с нескольких ПК на СЕРВЕР.
Я подумал, сделать следующее - создаю ssl-туннель между компами и пишу Replicator, который устанавлиется на сервере и по рассмисанию соединяется с БД клиентов и выполняет
"remote"select и "local"insert + (необходимые преобразования если необходимо).
Однако возникает вопрос - логичен ли такой подход???
Почитал ссылки на ibase.ru по репликации там рассмотрено решение установки клиент-сервера реплиции. Т.е. сервак говорит "хочу" - клиент (локально) эти данные готовит и пересылает серверу в виде ZIP (DBF etc), сервер разбирает файл и делает insert. Но это существенно сложнее (по времени исполнения ))).
В моем варианте меня лишь напрягает операция удаленного соединения с БД. Критичен ли при этом возможный разрыв соединения на этапе выполнения удаленного запроса на выборку данных???
← →
Курдль © (2005-10-12 17:13) [1]
> Однако возникает вопрос - логичен ли такой подход???
Если от сетевых ПК сервер доступен постоянно - репликация сама по себе не логична.
← →
Курдль © (2005-10-12 17:36) [2]
> "remote"select и "local"insert + (необходимые преобразования
> если необходимо).
А синхронизация сервер -> клиент не понадобится?
Т.е. никаких возможных конфликтов Вы не предполагаете?
Например, если 2 клиента внесут у себя абсолютно одинаковых юр.лица?
Мне кажется, что репликация оптимальна специализированными средствами, предоставляемыми самой СУБД. Наверняка таковые имеются и у FB.
← →
Карелин Артем © (2005-10-12 19:53) [3]
> Курдль © (12.10.05 17:36) [2]
FB не MS SQL и репликации в него не встроено.
Насчет разрыва: если использовать IBX для доступа к данным, то разрыв приведет к краху программы.
Если использовать другие компоненты и правильно развести транзакции, то вероятность порчи данных от дисконнекта минимальна.
P.S. Я для репликации писал клиент-серверную систему, работающую по TCP/IP.
← →
Курдль © (2005-10-13 10:49) [4]> Карелин Артем © (12.10.05 19:53) [3]
> FB не MS SQL и репликации в него не встроено.
Ну, конечно! "MS SQL" - это звучит гордо :)
Если даже нет фирменных средств репликации, то, возможно, существует много профессиональных наработок.
> P.S. Я для репликации писал клиент-серверную систему, работающую
> по TCP/IP.
А с какой целью? Разве стандартные протоколы обмена с СУБД (ODBC, ADO и т.п.) не справляются (если уж не подошел прямой доступ через IBX)?
← →
S@shka © (2005-11-16 10:55) [5]To >> Карелин Артем
> Насчет разрыва: если использовать IBX для доступа к данным,
> то разрыв приведет к краху программы.
- не проблема - постави try ... except
Больше инетересует БД. - дисконнект - приведет к повисшей транзакции?
>>> Курдль
> Т.е. никаких возможных конфликтов Вы не предполагаете?
Исключено - все отдельные БД уникальны - происходит попросту говоря "объединение в одну большую БД данных с разных объектов"
---------------------------------------------------
Все таки хм .... не пойму грамотен ли подход "прямого IBX коннекта к удаленной БД - забор данных и вставка локально?".
Операции:
Для удаленной БД - select, delete
Локальной - insert update.
Я сделал клиент-сервер но почему то это меня тяготит ))))
← →
Карелин Артем © (2005-11-16 11:04) [6]
> Курдль © (13.10.05 10:49) [4]
> А с какой целью? Разве стандартные протоколы обмена с СУБД
> (ODBC, ADO и т.п.) не справляются (если уж не подошел прямой
> доступ через IBX)?
По модему за 200 км...
S@shka © (16.11.05 10:55) [5]
>- не проблема - постави try ... except
Вообще-то при обрыве происходит что-то жуткое, с чем try..except в Delphi 5 не справляется.
← →
Sergey13 © (2005-11-16 11:05) [7]2[1] Курдль © (12.10.05 17:13)
> Если от сетевых ПК сервер доступен постоянно - репликация сама по себе не логична.
Присоединяюсь. Если все в одной сети, то странная задача.
← →
Tomkat (2005-11-16 12:56) [8]я решал подобную задачку ....
у нас сервер под Линухом, на нем FB 1.03
и 15 удаленных клиентов по всей стране ....мы сделали проброс портов от центрального Unix FreeBSD на Линуксовый и клиент мог подключаться к нему указав внешний IP Юникса ....
но такое годится для небольшрго количества данных, либо для широкого канала . У нас канал 64К, и вечером ломятся 10 клиентов + Интернет + мыло .Короче , тормоза были большие .... но потерь не было , просто все операции делались в одной транзакции , если чего - транзакция отбивалась и все .
Сейчас я переделал на пакетную передачу мылом . это не самый надежный способ, но работает ! на сервере стоит служба, к-я разбирает файло и выкладывает куда нада ...
Есть еще вариант - закачивать и забирать обновления на/с FTP сервера , поднятый на нашем внешнем Юниксе ....
ну вот весь опыт репликации
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c