2010-10-14 2 views
6

Мне нужно каждую неделю синхронизировать большую (3GB +/40 + таблицы) локальную базу данных MySQL с базой данных сервера. Две базы данных точно такие же. Локальная БД постоянно обновляется, и каждую неделю или около того серверная БД должна обновляться локальными данными. Вы можете назвать это «зеркальным DB» или «master/master», но я не уверен, что это правильно.Синхронизация большой локальной базы данных с сервером DB (MySQL)

В настоящее время БД существует только локально. Итак:

1) Сначала мне нужно скопировать БД с локального на сервер. С PHPMyAdmin экспорт/импорт невозможно из-за размера DB и ограничений PHPMyAdmin. Экспорт DB в gzip-файл и загрузка его через FTP, вероятно, будет разрываться в середине передачи из-за подключения к серверным проблемам или из-за ограничения размера файла сервера. Экспорт каждой таблицы отдельно будет больно, и размер каждой таблицы также будет очень большим. Итак, какое лучшее решение для этого?

2) После того, как локальная БД полностью загружена на сервер, мне нужно еженедельно обновлять серверную БД. Какой лучший способ сделать это?

Я никогда не работал с таким сценарием, я не знаю различных способов достижения этого, и я не очень силен SQL, поэтому, пожалуйста, объясните, насколько это возможно.

спасибо.

ответ

3

This article должно начаться.

В принципе, получить Maatkit и использовать инструменты синхронизации там, чтобы выполнить мастер-мастер-синхронизации:

mk-table-sync --synctomaster h=serverName,D=databaseName,t=tableName 
2

Вы можете использовать DataComparer для MySQL. Настройте синхронизацию шаблонов, которые определяют данные, которые должны синхронизировать таблицы. Запланируйте еженедельное обновление шаблона. У меня есть 2 сервера ежедневно синхронизированы с dbForge Data Comparer через командную строку.

Смежные вопросы