オンラインバックアップ

コマンド

MYSQLDUMP を使用する.
内容は SQL として保存されるので,パイプして gzip をかけると良いかも.

オプション

  • user=実行ユーザ
  • password=実行ユーザのパスワード
  • all-databases:InnoDB で一貫性のあるバックアップをする
  • single-transaction:全データベースのバックアップをする
  • master-data=2:バイナリログとポジションをSQLコメントとして書く.
    • single-transaction と組み合わせることで一貫性のあるバックアップができる
  • flush-logs:バイナリログをフラッシュして,ログローテーションをする
  • delete-master-logs:バックアップ後,不要になったバイナリログを削除する
  • default-character-set=utf8(無指定の場合もUTF-8

$ mysqldump --user=hoge --password=hogehoge
 --all-databases --single-transaction --master-data=2
 -flush-logs --delete-master-logs | gzip > /tmp/backup.dump.gz

※実際は1行で