Есть база данных размером 500ГБ. Таблицы в базе данных A содержат таблицы MyISAM и INNODB. Таблицы MyISAM являются основными таблицами, а таблицы Innodb - основными таблицами транзакций.
Резервное копирование и восстановление с использованием дампа MySQL занимает много времени или дней.
- max_allowed_packet = 1G
- foreign_key_checks = 0
- auto_commit = off
Ответы:
Но ссылка также рекомендует XtraBackup от Percona, который работает быстрее, не блокирует таблицы, которые уже используются, и не тратит время на восстановление. Для 500 ГБ данных я предпочитаю, чтобы Percona XtraBackup был быстрым и эффективным, если только вы не хотите преобразовывать их в модель innodb_file_per_table, если она не была на существующем сервере БД. Ниже ссылка объясняет, как действовать.
http://www.percona.com/doc/percona-xtrabackup/innobackupex/creating_a_backup_ibk.html
источник
Проверьте мой дампер. Это намного быстрее, чем mysqldump: новая версия mydumper 0.6.1 предлагает производительность и удобство использования
Вы можете скачать здесь: https://github.com/maxbube/mydumper
источник
Я думаю, что вопрос в том, как быстрее восстановить файлы из дампов mysqldump, а не в другом решении для резервного копирования.
Один из способов сделать это - создать группы таблиц в своей схеме и создать отдельного пользователя БД для каждой группы и использовать разрешения MySQL, чтобы запретить вставку таблиц для использования всего, кроме одного пользователя БД.
Это проверенная, быстрая, почти параллельная техника, но не на 100% уверенная, сколько времени потребуется для восстановления от 500G. Но имхо, тебе нужно что-то параллельное. Смотрите ссылку ниже для примера.
Быстрое параллельное восстановление из дампов SQL (mysqldump) для MySQL
источник
Попробуйте следующее с innobackupex:
Вы можете изменить номер параллельного процесса, как вам нравится. Поскольку вы упомянули, что у вас есть таблицы myisam, параметр rsync поможет ускорить их резервное копирование.
источник