MySQL のバックアップとリストア・リカバリを行う方法として、パッケージ付属の mysqldump および mysqlbinlog の使い方(コマンドライン)を整理しておきます。
なお、この記事は、過去記事『MySQL 5.5.9 のバックアップ/リカバリ』を元に加筆・修正して、コンパクトにまとめたものです。
また、ここでは下記を前提としています。
- MySQLのバージョン・・・5.5
- mysql管理者rootのパスワード・・・無し
- 対象データベース・・・wordpress
- mysqldump以降のバイナリログファイル・・・mysql-bin.000111, mysql-bin.000112
1.バックアップ
全データベースをバックアップする。
[root ~]# mysqldump -u root -pxxxxxxxx --single-transaction --flush-logs --all-databases > mysqldump_`date +%Y%m%d%H%M`.sql
2.リストア・リカバリ
全データベースのリストアする。
[root ~]# mysql -u root -pxxxxxxxx < mysqldump_201201101616.sql
※特定のデータベースをリストアする場合は...
[root ~]# mysql -u root -pxxxxxxxx リストアしたいデータベース名 < mysqldump_201201101616.sql
上記リストアの後に、バイナリログによるロールフォワードを行う。
[root ~]# mysqlbinlog -u root -pxxxxxxxx --disable-log-bin mysql-bin.000111 mysql-bin.000112 | mysql
※mysqlbinlog のパラメータ説明
--disable-log-bin:バイナリロギングを無効化する