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


4.2 リストア操作の実行

リストア操作を実行するための mysqlbackup オプションは、copy-backcopy-back-and-apply-log です。リストアプロセスでは、データベースサーバーがすでにシャットダウンされていることが必要です (--use-tts オプションで作成したバックアップのリストアを除きます。下の説明を参照してください)。このプロセスは、データファイル、ログ、およびほかのバックアップされたファイルを、バックアップディレクトリからコピーしてその元の場所に戻し、必要な後処理をそれらに対して実行します。どのリストア操作の場合でも、オプション datadirinnodb_log_files_in_groupinnodb_log_file_size、および innodb_data_file_path をターゲットサーバーの構成ファイル内、--defaults-file オプションによって指定されたファイル内、またはコマンド行オプションとして指定する必要があります。

例 4.4 データベースのシャットダウンとリストア

mysqladmin --user=root --password shutdown
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf \
  --backup-dir=/export/backups/full \
    copy-back

注記

リストアしたデータには、backup_history テーブルが含まれ、MySQL Enterprise Backup はここに各バックアップの詳細を記録します。このテーブルを以前の状態にリストアすると、それ以降に行なったバックアップに関する情報が削除されます。これは、今後の増分バックアップの、特に --incremental-base オプションを使用した増分バックアップの正しい開始点です。

重要

完全リストアを実行するときに (たとえば、バックアップデータを新しい MySQL Server の設定に使用したり、既存の MySQL Server のすべてのデータの交換に使用したりするとき)、ターゲットデータディレクトリがすべてクリーンで、古いまたは不要なデータファイルが含まれていないことを確認してください。これには、--datadir オプションと --innodb_data_file_path オプションの両方で指定された場所で、ファイルを手動で削除することが必要になる可能性があります。同じクリーンアップは、--use-tts オプションで作成されたバックアップのリストアには必要なく (ただしこの場合、Restoring Backups Created with the --use-tts Optionで示されたほかの要件は適用されます)、部分バックアップのリストアには通常必要ありません。

copy-back-and-apply-log オプションを代わりに使用することによって、apply-log 操作と copy-back 操作 (およびリストアしているバックアップの種類に応じて、多数のほかの操作も) を単一のステップに組み合わせることができます。

mysqlbackup --defaults-file=/usr/local/mysql/my.cnf \
  --backup-dir=/export/backups/full \
    copy-back-and-apply-log

例 4.5 圧縮バックアップのリストア

copy-back-and-apply-log を使用して、<backupDir> の圧縮バックアップを、サーバー上の <restoreDir> にリストアします。

mysqlbackup --defaults-file=<my.cnf> -uroot --backup-dir=<backupDir> --datadir=<restoreDir> \
  --uncompress copy-back-and-apply-log

--backup-dir オプションを使用してイメージの抽出先の一時ディレクトリを指定して、<image_name> という名前の圧縮バックアップイメージに同じ操作を行います。

mysqlbackup --defaults-file=<backupDir>/backup-my.cnf -uroot --backup-image=<image_name> \
  --backup-dir=<backupTmpDir> --datadir=<restoreDir> --uncompress copy-back-and-apply-log

圧縮バックアップの詳細は、セクション3.3.3「圧縮バックアップの作成」およびセクション5.1.7「圧縮オプション」を参照してください。


例 4.6 暗号化されたバックアップイメージのリストア

<keyFile> という名前のファイルに含まれた暗号化鍵を使用して、copy-back-and-apply-log<image_name> という名前の暗号化されたバックアップイメージをサーバー上の <restoreDir> にリストアします。

mysqlbackup --defaults-file=<backupDir>/backup-my.cnf --backup-image=<image_name> \
 --backup-dir=<backupTmpDir> --datadir=<restoreDir> --decrypt --key-file=<keyFile> copy-back-and-apply-log

バックアップ暗号化と復号化の詳細は、セクション5.1.14「暗号化オプション」を参照してください。


