10bet网址
MySQL企业备份ユザズガド(バジョン3.11)
本手册下载
PDF (Ltr)- 1.3 mb
PDF (A4)- 1.3 mb
HTML下载(TGZ)- 164.6 kb
HTML下载(邮政编码)- 190.9 kb


3.3.4部分バックアップの作成

注記

部分バックアップの作成を容易にするため,企业备份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_numberなどのメッセジ内のLSN値を書き留めてください。この完全バックアップのあとに行われた変更の増分バックアップを実行するときに,この値を指定します。

  • いでも完全バックアップをリストアできるよう,非圧縮バックアップファルにログを適用します。最初にバックアップデータを別のサーバーに移動して,データベースサーバーでこの操作を実行するCPUおよびI / Oオーバーヘッドを回避できます。

  • ログを適用したあと,定期的に増分バックアップを取得します。これらのような完全バックアップより非常に高速で,小さくなります。

レガシオプションによる部分バックアップの作成

重要

このサブセクションの情報は,——包括——数据库——databases-list-file,および——only-innodb-with-frmのレガシーオプションを使用するためだけのもので,これらのオプションは次回の発行時に非推奨になります。部分バックアップの作成には,代わりに——包括表格——排除表の新しいオプションを使用することを強くお勧めします。部分バックアップのレガシーオプションと新しいオプションを単一のコマンドで組み合わせることはできません。

MySQL企业备份では,部分バックアップのレガシーオプションを使用して,次のようなさまざまな部分バックアップを作成できます。

これらのすべてのオプションに関する構文の詳細は,“レガシ部分バックアップオプション”を参照してください。

注記

通常,部分バックアップは,完全なMySQLインスタンスを構築するために必要な相互関連要素がバックアップデータに含まれていない場合があるため,完全バックアップよりもリストアが困難です。特に,InnoDBテーブルが保持する内部IDとその他のデータ値は,同じインスタンスにのみリストアでき,別のMySQL服务器ではリストアできません。必ず,関連した手順と制限について理解するために,どの部分バックアップでもリカバリ手順を十分にテストしてください。

mysqlbackupは,その——包括オプションを使用して,一部のInnoDBテーブルを含み,ほかのテーブルは含まないバックアップを作成できます。

  • ——包括オプションによる部分バックアップには,常に,InnoDBシステムテーブルスペースとその内部のすべてのテーブルが含まれます。

  • システムテーブルスペース外に格納されたInnoDBテーブルの場合,部分バックアップには,その名前が,——包括オプションで指定された正規表現に一致するテブルだけが含まれます。

この操作には,除外されるテ,ブルが,個別のtable_name.ibdファ邮箱ルに格納されることが必要です。InnoDBテブルをシステムテブルスペス外に置くには,innodb_file_per_tableMySQL構成オプションが有効な間に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テブルだけを含む部分バックアップを作成します。测验デタベスのデタベスディレクトリの内容を次に示します。このディレクトリには,デタベスの各テブル(alex1alex2alex3blobt3ibstest0ibstest09ibtest11a, ibtest11bibtest11c,およびibtest11dのMySQL説明ファMySQL説明ファ(.frmファ和ル)が含まれます。これら10個のテ,6 (alex1alex2alex3blobt3ibstest0ibstest09)は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。*の邮箱ンクル邮箱ドパタ邮箱ンに一致しませんでした。ただし,ibtest11aibtest11bibtest11cibtest11dのテブルは,常にバックアップに含まれているシステムテス(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テーブルだけをバックアップできます。

このオプションを指定する場合は,必ず,すべてのバックアップ(基本的に増分バックアップ)で同じデータベースセットを含め,データベースの古いバージョンをリストアしないようにしてください。