XtraBackupというかinnobackupexでフルバックアップは分かるんだけど、テーブル指定する方法をよく忘れるのでメモ。
参考:Percona XtraBackupの基本的な使い方 | 外道父の匠
バックアップ
# innobackupex --user=$USER --password=$PASSWORD --tables-file=/path/to/tables.file /path/to/backup
--tables-file
オプションで指定するファイルの内容はこんな感じ。
database_name.table_name_0
database_name.table_name_1
database_name.table_name_2
バックアップが完了すると/path/to/backup
内にyyyy-mm-dd_hh-mi-ss
みたいなディレクトリができる。
(Optional)転送
バックアップ取得ホストとリストア先が違う場合はこんな感じで転送すればよいと思います。
- 踏み台ホストを経由して転送する例:
tar zcv yyyy-mm-dd_hh-mi-ss | ssh $REMOTE_HOST_A -A "ssh $REMOTE_HOST_B -l$REMOTE_USER -A 'tar xvf - -C /path/to/work_dir'"
リストア
# /etc/init.d/mysqld stop
# rm -rf /var/lib/mysql/*
フルバックアップと違ってバックアップディレクトリにmy.cnf
が含まれないので、--defaults-file
の指定が必須、たぶん。
# innobackupex --defaults-file=/etc/my.cnf --user=$USER --password=$PASSWORD --apply-log -export /path/to/backup/yyyy-mm-dd_hh-mi-ss
# innobackupex --defaults-file=/etc/my.cnf --user=$USER --password=$PASSWORD --copy-back /path/to/backup/yyyy-mm-dd_hh-mi-ss
# chown -R mysql:mysql /var/lib/mysql
# mysql_install_db --user=mysql
# mysql_secure_installation