リカバリ可能性のための構成
- ARCHIVELOGモード
- フラッシュリカバリ領域
![]() | オラクルマスター教科書 Gold Oracle Database DBA11g編 (試験番号:1Z0-053) (CD-ROM付) 新品価格 |
ARCHIVELOGモード
インスタンス障害からの復旧は、オンラインREDOログファイルがあれば可能です。しかし、メディア障害は、オンラインREDOログのみでは、復旧を完全には保証できません。オンラインREDOログしか保持しないNOARCHIVELOGモードの場合、メディア障害が発生したときには、基本的にバックアップの取得時点に戻す必要があります。メディア障害からの復旧にリカバリを含めるのであれば、ARCHIVELOGモードを選択する必要があります。
ARCHIVELOGモードの構成
SQL> ARCHIVE LOG LIST データベース・ログ・モード 非アーカイブ・モード 自動アーカイブ 使用禁止 アーカイブ先 USE_DB_RECOVERY_FILE_DEST 最も古いオンライン・ログ順序 630 現行のログ順序 632 SQL> SHUTDOWN IMMEDIATE データベースがクローズされました。 データベースがディスマウントされました。 ORACLEインスタンスがシャットダウンされました。 SQL> STARTUP MOUNT ORACLEインスタンスが起動しました。 Total System Global Area 1068937216 bytes Fixed Size 2220200 bytes Variable Size 801115992 bytes Database Buffers 260046848 bytes Redo Buffers 5554176 bytes データベースがマウントされました。 SQL> ALTER DATABASE ARCHIVELOG; データベースが変更されました。 SQL> ALTER DATABASE OPEN; データベースが変更されました。 SQL> ARCHIVE LOG LIST データベース・ログ・モード アーカイブ・モード 自動アーカイブ 有効 アーカイブ先 USE_DB_RECOVERY_FILE_DEST 最も古いオンライン・ログ順序 630 アーカイブする次のログ順序 632 現行のログ順序 632
また、ARCHIVELOGモードにする場合には、アーカイブ先の検討が必要です。アーカイブ先は、LOG_ARCHIVE_DEST_n初期化パラメータで設定します。
構文:LOG_ARCHIVE_DEST_n={LOCATION | SERVICE}=ディレクトリ {MANDATORY}
LOG_ARCHIVE_DEST_nを使用する場合には、カーかイブ先の指定以外に、ローカルまたはリモートの指定、およびアーカイブ先が必須であるか任意であるかの指定を行います。
- LOCATION属性
- ローカルディレクトリにアーカイブを作成する
- SERVICE属性
- リモート上にアーカイブログファイルを転送する。主にData Guardで使用
- MANDATORY属性
- この接続先にアーカイブが完了していないと、オンラインREDOログファイルを上書きすることができない。MANDATORYを指定しない場合、アーカイブは任意となる
MANDATORYを指定した場合、指定のディレクトリへのアーカイブが必須です。そのため、万が一アーカイブ先の障害により正常にアーカイブができない場合、LGWRはオンラインREDOログを上書きすることができず、いずれインスタンス障害となります。MANDATORYが有効なケースは、指定のディレクトリに対するアーカイブが必須の場合です。例えば、Data Guardを構成している場合のスタンバイデータベースを指定する場合に効果的です。
兎に角nか所へのアーカイブが正常にできればよいという場合は、LOG_ARCHIVE_MIN_SUCCEED_DESTを検討するとよいでしょう。このパラメータには、最低限正常にアーカイブできなくてはならないアーカイブ先を指定します。
アーカイブ先を決定したら、次はアーカイブ先の領域管理について検討します。アーカイブ先の領域が不足すればARCnが待機し、それに伴ってLOGWRもサーバープロセスも待機します。
11gでは、フラッシュリカバリ領域(LOG_ARCHIVE_LOG_10)が指定されています。フラッシュリカバリ領域は、REDOログのアーカイブ先以外にも、バックアップファイルなどの格納先として利用されます。
フラッシュリカバリ領域
フラッシュリカバリ領域を使用するファイルには、永続的に格納されるファイルと一時的に格納されるファイルがあります。
- 永続的なファイル
- 現行の制御ファイルの多重化されたコピー
- オンラインREDOログの多重化されたコピー
- 一時的なファイル
- アーカイブログファイル
- データファイルのコピー
- 制御ファイルのコピー
- 制御ファイルの自動バックアップ
- バックアップピース
- フラッシュバックログ
尚、フラッシュバックログには、フラッシュリカバリ領域が必須です。それ以外は、フラッシュリカバリ領域の使用は必須ではありません。
フラッシュリカバリ領域を利用するための設定(初期化パラメータの設定 )
- DB_RECOVERY_FILE_DEST_SIZE
- フラッシュリカバリ領域の最大サイズを指定します。デフォルトでは0に設定されているため、フラッシュリカバリ領域を利用するためには必ず任意のサイズに設定しなければなりません。
- DB_RECOVERY_FILE_DEST
- フラッシュリカバリ領域の位置を指定します。デフォルトはnullとなっていますので、フラッシュリカバリ領域を利用するためには必ず任意のディレクトリを指定しなければなりません。
DB_RECOVERY_FILE_DESTは、DB_RECOVERY_FILE_DEST_SIZEを依存パラメータにしているため、先に設定しようとするとORA-02097、ORA-19802エラーが発生します。そのため、必ず先にDB_RECOVERY_FILE_DEST_SIZEを設定してから、DB_RECOVERY_FILE_DESTを設定してください。
フラッシュリカバリ領域がいっぱいになったときの回避方法
フラッシュリカバリ領域の使用率はV$RECOVERY_FILE_DESTビューから確認します。
SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ----------------------------------- ----------- ---------- ----------------- --------------- /opt/app/oracle/flash_recovery_area 5218762752 18604032 0 1
- SPACE_LIMIT
- DB_RECOVERY_FILE_DEST_SIZEで設定しているサイズ
- SPACE_USED
- 現在使用済みのサイズ
フラッシュリカバリ領域がいっぱいになった場合には、以下のようにフラッシュリカバリ領域が満杯になったことを示すORA-19815がアラートログに出力されます。このとき、インスタンスがダウンしたり、バックアップが取得できなくなることにはなりません。Oracleが自動的に古いファイルから削除してくれますが、あまり好ましいことではないので、手動でのメンテナンスを検討する必要があります。
まとめ(フラッシュリカバリ機能の利点を生かした運用)
- フラッシュリカバリ領域を利用する場合は、必ず適切なサイズを見積もり、余裕を持って設定を行ってください
- もし領域不足になった場合は、サイズを大きくするか、不要なファイルの削除を検討してください
- 削除する場合は、OSコマンドでは削除せず、必ずRMANのDELETEコマンドで削除してください
- 誤ってOSコマンドで削除してしまった場合は、RMANよりCROSSCHECKを行い、実在しないファイルをOracleに認識させてください
- 空き領域の確保後は、必ず保存方針の見直しを行いDB_RECOVERY_FILE_DEST_SIZEを適切な値に設定してください