例 4.7 増分バックアップイメージのリストア

--incremental-backup-dir オプションを使用してイメージの抽出先の一時ディレクトリを指定しながら、copy-back-and-apply-log<inc_image_name> という名前の増分バックアップイメージをサーバー上の <restoreDir> にリストアします (増分バックアップの基準となっていた完全バックアップがすでに <restoreDir> にリストアされていることに注意してください)。

mysqlbackup --defaults-file=<backupDir>/backup-my.cnf -uroot --backup-image=<inc_image_name> \
  --incremental-backup-dir=<incBackupTmpDir> --datadir=<restoreDir> --incremental \
  copy-back-and-apply-log

--backup-dir を使用してイメージが抽出される一時ディレクトリを指定して同じことを行います。

mysqlbackup --defaults-file=<backupDir>/backup-my.cnf -uroot --backup-image=<inc_image_name> \
  --backup-dir=<incBackupTmpDir> --datadir=<restoreDir> --incremental \
  copy-back-and-apply-log

増分バックアップの詳細は、セクション3.3.2「増分バックアップの作成」およびセクション5.1.8「増分バックアップオプション」を参照してください。


例 4.8 TTS バックアップからの選択されたテーブルのリストア

選択したテーブルは、--include-tables オプションと --exclude-tables オプションを使用して、トランスポータブルテーブルスペース (TTS) で作成されたバックアップ (つまり、--use-tts オプションで作成されたバックアップ) からリストアできます。次のコマンドは、バックアップから sales データベース内のすべてのテーブルをリストアしますが、hardware という名前のテーブルを除きます。

mysqlbackup --socket=/tmp/restoreserver.sock --datadir=/logs/restoreserverdata --backup-dir=/logs/backup \
  --include-tables='^sales\.' --exclude-tables='^sales\.hardware$' copy-back-and-apply-log

TTS バックアップから選択したテーブルをリストアするときに適用される特殊な要件については、Restoring Backups Created with the --use-tts Optionを参照してください。


例 4.9 クラウドストレージから MySQL Server への単一ファイルバックアップのリストア

--backup-dir オプションを使用してイメージの抽出先の一時ディレクトリを指定しながら、クラウドストレージからサーバー上の datadir にバックアップイメージをリストアします (クラウドサービスオプションの詳細は、セクション5.1.15「クラウドストレージオプション」を参照してください)。

mysqlbackup\
--defaults-file=/bkups/backupdir/backupmy.cnf \
--cloud-service=s3 --cloud-aws-region=<aws region> \
--cloud-access-key-id=<aws access key id> --cloud-secret-access-key=< aws secret access key> \
--cloud-bucket=<s3 bucket name> --cloud-object-key=<aws object key> \
--backup-dir=/home/user/dba/s3backuptmpdir \
--datadir=/home/user/dba/datadir \
--backup-image=- \
copy-back-and-apply-log

--use-tts オプションで作成されたバックアップのリストア

--use-tts オプションで作成されたバックアップをリストアするには、複数の特殊な要件があります。

  • 復元先のサーバーが実行中である必要があります。

  • サーバーに接続するために必要なパラメータ (ポート番号、ソケット名など) が、mysqlbackup のコマンド行オプションとして与えられているか、またはデフォルトファイルの「client」セクションで指定されていることを確認します。

  • バックアップが作成されたサーバーで使用されていた同じページサイズを、復元先のサーバーで使用している必要があります。

  • 復元先のサーバーで innodb_file_per_table オプションを有効にする必要があります。

  • リストアされるテーブルが、リストア先のサーバーに存在していることはできません。

  • リストアされる per-table データファイル (.ibd ファイル) の InnoDB ファイル形式が、リストア先のサーバーでの innodb_file_format システム変数の値と一致しない場合、リストアが失敗します。この場合、形式には無関係に per-table データファイルをリストアできるようにするために、リストアコマンドとともに --force オプションを使用して、サーバーでの innodb_file_format の値を一時的に変更します。