Мне нужно еженедельно синхронизировать большую (3 ГБ + / 40 + таблицы) локальную базу данных MySQL с базой данных сервера. Две базы данных точно такие же. Локальная БД постоянно обновляется, и каждую неделю или около того серверная БД должна обновляться локальными данными. Вы можете назвать это «зеркальным DB» или «master / master», но я не уверен, что это правильно.
Прямо сейчас БД существует только локально. Так:
1) Сначала мне нужно скопировать БД с локального на сервер. С PHPMyAdmin экспорт / импорт невозможно из-за размера DB и ограничений PHPMyAdmin. Экспорт DB в gzip-файл и загрузка его через FTP, вероятно, будет разрываться в середине передачи из-за подключения к серверным проблемам или из-за ограничения размера файла сервера. Экспорт каждой таблицы отдельно будет больно, и размер каждой таблицы также будет очень большим. Итак, какое лучшее решение для этого?
2) После того, как локальная БД полностью загружена на сервер, мне нужно еженедельно обновлять серверную БД. Какой лучший способ сделать это?
Я никогда не работал с таким сценарием, я не знаю различных способов достижения этого, и я не очень силен с SQL, поэтому, пожалуйста, объясните, насколько это возможно.
Большое спасибо.
Эта статья должна помочь вам начать работу.
В принципе, получите Maatkit и используйте инструменты синхронизации для выполнения мастер-мастер-синхронизации:
mk-table-sync --synctomaster h=serverName,D=databaseName,t=tableName
Вы можете использовать DataComparer для mysql. Настройте синхронизацию шаблонов, которые определяют данные, которые должны синхронизировать таблицы. Запланируйте еженедельное обновление шаблона. У меня два сервера ежедневно синхронизируются с dbForge Data Comparer через командную строку.