Percona XtraBackup
一般的にMySQLのバックアップはmysqldumpクライアントを使用するかと思います。mysqldumpは論理バックアップであり、
今回紹介するPXBは、
Percona XtraBackupの動作について
PXBは、
それは、
そして、
そのようにして、
Percona XtraBackupのインストール
今回はLinux
# yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yumレポジトリの追加が完了したら、
# yum install -y percona-xtrabackup-24
xtrabackup
コマンドからバージョンを確認します。
# xtrabackup --version xtrabackup version 2.4.8 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 97330f7)
バックアップを取得する
今回はyumでインストールしたMySQL 5.
それでは、xtrabackup
コマンドを使用してバックアップを取得してみましょう。バックアップを取得にはbackup
オプションを使用します。
今回はUNIXのソケット接続にて、
# xtrabackup \ --backup \ --target-dir=/backup \ --datadir=/var/lib/mysql \ --user=root \ --password=rootpass \ --socket=/var/lib/mysql/mysql.sock
今回設定したオプションについて、
オプション名 | デフォルト | 内容 |
---|---|---|
backup | FALSE | バックアップを作成する |
target-dir | ./ | バックアップファイルの保存先ディレクトリ |
datadir | なし | MySQLのデータディレクトリ |
user | なし | MySQLユーザ名 |
password | なし | MySQLパスワード |
socket | なし | MySQLソケット |
- TCP/
IPを介して接続する場合は、 host, portオプションを使用します。 - 正常終了後は
completed OK!
が出力されます。 target-dir
内にバックアップしたファイルが格納されます。
# ls /backup/ backup-my.cnf ib_buffer_pool ibdata1 mysql mydatabase performance_schema sys xtrabackup_checkpoints xtrabackup_info xtrabackup_logfile
ここで、
parallel
オプション- 複数のデータファイルを同時にコピーするために使用するスレッド数を指定できます。デフォルトは1です。
history
オプションPERCONA_
テーブルを作成してバックアップ履歴を管理します。デフォルトはFALSEです。SCHEMA. xtrabackup_ history slave-info
オプション- スレーブからバックアップを取得する場合は、
このオプションが便利です。マスターのバイナリログの位置を記録した xtrabackup_
ファイルがslave_ info target-dir
に生成され、リストアしてレプリケーションを再構築する時に使用します。デフォルトは FALSEです。
# cat xtrabackup_slave_info CHANGE MASTER TO MASTER_LOG_FILE='binlog.000023', MASTER_LOG_POS=2548;
その他にxtrabackup
コマンドには圧縮、
リストアする
続いて、
リカバリ
まずは、prepare
オプションを使用してリカバリ作業が必要です。これは、
# xtrabackup --prepare --target-dir=/backup
target-dir
オプションにバックアップディレクトリを指定します。- 正常終了後は
completed OK!
が出力されます。
ファイルの配置
その後、copy-back
とmove-back
オプションが存在します。
copy-back
は以前作成したバックアップ内のすべてのファイルをバックアップディレクトリから元の場所にコピーします。move-back
は以前作成したバックアップのすべてのファイルをバックアップディレクトリから元の場所に移動します。バックアップファイルはすべて削除されます。
今回はcopy-back
を使用します。
xtrabackup --copy-back --target-dir=/backup --datadir=/var/lib/mysql
target-dir
オプションにバックアップディレクトリを指定します。datadir
オプションにMySQLのデータディレクトリを指定します。指定したディレクトリは空である必要があります。- 正常終了後は
completed OK!
が出力されます。
最後に、chown
コマンドでデータディレクトリ配下をmysqlユーザに変更します。
# chown -R mysql:mysql /var/lib/mysql
MySQLを起動してリストア完了となります。
Percona XtraBackupのバージョンによる違い
PXBは、
MySQL バージョン | PXB2. | PXB2. | PXB2. | PXB2. | PXB2. |
---|---|---|---|---|---|
5. | ○ | × | × | × | × |
5. | ○ | × | × | × | × |
5. | ○ | ○ | ○ | ○ | × |
5. | ○ | ○ | ○ | ○ | ○ |
5. | ○ | ○ | ○ | ○ | ○ |
5. | × | × | × | × | ○ |
- MySQL5.
0 と 5. 1 + builtin InnoDB はPXB2. 0のみサポートしています。 - MySQL5.
1 + InnoDB plugin は最新のPXB2. 4ではなくPXB2. 3である必要があります。 - MySQL5.
7 は 最新のPXB2. 4のみサポートしています。
PXB2.percona-xtrabackup-24
をpercona-xtrabackup-23
と変更してください。
また、
また、innobackupex
コマンドというxtrabackup
コマンドをラップしたコマンドが用意されていて、
PXB2.xtrabackup
コマンドがinnobackupex
のすべて機能をサポートするようになりました。innobackupex
コマンドは今後廃止される予定です。
まとめ
今回はオンラインでのバックアップ取得ツール Percona XtraBackupについて紹介しました。ここでは紹介しきれない様々オプションがPXBには存在します。公式ドキュメントをよく読んで、