OSコマンドによる物理バックアップの全手順Oracleバックアップ/リカバリ講座(6)(3/5 ページ)

» 2006年06月30日 00時00分 公開
[森谷聡株式会社アゲハ]

非一貫性バックアップ

 インターネット上でサービスを提供するシステムなど、データベースを停止することができない場合には、物理バックアップは、非一貫性バックアップで行うことになります。

 第3回「Oracleの代表的なバックアップ方法」の「OSコマンド、バックアップツールによる非一貫性バックアップ」でも概略を説明しましたが、非一貫性バックアップは一貫性バックアップと比べて、次のような特徴、注意点があります。

  • アーカイブモードの運用が必須である

  • OSコマンドでバックアップを取得する前に、対象となる表領域をバックアップモードに変更する。また、バックアップ終了後はバックアップモードを解除する必要がある

  • バックアップモード中の表領域に対する更新は、最初にデータブロック全体をオンラインREDOログファイルに出力する

  • 上記理由により、バックアップモード中はREDOログの出力が増えるので、できる限り更新が少なく、負荷の低い時間帯に取得する

 それでは、アーカイブモードで運用しているデータベースにおいて、毎週日曜日に非一貫性バックアップを、アーカイブREDOログファイルのバックアップを毎日取得しているシステムを考えてみましょう。図2は、一貫性バックアップの例と同様に水曜日に障害が発生した場合を想定し、非一貫性バックアップを使用した復旧までの流れをまとめています。

 アーカイブモードで運用しているため、非一貫性バックアップから障害が発生したデータファイルをリストアし、アーカイブREDOログファイルとオンラインREDOログファイルを使用してリカバリすることで、障害発生直前の状態まで復旧が可能となります。

図2 非一貫性バックアップの取得と復旧例 図2 非一貫性バックアップの取得と復旧例 (画像をクリックすると拡大します)

 では、実際にSYSTEM表領域、SYSAUX表領域、UNDOTBS1表領域、USERS表領域、TEMP表領域の5つの表領域で構成されたデータベースを例に挙げ、非一貫性バックアップの取得手順について見ていきましょう。

手順1 (事前確認)データベースがアーカイブモードであることの確認

 次のSQLコマンドを実行して、データベースがアーカイブモードで運用されていることを確認します。非アーカイブモードでは、非一貫性バックアップを取得することはできません。

SQL> conn /as sysdba
接続されました。
SQL> archive log list
データベース・ログ・モード     アーカイブ・モード
自動アーカイブ                 有効
アーカイブ先                    /opt/app/oracle/archive
最も古いオンライン・ログ順序   31
アーカイブする次のログ順序    33
現行のログ順序               33
リスト5 アーカイブモードの確認

手順2 バックアップ対象となる表領域をバックアップモードへ変更

 今回は、4つの表領域をまとめてバックアップモードへ変更します。ただし、先に説明したように、バックアップモード中は通常よりも多くのREDOログが生成されるため、バックアップ対象のデータファイルサイズが大きい場合は、1つの表領域ごとにバックアップモードに変更し、OSコマンドによるバックアップとバックアップモードの解除を繰り返し実行します。

 通常はデータファイルにチェックポイントが発生すると、データファイルヘッダにあるチェックポイントSCN、チェックポイントタイムスタンプ、チェックポイント数などを更新しますが、バックアップモードへ変更した表領域を構成する各データファイルは、チェックポイント数のみが更新されます。これにより、リストア後のリカバリで、データファイルヘッダにあるチェックポイントSCN以降のアーカイブREDOログファイル、およびオンラインREDOログファイルを適用し、整合性を保証します。ローカル管理一時表領域として作成したTEMP表領域は、バックアップを取得する必要がないので除外しています。

SQL> alter tablespace SYSTEM begin backup;

表領域が変更されました。

SQL> alter tablespace SYSAUX begin backup;

表領域が変更されました。

SQL> alter tablespace UNDOTBS1 begin backup;

表領域が変更されました。

SQL> alter tablespace USERS begin backup;

表領域が変更されました。
リスト6 表領域をバックアップモードへ変更

手順3 表領域のバックアップモードの確認

 表領域がバックアップモードへ変更されたことを確認します。SYSTEM表領域、SYSAUX表領域、UNDOTBS1表領域、USERS表領域の状態(STATUS列)がバックアップモード(ACTIVE)に変更されたことが確認できます。

SQL> select vt.name as tablespace_name,vd.name as file_name,
  2  vb.status,vb.change#,vb.time
  3  from v$backup vb,v$datafile vd,v$tablespace vt
  4  where vb.file#=vd.file#
  5  and vd.ts#=vt.ts#;

TABLESPACE_NAME FILE_NAME                                     STATUS 
          CHANGE# TIME
--------------- --------------------------------------------- -------
------ ---------- --------
SYSTEM          /opt/app/oracle/oradata/system01.dbf          ACTIVE 
           280882 06-06-18
UNDOTBS1        /opt/app/oracle/oradata/undotbs01.dbf         ACTIVE 
           280904 06-06-18
SYSAUX          /opt/app/oracle/oradata/sysaux01.dbf          ACTIVE 
           280892 06-06-18
USERS           /opt/app/oracle/oradata/users01.dbf           ACTIVE 
           280913 06-06-18
リスト7 バックアップモードへの変更を確認

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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