MySQL Enterprise Backup 3.10 以降、2 つのオプション --include-tables
と --exclude-tables
が導入されました。これらは、新しいオプションと互換性がなく、将来のリリースで非推奨になる --include
、--databases
、--databases-list-file
、および --only-innodb-with-frm
の古いオプションを置き換えることを目的としています。参考のため、古いオプションに関する情報をこのセクションの最後の「レガシー部分バックアップオプション」に記載しています。
バックアップまたはリストアする特定のデータを選択するには、このセクションで説明する部分バックアップおよびリストアオプションを使用します。
部分バックアップの概要と部分バックアップの次のオプションに関する使用情報については、セクション3.3.4「部分バックアップの作成」を参照してください。
-
--include-tables
=REGEXP
コマンド行形式 --include-tables=REGEXP
型 文字列 完全修飾名 (
の形式) が正規表現db_name
.table_name
REGEXP
に一致するテーブル (innodb と innodb 以外の両方) のみをバックアップやリストアに含めます。使用される正規表現構文は、POSIX 1003.2 規格に指定された拡張形式です。たとえば、--include-tables=^mydb\.t[12]$
は データベースmydb
内のテーブルt1
とt2
に一致します。Unix のようなシステムでは、適宜、正規表現を引用符で囲んで、シェルメタキャラクタが解釈されないようにしてください。特殊文字 (スペース、ダッシュ、ピリオドなど) を含むデータベース名やファイル名を選択するためにこのオプションを使用する場合、いくらかの制限が適用されます。詳細については、付録A「MySQL Enterprise Backup の制限」のこの説明を参照してください。正規表現を一緒に指定せずに、オプションを使用すると、mysqlbackup はエラーをスローします。このオプションはさまざまな種類のバックアップで使用できますが、選択的なリストアは、トランスポータブルテーブルスペース (TTS) を使用して作成されたバックアップ (つまり
--use-tts
オプションで作成されたバックアップ) でのみサポートされます。このオプションはレガシー
--include
、--databases
、--databases-list-file
、または--only-innodb-with-frm
オプションと一緒に使用することはできません。--exclude-tables
オプションと一緒に使用すると、--include-tables
が最初に適用されます。つまり、mysqlbackup はまず--include-tables
で指定されたすべてのテーブルを選択してから、--exclude-tables
で指定されたテーブルをセットから除外します。
-
コマンド行形式 --exclude-tables=REGEXP
型 文字列 完全修飾名 (
の形式) が正規表現db_name
.table_name
REGEXP
に一致するすべてのテーブル (innodb と innodb 以外の両方) をバックアップやリストアから除外します。正規表現構文は、POSIX 1003.2 規格に指定された拡張形式です。たとえば、--exclude-tables=^mydb\.t[12]$
は データベースmydb
内のテーブルt1
とt2
に一致します。Unix のようなシステムでは、適宜、正規表現を引用符で囲んで、シェルメタキャラクタが解釈されないようにしてください。特殊文字 (スペース、ダッシュ、ピリオドなど) を含むデータベース名やファイル名を選択するためにこのオプションを使用する場合、いくらかの制限が適用されます。詳細については、付録A「MySQL Enterprise Backup の制限」のこの説明を参照してください。正規表現を一緒に指定せずに、オプションを使用すると、mysqlbackup はエラーをスローします。このオプションはさまざまな種類のバックアップで使用できますが、選択的なリストアは、トランスポータブルテーブルスペース (TTS) を使用して作成されたバックアップ (つまり
--use-tts
オプションで作成されたバックアップ) でのみサポートされます。このオプションは
--include
、--databases
、--databases-list-file
、または--only-innodb-with-frm
オプションと一緒に使用することはできません。--include-tables
オプションと一緒に使用すると、--include-tables
が最初に適用されます。つまり、mysqlbackup はまず--include-tables
で指定されたすべてのテーブルを選択してから、--exclude-tables
で指定されたテーブルをバックアップのセットから除外します。
-
バックアップ専用。デフォルトで、データディレクトリ内のすべてのファイルがバックアップに含まれます (詳細はセクション1.4「バックアップされるファイル」を参照してください)。
--only-known-file-types
オプションを指定した場合、mysqlbackup は、次の拡張子を持つ MySQL またはその組み込みのストレージエンジンのデータファイルであるファイルの種類のみをバックアップします。.ARM
: ストレージエンジンメタデータをアーカイブします。.ARZ
: ストレージエンジンデータをアーカイブします。.CSM
: CSV ストレージエンジンデータ。.CSV
: CSV ストレージエンジンデータ。.frm
: テーブル定義。.MRG
: ストレージエンジン参照をほかのテーブルにマージします。.MYD
: MyISAM データ。.MYI
: MyISAM インデックス。.OPT
: データベース構成情報。.PAR
: パーティション定義。.TRG
: トリガーパラメータ。.TRN
: トリガー名前空間情報。
-
--only-innodb
バックアップ専用。InnoDB データとログファイルのみをバックアップします。ほかのストレージエンジンによって作成されたすべてのファイルが除外されます。一般に mysqld への接続が許可されない場合または MyISAM をコピーする必要がない場合に使用されます。
このオプションは
--slave-info
オプションと互換性がありません。デフォルト: バックアップにはすべてのストレージエンジンからのファイルが含まれます。
-
--use-tts
[={with-minimum-locking|with-full-locking
}]コマンド行形式 --use-tts[={with-minimum-locking|with-full-locking}]
型 列挙 デフォルト with-minimum-locking
有効な値 with-minimum-locking
with-full-locking
トランスポータブルテーブルスペース (TTS) を使用した InnoDB テーブルの選択的バックアップを有効にします。これは
--include-tables
オプションおよび--exclude-tables
オプションと一緒に使用し、正規表現によってバックアップする InnoDB テーブルを選択します。バックアップで TTS を使用すると、次の利点があります。別のサーバーにバックアップをリストアできます
システムテーブルスペースがバックアップされないため、ディスク領域と I/O リソースを節約します
テーブルのデータ整合性が MySQL Enterprise Backup によって管理されます
ただし、このオプションには次の制限があります。
MySQL バージョン 5.6 以降のみをサポートします (MySQL の初期バージョンでは TTS をサポートしていないため)
独自の個別のテーブルスペースに格納されているテーブル (つまり、innodb_file_per_table オプションを有効にして作成されたテーブル) のみをバックアップできます
パーティション化されたテーブルをバックアップできません
増分バックアップに使用できません
オプションに指定可能な値は 2 つあります。
デフォルト: 最小のロックでバックアップ
--use-tts
オプションを使用するには、mysqlbackup がサーバーに接続するためにユーザーの特別な権限が必要です。詳細については、セクション3.1.2「MySQL の権限をバックアップ管理者に与える」を参照してください。--use-tts
オプションを使用して作成されたバックアップをリストアするには、いくつかの特別な要件があります。詳細については「Restoring Backups Created with the --use-tts Option」を参照してください。
レガシー部分バックアップオプション
このサブセクションの情報は、--include
、--databases
、--databases-list-file
、および --only-innodb-with-frm
のレガシーオプションを使用するためだけのもので、これらのオプションは次回の発行時に非推奨になります。部分バックアップの作成には、代わりに --include-tables
と --exclude-tables
の新しいオプションを使用することを強くお勧めします。部分バックアップのレガシーオプションと新しいオプションを単一のコマンドで組み合わせることはできません。
レガシーオプションに加えて、以下ではほかのオプションについても説明していますが、情報はレガシー部分バックアップオプションと一緒にオプションを使用する場合に限られます。
部分バックアップの概要とこれらのレガシーオプションに関する使用情報については、Making a Partial Backup with the Legacy Optionsを参照してください。
-
--include
=REGEXP
このオプションはバックアップする InnoDB テーブルのフィルタ用です。InnoDB テーブルの完全修飾名が、オプションで指定された正規表現に対してチェックされます。REGEXP が
に一致する場合、そのテーブルは含まれます。使用される正規表現構文は、POSIX 1003.2 規格に指定された拡張形式です。たとえば、db_name
.table_name
--include=mydb\.t[12]
は データベースmydb
内のテーブルt1
とt2
に一致します。正規表現を一緒に指定せずにこのオプションが使用された場合、mysqlbackup はエラーをスローします。このオプションは、MySQL オプション
innodb_file_per_table
が有効にされて (これは MySQL 5.6 以降のデフォルトの設定です) 作成された InnoDB テーブルにのみ適用されます。その場合テーブルはバックアップに含めたり、除外したりできる個別のファイルになります。InnoDB システムのテーブルスペース内のすべてのテーブルは常にバックアップされます。指定した正規表現に一致する InnoDB テーブル名がない場合、一致がないことを示すメッセージとともにエラーがスローされます。
デフォルト: すべての InnoDB テーブルをバックアップします。
注記このオプションは InnoDB 以外のテーブルをフィルタしないため、
--databases
や--databases-list-file
などのオプションを使用できます。重要このオプションは InnoDB テーブルに関連付けられた
.frm
ファイルをフィルタしません。つまり、オプションの値に関係なく、ほかのオプションによって除外されていない限り、すべての InnoDB テーブルのすべての.frm
ファイルが常にバックアップされます。InnoDB テーブルのバックアップしない.frm
ファイルは、データベースバックアップをリストアする前に削除しておいてください。詳細については、Making a Partial Backup with the Legacy Optionsを参照してください。
-
--databases
=LIST
バックアップする InnoDB 以外のテーブルを指定します。この引数では、次の形式のデータベースまたはテーブル名のスペース区切りのリストを指定します。
"db_name[.table_name] db_name1[.table_name1] ...".
指定した値に一致するデータベースやテーブルがない場合、InnoDB 以外のデータファイルはバックアップされません。詳細については、「レガシーオプションによる部分バックアップの作成」を参照してください。
デフォルトですべてのデータベースのすべての InnoDB 以外のテーブルがバックアップされます。
注記このオプションは、これで指定するデータベースやテーブルの InnoDB データファイル (
.ibd
ファイル) に対するフィルタ効果はありません。InnoDB データファイルをフィルタするには、代わりに--include
オプションを使用します。
-
--databases-list-file
=PATH
バックアップする InnoDB 以外のテーブルを一覧表示するファイルのパス名を指定します。このファイルには、改行やスペースで区切られたデータベースまたは完全修飾テーブル名のエントリが含まれます。エントリの形式は
--databases
オプションの場合と同じです。db_name[.table_name] db_name1[.table_name1] ...
空白は自動的に削除されないため、データベースまたはテーブル名の前後の空白を削除します。コメントを含めるには、行を
#
文字で始めます。正規表現は使用できません。指定したエントリに一致するデータベースやテーブルがない場合、InnoDB 以外のデータファイルはバックアップされません。
注記このオプションは、これで指定するデータベースやテーブルの InnoDB データファイル (
.ibd
ファイル) に対するフィルタ効果はありません。InnoDB データファイルをフィルタするには、代わりに--include
オプションを使用します。
-
--only-innodb-with-frm
[={all|related}]
InnoDB テーブルに関連付けられた InnoDB データ、ログファイル、および
.frm
ファイルのみをバックアップします。--only-innodb-with-frm=all
はすべての InnoDB テーブルの.frm
ファイルをバックアップに含めます。--only-innodb-with-frm=related
は--include
オプションと組み合わせて、部分バックアップに含まれるテーブルの.frm
ファイルのみをコピーします。引数を付けない
--only-innodb-with-frm
は--only-innodb-with-frm=related
と同じです。
注記増分バックアップの場合、変更された
.ibd
ファイルのみがバックアップされても、指定されたすべての InnoDB テーブルに関連付けられた.frm
が含まれます。このオプションにより、通常
FLUSH TABLES WITH READ LOCK
ステートメントによってサーバーが読み取り専用状態になっている間に実行する、InnoDB.frm
ファイルのバックアップステップをスクリプト化する必要がなくなります。バックアップ操作が真のホットバックアップになり、データベースの処理を妨げないように、.frm
ファイルはサーバーを読み取り専用状態にしなくてもコピーされます。バックアップの進行中に、ALTER TABLE
やその他の DDL ステートメントによって、InnoDB テーブルの.frm
ファイルが変更されないことを確認する必要があります。mysqlbackup コマンドが、バックアップ操作中に関連の.frm
ファイルの変更を検出した場合、エラーで停止します。バックアップ操作時の InnoDB テーブルへの DDL を禁止することが現実的でない場合は、代わりに--only-innodb
オプションを使用し、サーバーのロック中に.frm
ファイルをコピーする従来の方法を使用します。ほかのストレージエンジンによって作成されたすべてのファイルが除外されます。一般に mysqld への接続が許可されない場合または MyISAM をコピーする必要がない場合、たとえばバックアップ中に DDL の変更がないことが確信できる場合に使用されます。手順と例については、Making a Partial Backup with the Legacy Optionsを参照してください。
このオプションは
--slave-info
オプションと互換性がありません。デフォルト: バックアップにはすべてのストレージエンジンからのファイルが含まれます。
-
--use-tts
[={with-minimum-locking|with-full-locking
}]トランスポータブルテーブルスペース (TTS) を使用した InnoDB テーブルの選択的バックアップを有効にします。これは、正規表現によってバックアップする InnoDB テーブルを選択する
--include
オプションとともに使用します。バックアップで TTS を使用すると、次の利点があります。別のサーバーにバックアップをリストアできます
システムテーブルスペースがバックアップされないため、ディスク領域と I/O リソースを節約します
テーブルのデータ整合性が MySQL Enterprise Backup によって管理されます
ただし、このオプションには次の制限があります。
MySQL バージョン 5.6 以降のみをサポートします (MySQL の初期バージョンでは TTS をサポートしていないため)
独自の個別のテーブルスペースに格納されているテーブル (つまり、innodb_file_per_table オプションを有効にして作成されたテーブル) のみをバックアップできます
パーティション化されたテーブルをバックアップできません
バックアップから選択してテーブルをリストアすることはできません
増分バックアップに使用できません
オプションに指定可能な値は 2 つあります。
デフォルト: 最小のロックでバックアップ
--use-tts
オプションを使用して作成されたバックアップをリストアするには、いくつかの特別な要件があります。詳細については、セクション4.2「リストア操作の実行」の説明を参照してください。