連載
» 2006年11月02日 00時00分 公開

Oracleバックアップ/リカバリ講座(9):バックアップの所要時間を短縮するテクニック (3/4)

[渡辺学,株式会社アゲハ]

バックアップ対象を分割して取得する

 次はバックアップ対象を分割する方法を見ていきましょう。分割は表領域単位で行う方法と、データファイル単位で行う方法があります。これらの方法は規模の大きいデータベースで、許された時間帯だけでは全体バックアップを取得することが困難であるケースなどで有効です。

図6 表領域単位で分割したバックアップ 各表領域を日別に分割してバックアップする例。 図6 表領域単位で分割したバックアップ
各表領域を日別に分割してバックアップする例。

 表領域またはデータファイル単位で分割してバックアップを行った場合の注意点や分割の単位を以下にまとめましたので、参考にしてください。

1.バックアップの取得漏れをなくす

 第7回「物理バックアップの失敗を根絶するノウハウ」でも説明しましたが、OSコマンドによるバックアップと同様にRMANでも分割してバックアップを行っている場合は、バックアップの取得漏れがないように運用する必要があります。例えば、データファイルや表領域が追加された場合には、忘れずにバックアップのコマンドも修正する、またはバックアップ実行直前に、データディクショナリ表からバックアップ対象を動的に取得する仕組みを作る必要があります。これを怠ると、バックアップの取得漏れが発生します。

2.アーカイブREDOログファイルの保存期間

 データベース全体のバックアップまたは増分バックアップを毎日取得する場合は、直近のバックアップ開始前に出力されたアーカイブREDOログファイルは、リカバリ時に必要ありません。これに対して分割でバックアップを行った場合は、すべてのデータファイルのバックアップが終わるまでの期間も含めて保存しておく必要があります。そのため、分割する日数が大きいほど保存期間が長くなるため、バックアップの保存先の容量に注意してください。また、アーカイブREDOログファイルの適用数が増えるので、リカバリに時間がかかることも覚えておいてください。

図7 表領域単位で分割したときのリカバリ方法 各表領域を日別に分割したバックアップからのリカバリ例。 図7 表領域単位で分割したときのリカバリ方法
各表領域を日別に分割したバックアップからのリカバリ例。

3.分割方法について

 実際にどのようにしてバックアップを分割すればよいかを考える場合は、以下2つのアプローチから考えてみましょう。

  • データ量で分割する
    容量が大きいファイルがある場合、日々バックアップするファイル数を変えることによって、1日当たりのバックアップ取得量やバックアップ時間をなるべく一定に保ち、バックアップにかかるコストを平均化することができます。

  • データファイルが配置されているディスク装置のI/O単位で分割する
    データファイルを分割しても、1回のバックアップ対象のデータファイルが同じディスク装置にある場合には、バックアップ時のI/Oが特定のディスク装置に集中することになり、処理時間が思ったほど改善しないことがあります。このような場合は図8のように、1回のバックアップで取得するデータファイルをそれぞれ異なるディスク装置から選択して、I/Oが分散されるようにしましょう。
図8 ディスク装置ごとにバックアップを分割する 図8 ディスク装置ごとにバックアップを分割する

 続いて、具体的に分割してバックアップするコマンドを説明します。図8にある月曜日のバックアップを行う場合は、リスト6のようなコマンドになります。RMANではバックアップ時に表領域を指定すると、制御ファイルやリカバリ・カタログを調べて該当するデータファイルすべてをバックアップ対象とします。

configure channel device type disk
  format='/opt/app/oracle/oraback/tbsp_%U';
backup as backupset tablespace data1,indx1;
リスト6 表領域を指定してバックアップを取得する

 データファイル単位でバックアップを行う場合は、バックアップ対象にファイル名を指定する方法とファイルIDを指定する方法があります。データファイル単位でバックアップを取得する場合は、大きなデータファイルを複数持つ表領域を分割してバックアップを行うことが可能です。ただし、バックアップの管理が煩雑になりやすいため、注意が必要です。

configure channel device type disk
  format='/opt/app/oracle/oraback/file_%U';
backup as backupset datafile 5,6,7,8;
リスト7 ファイルIDを指定してデータファイル単位でバックアップを取得する

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。