Documentation Home
MySQL Enterprise Backup ユーザーズガイド (バージョン 3.11)
Download this Manual
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb
HTML Download (TGZ) - 164.6Kb
HTML Download (Zip) - 190.9Kb


第 5 章 mysqlbackup コマンドリファレンス

mysqlbackup コマンドは、あらゆるバックアップおよびリストア操作のための使いやすいツールです。バックアップ操作時に、mysqlbackup は次をバックアップします。

  • 次を含むすべての InnoDB テーブルおよびインデックス。

    • InnoDB システムテーブルスペース。これにはデフォルトですべての InnoDB テーブルが含まれます。

    • InnoDB file-per-table 設定で生成された個別のデータファイル。それぞれ、1 つのテーブルとそれに関連付けられたインデックスが含まれます。各データファイルは、元の Antelope または新しい Barracuda ファイル形式のいずれかを使用できます。

  • すべての MyISAM テーブルおよびインデックス。

  • ほかのストレージエンジンによって管理されるテーブル。

  • 各テーブルの構造を記録する .frm ファイルなどの MySQL データディレクトリの下にあるその他のファイル。

バックアップの作成に加えて、mysqlbackup はバックアップデータをパックおよびアンパックし、バックアップ操作時に発生した InnoDB テーブルの変更をバックアップデータに適用して、データ、インデックス、およびログファイルを元の場所にリストアすることができます。

mysqlbackup を起動するサンプルコマンド行引数:

# Information about data files can be retrieved through the database connection.
# Specify connection options on the command line.
mysqlbackup --user=dba --password --port=3306 \
  --with-timestamp --backup-dir=/export/backups \
  backup

# Or we can include the above options in the configuration file
# under [mysqlbackup], and just specify the configuration file
# and the 'backup' operation.
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf backup

# Or we can specify the configuration file as above, but
# override some of those options on the command line.
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf \
  --compress --user=backupadmin --password --port=18080 \
  backup

指定した --user--password は MySQL サーバーに接続するために使用されます。この MySQL ユーザーには、セクション3.1.2「MySQL の権限をバックアップ管理者に与える」で説明するように、MySQL サーバーでの特定の権限が必要です。

--with-timestamp オプションは、上で指定したディレクトリの下に作成されるサブディレクトリにバックアップを配置します。バックアップサブディレクトリの名前は、バックアップが実行された日付と時間から形成されます。

ほかのコマンド行オプションの意味については、セクション5.1「mysqlbackup コマンド行オプション」を参照してください。構成パラメータについては、セクション5.2「構成ファイルとパラメータ」を参照してください。

mysqlbackup を実行するユーザーまたは cron ジョブが、MySQL データベースディレクトリからバックアップディレクトリへファイルをコピーする権限を持つことを確認してください。

バックアップが実行中の間、コマンドがサーバーへの接続を開いたまま維持できるように、接続タイムアウトの長さが十分であることを確認してください。mysqlbackup は、接続を有効なまま維持するために、各データベースのコピー後にサーバーを ping します。

重要
  • mysqlbackup コマンドはデータベースの使用を妨げることなく、InnoDB テーブルをバックアップしますが、InnoDB 以外のファイル (MyISAM テーブルや .frm ファイルなど) をコピーする最終段階では、ステートメント FLUSH TABLES WITH READ LOCK を使用して、一時的にデータベースを読み取り専用状態にします。バックアップパフォーマンスを最高にし、データベース処理への影響を最小にするために:

    1. バックアップの実行時に長い SELECT クエリーやその他の SQL ステートメントを実行しないでください。

    2. MyISAM テーブルを比較的小さく維持し、おもに読み取り専用または読み取りが大半の作業用にします。

    これにより、mysqlbackup 実行の最後のロックフェーズが短くなる (おそらく数秒) ため、mysqld の通常の処理をあまり妨げません。データベースアプリケーションで先述の条件が満たされない場合は、--only-innodb オプションを使用して、InnoDB テーブルのみをバックアップするか、または --no-locking オプションを使用して、InnoDB 以外のファイルをバックアップします。--no-locking 設定でコピーされる MyISAM、.frm、およびその他のファイルがバックアップの最終フェーズで更新されない場合、それらの整合性を保証できないことに注意してください。

  • 大きなデータベースの場合、バックアップの実行に長時間かかることがあります。mysqlbackup コマンドが終了コード 0 を返していることを確認するか、または mysqlbackup がテキスト mysqlbackup completed OK! を出力していることを観察して、常に mysqlbackup が正常に完了していることをチェックしてください。

  • mysqlbackup コマンドは、以前の MySQL 6.0 ソースツリーの MySQL Backup オープンソースプロジェクトとは異なります。MySQL Enterprise Backup プロジェクトは MySQL Backup イニシアチブに代わりました。

  • テーブルに関する DDL 操作が実行中でない期間に、バックアップをスケジュールしてください。DDL 操作と同時のバックアップに対する制約については、セクションA.1「MySQL Enterprise Backup の制限」を参照してください。