Percona XtraBackupの一部のバックアップとリカバリ/シングル・ライブラリ・バックアップ/シングル・テーブル・バックアップ/指定ライブラリ・バックアップ/指定テーブル・バックアップ


本文は翻訳したPercona XtraBackup 2.2版の公式文書で、原文の住所はここにある.https://www.percona.com/doc/percona-xtrabackup/2.2/innobackupex/partial_backups_innobackupex.htmlあ、以下は訳文です.
元の公式文書はどのように回復する方法がなく、回復部分は私自身が追加したものです.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Percona XtraBackupの機能の1つである「部分バックアップ(partial backups)」は、指定したテーブルまたはデータベースをユーザーがバックアップできるようにします.バックアップするテーブルは、作成前にMySQLがinnodbを開いた独立したテーブルスペースでなければなりません.file_per_table設定.
もう一つ注意したいのは、prepared backupがバックアップしたものをコピーしないことです.一部のバックアップでは、ライブラリ全体のバックアップであるcopy-backパラメータではなく、インポートテーブル(importing the tables)が使用されます.簡単なバックアップ・ファイルのコピーが成功する場合がありますが、この方法はデータベースの不一致を招きやすいので、お勧めしません.
部分バックアップの作成(Creating Partial Backups)
一部のバックアップには、次の3つの方法があります.バックアップするライブラリ名とテーブル名を正規表現で表します(パラメータは--include).2.バックアップするテーブル名またはライブラリ名をテキストファイル(パラメータは--tables-file)および3.バックアップするテーブル名またはライブラリ名をコマンドラインに完全に書きます(パラメータは--databases).(注:どのライブラリをバックアップしても、どのテーブルをバックアップしても、mysqlライブラリも一緒にバックアップして、リカバリするときに使うことを強くお勧めします.)
方法1:--includeパラメータの使用
この方法では、正規表現でデータベース名とテーブル名を一致させ、完全なデータベース名とテーブル名を書く必要があります.データベースにユーザー名パスワードがある場合は、--userと--passwordを使用して関連情報を指定します.フォーマットは次のとおりです.tablename.次に例を示します.
$ innobackupex --include='^mydatabase[.]mytable' /path/to/backup --user=backup --password=backup

上記の方法は他の方法と使用されます
innobackupexコマンドのバックアップ方法と同様に、最終的に正規表現が一致するテーブルのみを含むのとは異なり、タイムスタンプに名前を付けたフォルダを作成します.
このコマンドは最後にxtrabackup--tablesコマンドに渡され、バックアップを必要としないデータベースを含む各データベースに対応するフォルダが作成されます.
方法2:--tables-fileパラメータを使用する
この方法は、バックアップするすべてのテーブル名を1つのテキストファイルに書き、各行に1つのテーブル名を書き、プログラムがこのテキストファイルを読み出してバックアップします.完全なテーブル名:databasename.tablename.データベースにユーザー名パスワードがある場合は、--userと--passwordを使用して関連情報を指定します.次に例を示します.
$ echo "mydatabase.mytable" > /tmp/tables.txt
$ innobackupex --tables-file=/tmp/tables.txt /path/to/backup --user=backup --password=backup

上記の方法は他の方法と使用されます
innobackupexコマンドのバックアップ方法と同様に、最終的にはファイルで指定されたテーブル名のみが含まれるタイムスタンプ名のフォルダを作成します.
このコマンドは最後にxtrabackup--tables-fileコマンドに渡されます.--tablesではありません.そのため、このコマンドはバックアップが必要なデータベースフォルダのみを作成します.
方法3:--databasesパラメータの使用
この方法では、ユーザーはバックアップするすべてのデータベース名と完全なテーブル名をスペースで区切るか、データベース名、完全なテーブル名を1つのファイルに書くことができます.各行に1つ、データベースにユーザー名パスワードがある場合は--userと--passwordを使用して関連情報を指定します.次に例を示します.
$ innobackupex --databases="mydatabase.mytable mysql" /path/to/backup --user=backup --password=backup

上記の方法は他の方法と使用されます
innobackupexコマンドのバックアップと同様に、mydatabaseデータベース内のmytableテーブルと、完全なmysqlデータベース全体を含むタイムスタンプ名のフォルダを作成します.
部分バックアップの準備(Preparing Partial Backups)
preparing partial backupsを実行すると、リカバリ独立したテーブル(Restoring Individual Table)と似ています.--apply-logパラメータと--exportパラメータを使用し、前のステップで生成したタイムスタンプフォルダを以下のように含みます.
$ innobackupex --apply-log --export /path/to/backup/2015-11-09_16-33-58

コマンドを実行すると、バックアップを必要としないテーブルに対して、テーブルが存在しないというヒントが表示されます.心配しないでください.これは正常な現象です.次のエラーメッセージが表示されます.
111225  0:54:06  InnoDB: Error: table 'mydatabase/mytablenotincludedinpartialb'
InnoDB: in InnoDB data dictionary has tablespace id 6,
InnoDB: but tablespace with that id or name does not exist. It will be removed from data dictionary.

また、バックアップするテーブルにエクスポート・ファイルを作成するプロンプトも表示されます.情報は次のとおりです.
xtrabackup: export option is specified.
xtrabackup: export metadata of table 'employees/departments' to file `.//departments.exp` (2 indexes)
xtrabackup:     name=PRIMARY, id.low=80, page=3
xtrabackup:     name=dept_name, id.low=81, page=4

バックアップの準備(already-prepared backup)を実行したファイルに対して、--exportと--apply-logパラメータを持つコマンドを実行して生成することができます.expファイル.
最終的には、次の出力を見て、バックアップの準備が完了したことを確認してください.
111225 00:54:18  innobackupex: completed OK!

リカバリ部分がバックアップされる(Restoring Partial Backups)
方法1:データのリカバリ操作は、独立したテーブルのリカバリ(Restoring Individual Table)というセクションを参照してください.(この方法は本人試験に成功しなかったので、使用方法2をお勧めします)
方法2:
1.   MySQL:service mysql stop

2.  /var/lib/mysql           :rm /var/lib/mysql/* -rf(        mysql   ,              mysql   ,     sudo mysql_install_db --user=mysql,                )

3.              /var/lib/mysql :cp /usr/local/backup/2015-11-09_16-33-58/* /var/lib/mysql -rf

4.      :chown -R mysql:mysql /var/lib/mysql/

5.   MySQL:service mysql start