Назад | Перейти на главную страницу

Полная стратегия MySQL BAckup

Вот наши настройки MySQL:

3 сервера MySQL в «кольце репликации»: все они являются ведущими, а S1 является подчиненным для S2, который является подчиненным для S3, который является подчиненным для S4.

До сих пор мы делали снимки машин, но это больше не то, что мы можем / хотим делать. Мы пытаемся получить полную резервную копию баз данных на S3.

Моя идея заключалась в том, что нам нужно сделать mysqldump каждые несколько часов, а затем загружать его в S3. Проблема в том, что дамп довольно дорого обходится, если у вас более нескольких сотен МБ данных (у нас 8 ГБ).

Можно сохранить двоичные журналы, но тогда восстановление может занять несколько дней, так как нам нужно применить все двоичные журналы: /

Какое-нибудь отличное решение для нас?

Вы действительно можете использовать для этого репликацию. На ум приходят два варианта.

  1. Используйте MySQL "стиль" Репликация с задержкой по времени (т.е. вставьте четвертую машину и дайте ей выполнить непрерывное восстановление).
  2. Вы также можете добавить четвертую машину в качестве горячего резерва, ежедневно отключать ее, а затем либо создавать резервную копию в обычном режиме, либо делать снимки (например, с помощью ZSF в Solaris или LVM в Linux). Наконец верните его в репликацию и позвольте ему догнать основные серверы.

Не знаю, круто ли это, но мы вполне довольны CDP от R1Soft для MySQL. Вы можете взглянуть на это: http://wiki.r1soft.com/pages/viewpage.action?pageId=4460570

Он создаст резервные копии в любой локальный каталог / точку монтирования. Итак, используя Субоблако или s3fs вы можете напрямую делать резервную копию на S3.

А как насчет репликации MySQL? http://dev.mysql.com/doc/refman/5.0/en/replication.html

Какой механизм хранения использует ваше приложение?

Если это InnoDB, вы можете использовать xtrabackup для полного резервного копирования каждый день и инкрементного резервного копирования каждые несколько часов.