Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
22 lines (15 sloc) 2.1 KB

Особенности репликации и бэкапов в 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.

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

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

You can’t perform that action at this time.