Russian Articles

Особенности репликации и бэкапов в MySQL

Есть такая чудесная и широко известная утилита для снятия бэкапов с MySQL - Percona XtraBackup. Снять бэкап с запущенного сервера с её помощью довольно просто:

BACKUP_NAME='dump'
innobackupex --rsync --no-timestamp $BACKUP_NAME
innobackupex --rsync --no-timestamp --apply-log $BACKUP_NAME
tar --use-compress-program=pigz -cpf $BACKUP_NAME.tar.gz $BACKUP_NAME
rm -r $BACKUP_NAME

Первая команда создает неповрежденную копию файлов, вторая – записывает нужную позицию в логфайле.

Статьи по развертыванию реплики MySQL-сервера по большей части делятся на две категории: 1. Остановите сервер и просто скопируйте файлы. Если есть такая возможность – делайте так. Но обычно её нет. 2. Останавливать ничего не надо, используем innobackupex.

Одна очень важная деталь

Для того, чтобы ежедневные (а то и ежечасные) бэкапы не блокировали таблицы на мастере, для создания бэкапов лучше всего использовать отдельную реплику. Однако такие бэкапы могут оказаться невалидны для создания другой реплики. И даже если реплику остановить и снять “холодный” дамп. Для создания реплики всегда нужно использовать дамп, созданный с мастера.

created: 2018-05-16 (Wed) updated: 2019-02-21 (Thu) views: 77

Contributors

orsinium