データベースを稼働させた状態で行う非一貫性バックアップでは、事前にバックアップする表領域をOracleのSQLコマンドでバックアップ・モードに変更してから、OSコマンドなどを使用し該当表領域を構成するデータファイルのバックアップを行います。バックアップ終了後にはOracleのSQLコマンドでバックアップ・モードを解除して、表領域を通常の状態に戻します。このような方法でバックアップを行うためには、データベースがアーカイブログモードで稼働している必要があります(図5)。
なお、バックアップ・モード中でも該当の表領域に格納されたデータは変更可能であるため、バックアップされたデータブロックは一貫性が保証されません。このため、データブロックを一貫性のある状態に復旧できるように、バックアップモードになっている表領域内のデータブロックに対して初めて更新が行われる場合、ブロック全体がREDOログに記録される仕組みとなっています。上記Oracleの動作により、バックアップ・モードの表領域に対する更新処理では、通常時より多くのREDOログが生成されることに注意してください。
更新処理が多発する時間帯にバックアップを取得する必要がある場合には、一度にすべての表領域をバックアップ・モードにするのではなく、いくつかに分けてバックアップを行うことを検討します。バックアップ終了後は速やかに表領域のバックアップ・モードを解除し、なるべくバックアップ・モードの時間が短くなるようにスケジューリングします。
OSコマンドを使用して複数世代のバックアップを取得するには、バックアップしたファイルを保存する場所や、日時(バージョン)の管理に十分な注意を払います。
実際に障害復旧時の現場では、誤って古い世代のバックアップをリストアしてしまったり、障害直前の状態まで復旧する必要があるのに、一貫性バックアップで取得したオンラインREDOログ・ファイルも含めてリストアしてしまうなど、数多くの失敗が発生しています。
このような場合、何度もリストア・リカバリを行うことで業務の再開が大幅に遅れたり、最悪の場合には必要な時点までデータを回復できないこともあり得ます。このようなことが起こらないように、バックアップしたファイルの管理とリストア・リカバリ方法をあらかじめ決定し、手順化しておく必要があります。
次回も引き続き、Oracleのバックアップ方法について説明します。(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.