Arioch wrote:
Подскажите пожалуйста, как лучше реализовать следующую схему:
Имеется центральный сервер СУБД и несколько филиальских.
В каждом филиале запущено несколько программ, работающих с базой данных.
Хочется добиться такого, чтобы при потере соединения, филиальские
программы продолжали работать с базой, а при появлении база
синхронизировалась с основной.
Много ли филиальских программ? нужна ли им промежуточная база, или проще
каждую переводить в offline-режим, как почтовый киент ?
первоначально хотелось наименьщими усилиями перевести готовую программу
в режим работы без связи. и показалось, что репликация одно из самых
быстрых решений, тем самым избежав внесения изменений в работу/код
программы.
а если так, то можно сделать либо репликацию на автомате, либо
самописным сервисом (тут у программиста больше свободы но и
реализовывать это тоже кому-то надо)
Работа в основном ведется по введению/созданию документов (т.е.
insert'ы в какую-то таблицу и может чтение из каких-то справочных
таблиц).
Справочные таблицы кэшируются-реплицируются на филиальный сервер, оттуда
на клиентов и хранятся у них на винте в DBF.
ну зачем dbf?
есть же hsqldb, sqlite -- вполне себе sql решение.
от этих dbf уже одни только проблемы в распределенной сети (у нас еще
осталась гетерогенная схема, SQL + DBF и куча софта который таскает
данные туда/обратно)
insert'ы оормляются как e-mail, и могут сидеть Исходящих сколько
угодно, пока сеть не появится. Еще лучше - оформлять их как nws
(форумный NNTP-протокол - вот вам и способ доступа к БД. В том же
ibexpert.com на базе писем с доп. заголовками сделан встроенный в прогу
багтрэкер - похожа его модель на то, что нужно? )
что-то мне это напоминает изобретение велосипеда... или даже самоката
а как быть если письмо (insert == email) потеряется?
Я правда не верю, что этим действительно ограничивается работа
программы, просто описать в двух строках ее вряд ли возможно :-)
Можно ли сделать это средствами СУБД? Или есть уже готовые решения?
Что посоветуете, куда смотреть?
в конфе по файрберду на ibase.ru года два назад было перечисленно три
схенмы репликации (одна из них встроенна в ibexpert.com) и резюмированно
что выбор и допилка сильно зависят от задачи.
а про interbase я и забыл ;)
посмотрю, что у них есть
Простой такой вопрос - что делать у идентификаторами записей в таблицах?
:-)
делать их уникальными, т.е. привязанными к каждому филиальскому серверу.
ну, раздать например всем номера
В любом случае спасибо за свежую мысль!!!!
--
У каждого в башке свои тараканы...
_______________________________________________
smoke-room mailing list
[email protected]
https://lists.altlinux.ru/mailman/listinfo/smoke-room