Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Репликация 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.057 c
1-1134159570
Free0n
2005-12-09 23:19
2006.01.15
Кто может и кого возникнут оригинальные идеи посоветуйте...


2-1135581818
ADO
2005-12-26 10:23
2006.01.15
Пытаюсь подключится к MS SQL 2000 через ADO


14-1135176930
l4m3r
2005-12-21 17:55
2006.01.15
Отличие функции от процедуры


2-1135264803
з. танька
2005-12-22 18:20
2006.01.15
узнать кто куда лазил


14-1135262770
Pazitron_Brain
2005-12-22 17:46
2006.01.15
Операционные системы в массы!