■mysqldumpによるバックアップ
【特徴】
・オンラインでバックアップ可能
・データベース領域全体やテーブル・データベースの部分単位でバックアップ可能
・SQL文がそのまま記述されている(SQL文を順に実行することでリストアを行う)
【コマンド】
mysqldump [options] db_name [tables]
mysqldump [options] --databases db_name1 [db_name2 db_name3...]
mysqldump [options] --all-databases
*引用:7.11. mysqldump — データベースバックアッププログラム
【オプション】
--single-transaction | ダンプする前にBEGIN SQLステートメントを発行(トランザクションの開始)、InnoDBのようなトランザクションテーブルのみ有効 |
-master-data[=value] | デフォルトは[=2] CHANGE MASTER TO 文がコメントアウトされる |
--flush-logs | バックアップ開始時にバイナリログのスイッチを行う |
--all-databases | データベース内のすべてのテーブルをダンプする |
--lock-all-tables | バックアップ中、全データベースをロックする ※MyISAMテーブルのようなトランザクションに対応していないテーブルを適切にバックアップする場合 |
【手順例】
1.データベース領域全体のバックアップ(リストア用)
# mysqldump -p --single-transaction --master-data=2 --flush-logs --all-databases > /backup/mysqldump.sql
2.バイナリログのバックアップ(ロールフォワードリカバリ用)
※mysqldumpでバックアップ取得後、次回完全バックアップまでのバイナリログ(スイッチしたバイナリログから)をバックアップしておく
# cp -p /var/lib/mysql/binary/binary.xxxxxx /backup/.
参考
7.11. mysqldump — データベースバックアッププログラム
現場で使える MySQL (DB Magazine SELECTION)