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.1 バックアップをリストアする準備

バックアップの実行中にデータを挿入、更新、または削除できるため、バックアップジョブの完了直後は、バックアップファイルは一貫した状態でない可能性があります。これらの初期バックアップファイルは、raw バックアップと呼ばれています。

特定の InnoDB ログシーケンス番号に対応するデータベースの状態を反映するように、バックアップファイルを更新する必要があります。(クラッシュリカバリと同じ種類の操作です。)このステップが完了すると、これらの最終的なファイルは、準備されたバックアップと呼ばれます。

バックアップ中、mysqlbackup は、累積された InnoDB ログを ibbackup_logfile と呼ばれるファイルにコピーします。このログファイルは、バックアップしたデータファイルをロールフォワードするために使用され、その結果、データファイル内のすべてのページが InnoDB ログの同じログシーケンス番号に対応します。このフェーズは、データファイルに対応する新しい ib_logfiles も作成します。

raw バックアップを準備されたバックアップに変換するための mysqlbackup オプションは、apply-log です。バックアップを行なった同じデータベースサーバー上でこのステップを実行するか、または最初に raw バックアップファイルを別のシステムに転送して、データベースサーバー上の CPU またはストレージオーバーヘッドを制限できます。

注記

apply-log 操作によってバックアップ内の元のファイルのいずれも変更されないため、操作が何らかの理由 (ディスク領域の不足など) で失敗しても何も失われません。問題を修復したあと、安全に apply-log を再試行できます。--force オプションを指定することによって、失敗した apply-log 操作によって作成されたデータおよびログファイルを上書きできます。

単純なバックアップ (圧縮または増分バックアップを使用しないバックアップ) の場合、オプション backup-and-apply-log を使用して、初期バックアップと apply-log ステップを組み合わせることができます。

単一の copy-back-and-apply-log コマンドで apply-logcopy-back (準備されたバックアップをリストア) を実行することもできます。

例 4.1 バックアップへのログの適用

この例では、データをリストアできるようにするため、mysqlbackup を実行してデータファイルをロールフォワードします。

mysqlbackup --backup-dir=/export/backups/2011-06-21__8-36-58 apply-log

このコマンドは、バックアップディレクトリ内に InnoDB ログファイル (ib_logfile*) を作成し、ログレコードを InnoDB データファイル (ibdata* および *.ibd) に適用します。


例 4.2 圧縮バックアップへのログの適用

セクション3.3.3「圧縮バックアップの作成」に示したようにバックアップを圧縮した場合、バックアップにログを適用するときに、mysqlbackup に対して --uncompress オプションを指定します。

mysqlbackup --backup-dir=/export/backups/compressed --uncompress apply-log


例 4.3 完全バックアップへの増分バックアップの適用

セクション3.3.2「増分バックアップの作成」の説明に従って増分バックアップを取得したあとで、バイナリログから変更を適用する場合と同じ方法で、これらのバックアップファイルに反映された変更を完全バックアップに適用して、完全バックアップを最新の状態にする必要があります。

完全バックアップからのデータファイルを最新の状態にするには、完全バックアップが実行している間に行われたあらゆる変更がデータファイルに含まれるように、最初にログステップを適用します。続いて、増分バックアップからの変更内容を、完全バックアップで生成されたデータファイルに適用します。

mysqlbackup --backup-dir=/export/backups/full apply-log
mysqlbackup --backup-dir=/export/backups/full \
  --incremental-backup-dir=/export/backups/incremental \
  apply-incremental-backup

これで、full-backup ディレクトリ内のデータファイルは完全に、増分バックアップの時点の最新の状態になっています。