部分バックアップの作成を容易にするため,企业备份MySQL 3.10では,——包括表格
と——排除表
という部分バックアップ用の2の新しいオプションが導入されています。これらの新しいオプションは,——包括
、——数据库
、——databases-list-file
,および——only-innodb-with-frm
の古いオプションに置き換わるものです。これらの古いオプションは新しいオプションと互換性がなく,次回のリリスで非推奨になります。次の説明では,この新しいオプションが部分バックアップに使用されることを想定しています。参考のため,古いオプションに関する情報をこのセクションの最後の“レガシオプションによる部分バックアップの作成”に記載しています。
デフォルトではデータディレクトリ内のすべてのファイルがバックアップに含まれるため,このディレクトリ内のすべてのMySQLストレージエンジン,サードパーティー製ストレージエンジン,さらにはデータベース以外のファイルからのデータも,バックアップに含まれます。このセクションでは,データをバックアップするか除外するか選択する場合に使用できるオプションについて説明します。
MySQL企业备份には,次のようなさまざまな部分バックアップを作成する複数の方法が用意されています。
特定のテブルをその名前で含めるまたは除外する。これは,
——包括表格
オプションまたは——排除表
オプションを使用します。——包括表格
オプションまたは——排除表
オプションで指定された正規表現と照合して各テブルがチェックされます。正規表現がテブルの完全修飾名に一致すると(db_name.table_name
の形式)、そのテブルがバックアップに含められるか除外されます。使用される正規表現構文は,POSIX1003.2規格で指定された拡張形式です。これらのオプションは,亨利·斯宾塞の正規表現ラ@ブラリとともに実装されています。InnoDBテブルの一部またはすべてを含めるが,ほかのテプは含めない。これは,
——only-innodb
オプションを使用します。MySQLデータディレクトリに存在するが,実際にはMySQLインスタンスの一部ではないファイルを除外する。これは,
——only-known-file-types
オプションを使用します。前述のオプションの組み合わせを使用して,複数の選択結果を得る。
トランスポタブルテブルスペス(tts)を使用して選択したInnoDBテブルをバックアップする。これは,
——use-tts
オプションと——包括表格
オプションまたは——排除表
オプション(あるいは両方)を使用します。
関連するすべてのオプションの構文の詳細は,セクション5.1.9 "部分バックアップとリストアオプション"を参照してください。
通常,部分バックアップは,完全なMySQLインスタンスを構築するために必要な相互関連要素がバックアップデータに含まれていない場合があるため,完全バックアップよりもリストアが困難です。特に,InnoDBテーブルが保持する内部IDとその他のデータ値は,同じインスタンスにのみリストアでき,別のMySQL服务器ではリストアできません。必ず,関連した手順と制限について理解するために,どの部分バックアップでもリカバリ手順を十分にテストしてください。
InnoDBシステムテーブルスペースは,インスタンス内のすべてのデータベースからのInnoDBテーブルに関するメタデータを保持しているため,ほかのデータベースを含むサーバー上で部分バックアップをリストアすると,システムがほかのデータベース内のこれらのInnoDBテーブルを追跡できなくなる可能性があります。部分バックアップは必ず,維持する必要のあるほかのInnoDBテーブルを含まない,新規のMySQL服务器インスタンスでリストアしてください。
次に,部分バックアップのコマンド例を示します。
「电磁脉冲」で始まる名前のテブルをすべてバックアップに含める場合:
$ mysqlbackup \——host=localhost——user=mysqluser——protocol=TCP——port=3306 \——backup-dir=$MEB_BACKUPS_DIR/backupdir \——include-tables='\。emp的\备份
「mysql」デタベスと「performance_schema」デタベスからのテブルを除き,すべてのテ:
$ mysqlbackup \——host=localhost——user=mysqluser——protocol=TCP——port=3306 \——backup-dir=$MEB_BACKUPS_DIR/backupdir \——exclude-tables='^(mysql|performance_schema)\。“\备份
「销售」デタベス内のすべてのテブルのバックアップを取得するが,「硬件」という名前のテブルを除く場合:
$ mysqlbackup \——host=localhost——user=mysqluser——protocol=TCP——port=3306 \——backup-dir=$MEB_BACKUPS_DIR/backupdir \——include-tables='^sales\。”——排除表= ' ^ \销售。硬件的美元\备份
すべてのInnoDBテブルをバックアップするが,.frm
ファ邮箱ルはバックアップしない場合:
$ mysqlbackup——defaults-file=/home/pekka/.my.cnf——only-innodb backup
適切なオプションを追加することにより,圧縮、単一邮箱メ邮箱ジ,およびほかの種類の選択的バックアップも作成できます。
次のステップ:
完全バックアップと増分バックアップの終わりに表示される,
mysqlbackup:能够解析到lsn的日志
などのメッセジ内のLSN値を書き留めてください。この完全バックアップのあとに行われた変更の増分バックアップを実行するときに,この値を指定します。LSN_number
いでも完全バックアップをリストアできるよう,非圧縮バックアップファルにログを適用します。最初にバックアップデータを別のサーバーに移動して,データベースサーバーでこの操作を実行するCPUおよびI / Oオーバーヘッドを回避できます。
ログを適用したあと,定期的に増分バックアップを取得します。これらのような完全バックアップより非常に高速で,小さくなります。
レガシオプションによる部分バックアップの作成
このサブセクションの情報は,——包括
、——数据库
、——databases-list-file
,および——only-innodb-with-frm
のレガシーオプションを使用するためだけのもので,これらのオプションは次回の発行時に非推奨になります。部分バックアップの作成には,代わりに——包括表格
と——排除表
の新しいオプションを使用することを強くお勧めします。部分バックアップのレガシーオプションと新しいオプションを単一のコマンドで組み合わせることはできません。
MySQL企业备份では,部分バックアップのレガシーオプションを使用して,次のようなさまざまな部分バックアップを作成できます。
特定のInnoDBテブルを含めるが,ほかのテブルは含めない。この操作には,
——包括
、——only-innodb
,および——only-innodb-with-frm
のオプションが含まれます。選択したデタベスからの特定の非InnoDBテブルを含めるが,それ以外は含めない。この操作には,
——数据库
オプションと——databases-list-file
オプションが含まれます。
これらのすべてのオプションに関する構文の詳細は,“レガシ部分バックアップオプション”を参照してください。
通常,部分バックアップは,完全なMySQLインスタンスを構築するために必要な相互関連要素がバックアップデータに含まれていない場合があるため,完全バックアップよりもリストアが困難です。特に,InnoDBテーブルが保持する内部IDとその他のデータ値は,同じインスタンスにのみリストアでき,別のMySQL服务器ではリストアできません。必ず,関連した手順と制限について理解するために,どの部分バックアップでもリカバリ手順を十分にテストしてください。
mysqlbackupは,その——包括
オプションを使用して,一部のInnoDBテーブルを含み,ほかのテーブルは含まないバックアップを作成できます。
——包括
オプションによる部分バックアップには,常に,InnoDBシステムテーブルスペースとその内部のすべてのテーブルが含まれます。システムテーブルスペース外に格納されたInnoDBテーブルの場合,部分バックアップには,その名前が,
——包括
オプションで指定された正規表現に一致するテブルだけが含まれます。
この操作には,除外されるテ,ブルが,個別の
ファ邮箱ルに格納されることが必要です。InnoDBテブルをシステムテブルスペス外に置くには,table_name
.ibdinnodb_file_per_table
MySQL構成オプションが有効な間にInnoDBテブルを作成します。それぞれの.ibd
ファ,1のテ。
innodb_file_per_table
をオフにして作成されたこれらのInnoDBテブルは,InnoDBシステムテブルスペスに通常どおりに格納され,バックアップから除外できません。
每个表デタファルを含むテブルごとに,db_name.table_name
の形式の文字列が,——包括
オプションで指定された正規表現と照合してチェックされます。正規表現が文字列db_name.table_name
全体に一致した場合,テブルはバックアップに含められます。使用される正規表現構文は,POSIX1003.2規格で指定された拡張形式です。Unixのようなシステムでは,適宜,正規表現を引用符で囲んで,シェルメタキャラクタが解釈されないようにしてください。この機能は,亨利·斯宾塞の正規表現ラ@ブラリとともに実装されています。
生成されたバックアップディレクトリには,バックアップログファイルとInnoDBデータファイルのコピーが含まれます。
重要:mysqlbackupコマンドは部分バックアップの取得をサポートしますが,部分バックアップからデータベースをリストアするときには注意してください。mysqlbackupは,たとえば——数据库
オプションを使用して部分バックアップを実行したときを除き,バックアップに含まれないテブルの.frm
ファ邮箱ルもコピ邮箱します。——包括
オプションを付けてmysqlbackupを使用する場合は,デタベスのリストア前に,バックアップに含まれないすべてのテブルの.frm
ファ邮箱ルをバックアップデ邮箱タから削除してください。
重要:InnoDBシステムテーブルスペースは,インスタンス内のすべてのデータベースからのInnoDBテーブルに関するメタデータを保持しているため,ほかのデータベースを含むサーバー上で部分バックアップをリストアすると,システムがほかのデータベース内のこれらのInnoDBテーブルを追跡できなくなる可能性があります。部分バックアップは必ず,維持する必要のあるほかのInnoDBテーブルを含まない,新規のMySQL服务器インスタンスでリストアしてください。
——only-innodb
オプションと——only-innodb-with-frm
オプションは,InnoDBテーブルだけをバックアップし,ほかのストレージエンジンのテーブルはスキップします。これらを——包括
オプションと一緒に使用して,ほかのストレージエンジンが作成したほかのすべてのファイルを除きながら,InnoDBテーブルの選択的バックアップを作成することもできます。
例3.1 InnoDBテブルの非圧縮部分バックアップの作成
この例では,一部のInnoDBテーブルが独自のテーブルスペースを持つようにMySQLを構成しました。ib
で始まる名前を持emf,测验
デタベス内のInnoDBテブルだけを含む部分バックアップを作成します。测验
デタベスのデタベスディレクトリの内容を次に示します。このディレクトリには,デタベスの各テブル(alex1
、alex2
、alex3
、blobt3
、ibstest0
、ibstest09
、ibtest11a, ibtest11b
、ibtest11c
,およびibtest11d
のMySQL説明ファMySQL説明ファ(.frm
ファ和ル)が含まれます。これら10個のテ,6 (alex1
、alex2
、alex3
、blobt3
、ibstest0
、ibstest09
)はper-tableデ(.ibd
ファ和ル)に格納されます。
$ ls /sqldata/mts/test alex1.frm alex2。ibd blobt3.frm ibstest0。ibd ibtest11a.frm ibtest11d.frm alex1.ibd alex3.frm blobt3.ibd ibtest09.frm ibtest11b.frm alex2.frm alex3.ibd ibstest0.frm ibtest09.ibd ibtest11c.frm
——包括
オプションを付けてmysqlbackupを実行します。
#备份一些InnoDB表,但不备份任何。frm文件。$ mysqlbackup——defaults-file=/home/pekka/.my.cnf——include='test\.ib. txt '。*'——only-innodb backup…很多行输出…mysqlbackup:扫描到lsn 2666737471的日志。mysqlbackup:能够解析到lsn 2666737471的日志。mysqlbackup:日志记录的最大页码0 101208 17:17:45 mysqlbackup:完全备份完成!#备份一些InnoDB表,只备份表的。frm文件。$ mysqlbackup——defaults-file=/home/pekka/.my.cnf——include='test\.ib. txt '。*' \——only-innodb-with-frm=相关备份…很多行输出…mysqlbackup:扫描到lsn 2666737471的日志。mysqlbackup:能够解析到lsn 2666737471的日志。mysqlbackup:日志记录的最大页码0 101208 17:17:45 mysqlbackup:完全备份完成!
バックアップディレクトリには,ibstest
テブルとibtest09
テブルのバックアップだけが含まれます。ほかのInnoDBテブルは测试\ .ib。*
の邮箱ンクル邮箱ドパタ邮箱ンに一致しませんでした。ただし,ibtest11a
、ibtest11b
、ibtest11c
、ibtest11d
のテブルは,常にバックアップに含まれているシステムテス(ibdata1
文件)に格納されているため,次に示すディレクトリに表示されていなくてもバックアップに含まれていることに注意してください。
#使用——only-innodb选项:$ ls /sqldata-backup/test ibstest0。ibd ibtest09.ibd# With the --only-innodb-with-frm=related option: $ ls /sqldata-backup/test ibstest0.frm ibtest09.frm ibstest0.ibd ibtest09.ibd
例3.2圧縮部分バックアップの作成
すべてのInnoDBテーブルが独自のテーブルスペースを保持するように,MySQLを構成しました。亚历克斯
または团
で始まる名前を持InnoDBテブルだけを含む部分バックアップを作成します. txt测验
デタベスのデタベスディレクトリの内容を次に示します。
$ ls /sqldata/mts/test alex1.frm alex2。ibd blobt3.frm ibstest0。ibd ibtest11a.frm ibtest11d.frm alex1.ibd alex3.frm blobt3.ibd ibtest09.frm ibtest11b.frm alex2.frm alex3.ibd ibstest0.frm ibtest09.ibd ibtest11c.frm
——压缩
オプションと——包括
オプションを付けてmysqlbackupを実行します。
$ mysqlbackup——defaults-file=/home/pekka/.my.cnf——compress \——include='.*\.(alex|blob)。*'——only-innodb backup…很多行输出…mysqlbackup:扫描到lsn 2666737471的日志。mysqlbackup:能够解析到lsn 2666737471的日志。mysqlbackup:将147 MB的数据文件压缩到15 MB(压缩89%)。101208 17:18:04 mysqlbackup: Full backup completed!
デタベス测验
のバックアップディレクトリを次に示します。.ibz
ファopenstackルは圧縮されたper-tableデopenstackタファopenstackルです。
$ ls /sqldata-backup/test alex1. sqlibz alex2。ibz alex3。ibz blobt3.ibz
mysqlbackupコマンドの——数据库
オプションと——databases-list-file
オプションを使用すれば,MySQLインスタンス全体ではなく選択したデータベースだけから,非InnoDBテーブルをバックアップできます。(InnoDBテブルをフィルタするには,代わりに——包括
オプションを使用します。)——数据库
では,デ,タベ,ス名のスペ,ス区切りのリストを指定し,リスト全体を二重引用符で囲みます。——databases-list-file
では,デ。
データベース名の一部またはすべてをテーブル名で修飾して,これらのデータベースから選択した非InnoDBテーブルだけをバックアップできます。
このオプションを指定する場合は,必ず,すべてのバックアップ(基本的に増分バックアップ)で同じデータベースセットを含め,データベースの古いバージョンをリストアしないようにしてください。