Xtrabackup - резервное копирование mysql
Применимость: Linux
Слова для поиска: бэкап, резервирование
Задача:
Нужно регулярно создавать резервные копии баз данных большого размера и при этом недопустима блокировка базы данных.
Решение:
Есть немало неплохих вариантов решения этой задачи, но с ними могут быть различные трудности, например:
- Некорректная работа с таблицами InnoDB
- Неприемлемое время блокировки базы данных
- Сложные требования
- Высокая стоимость
На текущий момент лучшим решением задачи является XtraBackup — это утилита от Percona Labs, предназначенная для горячих бекапов таблиц InnoDB и XtraDB.
Установка
Centos/RHEL:
Установим и откорректируем репозиторий:
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
Измените enabled = 1 на enabled = 0 чтобы это репозиторий ничего не поломал при обновлении системы.
Измените enabled = 1 на enabled = 0 в файле /etc/yum.repos.d/Percona.repo
# Name: Percona RPM Repository # URL: http://www.percona.com/percona-lab.html [percona] name = CentOS $releasever - Percona baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/ enabled = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona gpgcheck = 1
Установите пакеты:
yum --enablerepo=percona install percona-xtrabackup percona-toolkit
Debian/Ubuntu
apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
Add this to /etc/apt/sources.list, replacing VERSION with the name of your distribution: Добавьте следующие строки /etc/apt/sources.list, заменив VERSION именем вашего дистрибутива (lsb_release -c):
deb http://repo.percona.com/apt VERSION main deb-src http://repo.percona.com/apt VERSION main
apt-get update && apt-get -y install percona-toolkit percona-xtrabackup netcat-openbsd
Установите скрипты:
mkdir /etc/backup
wget http://www.colobridge.net/wiki/files/innobackupex-restore.sh \ -O /etc/backup/innobackupex-restore.sh wget http://www.colobridge.net/wiki/files/run-innobackupex.sh \ -O /etc/backup/run-innobackupex.sh
Может быть кому пригодятся скрипты
wget http://www.colobridge.net/wiki/files/innobackupex-runner.sh \ -O /etc/backup/innobackupex-runner.sh wget http://www.colobridge.net/wiki/files/xtrabackup.sh \ -O /etc/backup/xtrabackup.sh
chmod +x /etc/backup/*
Если требуется, настройте параметры в скриптах.
Резервное копирование
Для запуска используйте опции
опции
/innobackupex-runner.sh -h Usage: innobackupex-runner.sh [-d backdir] [-f config] [-g group] [-u username] [-p password] [-H host] [-P port] [-S socket] -d Directory used to store database backup -f Path to my.cnf database config file -g Group to read from the config file -u Username used when connecting to the database -p Password used when connecting to the database -H Host used when connecting to the database -P Port number used when connecting to the database -S Socket used when connecting to the database -h Display basic help
пример
/etc/backup/innobackupex-runner.sh -d /mnt/backup/ -f /etc/my.cnf -ubuser -pSECRET innobackupex-runner.sh: MySQL backup script started: Fri Nov 15 15:28:35 CET 2013 Running new full backup. Databases backed up successfully to: /mnt/backup/full/2013-11-15_15-28-35 Cleanup. Keeping only 1 full backups and its incrementals. completed: Fri Nov 15 15:29:30 CET 2013
Смотрите также:
Актуальность: 2013/11/15 13:58