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

Как синхронизировать несколько БД

Добавлено: 16.07.2013 12:01
Diman Y.
Привет Всем!
Вот добрался я до работы с БД, и возник вопрос.
Нужно решение вопроса в общем виде. Т.е. метод.

Есть несколько локальных БД (предположим на нотбуках). Все базы имеют одинаковую структуру. Эти базы соединины с сервером (но не постоянно, и соединяютя иногда, например раз в сутки), на котором есть глобальная база, которая имеет точно такую-же структуру и ее задача собирать данные с других БД. Структура таблиц везде одинакова.
Вопрос в том, как синхронизировать глобальную базу с локальными? Еще. Если данные синхронизированны, больше синхронизировать не надо.

Нужен метод, так как базы очень разные, и готовая тулза не подойдет, так как соединять придется руками.

В голову приходит пока один метод и две его реализации. Сделать для всех данных поле Sync, либо в виде обычного bool и тогда просто менять значение этого поля, либо в виде DateTime и записывать время сеанса синхронизации.
Как я вижу, основным недостатком будет то, что при этом придется записывать в базу, а на это надо время. Неужели по другому никак не решить проблему? :)

Спасибо!

Re: Как синхронизировать несколько БД

Добавлено: 16.07.2013 12:18
Diman Y.
Пришла еще вот какая идея.
Создать в локальной базе таблицу, в которой записывать сеансы синхронизации. Т.е. что было записано и когда. Причем когда не по времени, а по порядковому номеру данных в таблицах. :)
Наверное так и сделаю...
Или есть еще варианты?

Re: Как синхронизировать несколько БД

Добавлено: 16.07.2013 16:12
Джимми
посмотри например Microsoft Sync Framework

Re: Как синхронизировать несколько БД

Добавлено: 16.07.2013 16:56
Diman Y.
Джимми писал(а):посмотри например Microsoft Sync Framework
Спасибо. Посмотрел.
Это все-же не то. Это уже готовое решение, к тому-же оно для двухсторонней передачи. А нужен именно метод.

Re: Как синхронизировать несколько БД

Добавлено: 07.11.2014 04:20
Гость
Посмотри redgate data compare: есть готовый продукт, с UI, позволяющий вручную синхронизировать, а также возможность использовать их dlls программно.