Страница 1 из 1

Вопрос о синхронизации

Добавлено: 23 Май 2010, 22:58
muskin
Clarion 6.0(ABC)

Всем привет.

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

Можно ли реализовать эту процедуру?
Извините за сумбурность описания проблемы.

Re: Вопрос о синхронизации

Добавлено: 24 Май 2010, 8:49
vd-vuf
Все зависит от того как постороена бд.
Без особых проблем можно:
Если бд изначально задумана для таких манипуляций,
если нет пересечений в записях: одну и туже информацию НЕ правят на обоих компах, значения уникальных полей уникальны для всей бд (1я бд + 2я бд).

Можно если перепроектировать бд с учетом задачи синхронизации.

Re: Вопрос о синхронизации

Добавлено: 24 Май 2010, 9:01
Игорь Столяров
Привет !

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

1. Каждая запись в БД должна иметь уникальный код, на практике используют GUID.
2. При "выгрузке на флешку" делается полная копия БД в файл, в котором указывается номер файла в БД, код записи в этом файле и ее содержание (например в BLOB).
3. При востановлении данных (синхронизации) проверяем наличие записи с кодом в файле с указанным номером. При ее отсутвии - добавляем.

В общем-то и все. На практике конечно будут мелкие ньюансы. Например, не должно быть других уникальных ключей, кроме как с использованием кода записи, иначе могут возникнуть ошибки при дублирования ключа при восстанвлении. Или эту проблему нужно как-то разруливать, не забывая о связях по ключу с другими списками БД.
Что делать если при восстановлении запись в БД есть, но она была изменена ? Что делать если при восстановлении записи нет, но она была раньше и была удалена ?
И т.д. и т.п. - но это уже рабочие вопросы ... ;)

Re: Вопрос о синхронизации

Добавлено: 26 Май 2010, 20:24
muskin
Здравствуйте.
Все записи уникальны. Процесс синхронизации потенциально для себя решил сразу (с помощью ADD в прямом и обратном порядке).
Вопрос задал неправильно - я имел ввиду, как открывать с компа базы на флэшке, путь к которым может быть разным и учитывая, что Буква диска у флэшки может быть тоже разная на разных компах.
Считал, что указание пути файла в NAME (DOS filename specification (PROP:NAME)) в описании файла должно быть строгим(наприимер, C:\BAZA\BAZA.TPS). Оказывается это не так.
Задачу для себя решил очень просто.
Спасибо всем за советы и рекомендации.