Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

XTRABACKUP_FAIL Linux / DevOps

Горячее резервное копирование MySQL с Percona XtraBackup: Full и Incremental бэкапы

Обновлено: 21.08.2026
  • Необходимость создания согласованного бэкапа терабайтных баз данных без перевода в Read-Only.
  • Утилита mysqldump вызывает всплески Load Average и длительные блокировки метаданных.
  • Ошибки нехватки дискового пространства или рассинхронизации LSN при инкрементальном копировании.

1. Установка Percona XtraBackup

# Debian / Ubuntu
apt-get install -y percona-xtrabackup-80

# RHEL / Rocky Linux
dnf install -y percona-xtrabackup-80

2. Создание полного бэкапа (Full Backup)

xtrabackup --backup --user=backup_user --password='StrongPassword' \
  --target-dir=/data/backups/base_backup --parallel=4 --compress --compress-threads=4

3. Создание инкрементального бэкапа (Incremental)

xtrabackup --backup --user=backup_user --password='StrongPassword' \
  --target-dir=/data/backups/inc_1 \
  --incremental-basedir=/data/backups/base_backup --parallel=4

4. Подготовка бэкапа к восстановлению (Prepare phase)

# Распаковка (если использовался --compress)
xtrabackup --decompress --target-dir=/data/backups/base_backup

# Подготовка базового бэкапа с незавершенным состоянием транзакций
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base_backup

# Накатывание инкремента
xtrabackup --prepare --target-dir=/data/backups/base_backup \
  --incremental-dir=/data/backups/inc_1

5. Восстановление данных в директорию MySQL

systemctl stop mysqld
rm -rf /var/lib/mysql/*
xtrabackup --copy-back --target-dir=/data/backups/base_backup
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
💡 Практика специалистов: Для ускорения процессов backup и prepare на серверах с NVMe-накопителями всегда задействуйте параметр --use-memory=4G и параллельные потоки --parallel=N по числу доступных ядер CPU.

Частые вопросы (FAQ)

Зачем нужен флаг --apply-log-only на промежуточных этапах подготовки?

Он указывает не откатывать незавершенные транзакции (rollback), так как они могут быть зафиксированы или дополнены в следующем инкрементальном бэкапе. Без этого флага цепочка инкрементов сломается.

Блокирует ли XtraBackup операции записи во время работы?

Таблицы InnoDB копируются полностью без блокировок. Кратковременная глобальная блокировка на запись (FLUSH TABLES WITH READ LOCK) может активироваться только в самом конце для фиксации таблиц MyISAM и метаданных binlog.

Полезные материалы
Рекомендуем