@vlarkanov

Как сделать консистентный дамп базы InnoDB + MyISAM?

Нужно сделать дамп базы для копирования ее на другой сервер (где уже крутятся другие базы - это важно, т.к. из-за этого я не могу использовать xtrabackup) и репликации Master-Slave с текущего сервера.

В базе большинство таблиц на InnoDB и две на MyISAM, база около 6Гб. Дамп нужно снять, не останавливая работу использующего базу приложения. Годится ли в данном случае

mysqldump --single-transaction --master-data=2 DATABASE > database.sql


или в этом случае возможна неконсистентность данных в MyISAM таблицах? Как ее избежать?
  • Вопрос задан
  • 309 просмотров
Решения вопроса 1
что бы точно был консистентный лучше делать как-то так.
mysqldump --flush-privileges --flush-logs --triggers --routines --events --hex-blob --extended-insert --complete-insert --no-autocommit --lock-all-tables --master-data=2 DATABASE > database.sql

--single-transaction - не влияет на myisam. и в нее можно будет писать во время дампа.

Такой дам лучше делать с выделенного слейва. Который будет полностью залочен на время дампа. Ну или даже с паузой на репликации. На вашем месте я бы сделал с помощью xtrabackup такой бекап слейв. И у же с него делал дамп только нужных баз.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы