Documentation Home
MySQL Enterprise Backup ユーザーズガイド (バージョン 3.11)
Download this Manual
PDF (US Ltr) - 1.3Mb
PDF (A4) - 1.3Mb
HTML Download (TGZ) - 164.5Kb
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 の値を一時的に変更します。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  Posted by Stefan Lasiewski on September 2, 2014
Don't forget, you probably want to do the restore as the user which runs mysql (normally the user named 'mysql') and not as the Unix root user.