Задать вопрос
@vlarkanov

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

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

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

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


или в этом случае возможна неконсистентность данных в MyISAM таблицах? Как ее избежать?
  • Вопрос задан
  • 329 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 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 такой бекап слейв. И у же с него делал дамп только нужных баз.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы