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には存在します。公式ドキュメントをよく読んで、