создать патч данных для базы данных (синхронизировать базы данных) - PullRequest
2 голосов
/ 24 сентября 2010

Есть 2 базы данных: «временная» и «производственная». Каждую ночную производственную базу данных следует «синхронизировать», поэтому она будет иметь те же данные, что и в «temp». Размер базы данных составляет несколько ГБ, и просто скопировать все данные не вариант. Но изменения обычно довольно малы: ~ 100 строк добавлено, ~ 1000 строк обновлено, а некоторые удалены. Около 5-50Mb в день.

Я подумал, что, может быть, есть какой-то инструмент (желательно бесплатный), который может пройти через обе базы данных и создать патч, который можно применить к «рабочей базе данных». Или, как вариант, просто «синхронизировать» обе базы данных. И это должно быть довольно быстро. Другими словами, что-то вроде rsync для данных в базах данных. Если есть какое-то решение для конкретной базы данных (mysql, h2, db2 и т. Д.), Это тоже подойдет.

PS: структура гарантированно будет одинаковой, поэтому этот вопрос касается только передачи данных

Ответы [ 2 ]

1 голос
/ 04 октября 2010

Наконец-то я нашел способ сделать это в Kettle (PDI): http://wiki.pentaho.com/display/EAI/Synchronize+after+merge

Единственный недостаток: мне нужно создать такое преобразование для каждой таблицы отдельно.

0 голосов
/ 24 сентября 2010

Почему бы не настроить репликацию базы данных из временной базы данных в вашу производственную базу данных, где временная база данных будет выступать в качестве главной, а производственная - в качестве подчиненной. Вот ссылка для настройки репликации в MySql. MSSQL также поддерживает репликацию базы данных. Google должен показать много учебников.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...