-
ScientificLinux 6.3 (x86_64)
-
MySQL 5.5.x (InnoDBデータベース)
-
Database
- MYCONF: /etc/my.cnf
- DATADIR: /var/lib/mysql
- DBNAME: sample_db
-
XtraBackup実行ユーザー権限:
- RELOAD
- LOCK TABLES
- REPLICATION CLIENT
以下のgistからPerconaリポジトリの追加スクリプトを取得して実行
percona.repo.sh
以下のコマンドでXtraBackupをインストールする
sudo su -
yum --enablerepo=percona install percona-xtrabackup
-
実行コマンド
which innobackupex
# first, prepare backup base.
sudo su -
/usr/bin/innobackupex \
--defaults-file=/etc/my.cnf \
--user=USER \
--password=PASSWORD \
--use-memory=${use_memory} \
/path/to/BACKUP-DIR
# secondary, run with --apply-log option for full backup.
/usr/bin/innobackupex \
--defaults-file=/etc/my.cnf \
--user=USER \
--password=PASSWORD \
--apply-log \
--use-memory=${use_memory} \
/path/to/BACKUP-DIR
- 実行コマンド
which innobackupex
sudo su -
/usr/bin/innobackupex \
--defaults-file=/etc/my.cnf \
--user=USER \
--password=PASSWORD \
--apply-log \
--use-memory=${use_memory} \
--slave-info \
--safe-slave-backup \
/path/to/BACKUP-DIR
※初回はフルバックアップしておく必要あり
※初回のフルバックアップ後は、差分のみインクリメンタルバックアップが可能
- 実行コマンド
sudo su -
/usr/bin/innobackupex --incremental /data/backups --incremental-basedir=BASEDIR
※Database、またはテーブル単位でのバックアップが可能
- 実行コマンド
sudo su -
/usr/bin/innobackupex --databases="mydatabase.mytable mysql" /path/to/BACKUP-DIR
sudo su -
echo "mydatabase.mytable" > /tmp/tables.txt
/usr/bin/innobackupex --tables-file=/tmp/tables.txt /path/to/BACKUP-DIR
※バックアップをストリーム(STDOUT)に流すことが可能
- 実行コマンド
# xbstream
sudo su -
/usr/bin/innobackupex \
--compress \
--stream=xbstream \
/root/backup/ | ssh user@otherhost "xbstream -x -C /root/backup/"
# tar
sudo su -
/usr/bin/innobackupex --stream=tar ./ | ssh user@destination \ "cat - > /data/backups/backup.tar"
※リモートサーバーに直接バックアップすることが可能 (内部でscpを実行)
- 実行コマンド
sudo su -
/usr/bin/innobackupex \
--remote-host=REMOTEUSER@REMOTEHOST \
/path/IN/REMOTE/HOST/to/backup/ \
--tmpdir=/tmp --scpopt="-Cp -c arcfour"
※既にdatadir(例: /var/lib/mysql)が存在している場合エラーになるので、その場合は退避しておくこと
- 実行コマンド
which innobackupex
sudo su -
/usr/bin/innobackupex --copy-backup /path/to/BACKUP-DIR
chown -R mysql:mysql /var/lib/mysql
Have fun.
-- Masayuki IINO <[email protected]>