Лучшие практики для резервного копирования сервера MySQL:
MySQL Replication
Настройка репликации в MySQL. Вам нужно будет настроить главный и подчиненный сервер. Все операции чтения-записи в БД могут идти на ваш подчиненный сервер. Преимущество репликации состоит в том, что вы можете создавать резервную копию со своего подчиненного сервера, не прерывая работу главного сервера. Ваше приложение будет продолжать работать на главном сервере без каких-либо простоев.
Использование MySQL Dump
Если ваш набор данных небольшой (я понимаю, что «маленький» - это относительный термин… для его определения, скажем, <10 ГБ), то mysqldump, вероятно, будет отлично работать. Это легко, это онлайн и очень гибко. Myqldump может сделать всего несколько вещей: сделать резервную копию всего или только определенных баз данных или таблиц, сделать резервную копию только DDL, оптимизировать дамп для более быстрого восстановления, сделать полученный файл sql более совместимым с другими RDBMS и многими другими.
Однако наиболее важные параметры связаны с целостностью вашей резервной копии. Мои любимые опции: --single -action: эта опция дает непротиворечивую резервную копию, если (и только если) таблицы используют механизм хранения InnoDB. Если у вас есть таблицы MyISAM, не предназначенные только для чтения, не используйте эту опцию при резервном копировании. --master-data = 2: эта опция обеспечит согласованность вашего дампа (выполняя блокировку всех таблиц, если вы не добавили опцию --single -action). Опция --master-data также записывает двоичную позицию журнала в результирующем файле дампа (= 2 заставляет эту строку быть комментарием в файле дампа)
Последнее замечание о mysqldump: имейте в виду, что время восстановления может быть значительно больше времени резервного копирования. Это будет зависеть от нескольких факторов, например, от того, сколько у вас индексов.
Снимок LVM
Для тех, у кого большие наборы данных, лучше всего использовать физическое резервное копирование. Хотя вы можете сделать холодное резервное копирование (т. Е. Закрыть службу MySQL, скопировать каталог данных, перезапустить службу), многие люди не хотят простоев. Мое любимое решение - снимки. Это может быть горячим (для InnoDB) или требовать краткой блокировки (для MyISAM). Не забудьте включить все ваши данные (включая ib_logfiles). Lenz предоставляет полезную утилиту, чтобы помочь с этим: http://www.lenzg.net/mylvmbackup/
Использование MySQL Enterprise Backup
Преимущества использования MySQL Enterprise Backup:
- «Горячее» резервное копирование таблиц InnoDB происходит полностью онлайн, без блокировки Резервное копирование только определенных таблиц или табличных пространств
- Создавайте резервные копии только тех данных, которые были изменены с момента предыдущего
- Сжатое резервное копирование - экономит до 90% памяти и многое другое.
Ссылка:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
--single-transaction
но не забудьте добавить,--events --routines
и я всегда использую--triggers
тоже, хотя он включен по умолчанию, так как он может быть отключен в my.cnf. Я бы сказал, что в большинстве случаев полезно использовать их как стандартную практику, независимо от того, есть ли у вас в базе данных объекты такого типа или нет.