ヘッダーをスキップ

Oracle Database 管理者ガイド
11gリリース1(11.1)

E05760-03
目次
目次
索引
索引

戻る 次へ

11 アーカイブREDOログの管理

この章の内容は次のとおりです。

アーカイブREDOログの概要

Oracle Databaseでは、いっぱいになったREDOログ・ファイルのグループを1つ以上のオフライン・アーカイブ先に保存できます。これを総称して、アーカイブREDOログと呼びます。REDOログをアーカイブREDOログに変更するプロセスをアーカイブと呼びます。このプロセスを実行できるのは、データベースがARCHIVELOGモードで稼働しているときのみです。自動アーカイブと手動アーカイブのいずれかを選択できます。

アーカイブREDOログ・ファイルは、REDOログ・グループのいっぱいになったメンバーのうちのコピーの1つです。このファイルには、REDOログ・グループの同一メンバーのREDOエントリと一意のログ順序番号が格納されています。たとえば、REDOログを多重化しており、グループ1に同一メンバー・ファイルa_log1およびb_log1が含まれている場合は、アーカイバ・プロセス(ARCn)によってこれらのメンバー・ファイルの1つがアーカイブされます。万一a_log1が破損した場合でも、ARCnによってそれと同一のb_log1をアーカイブできます。このアーカイブREDOログには、アーカイブを使用可能にした後に作成された各グループのコピーが含まれます。

データベースがARCHIVELOGモードで稼働しているときは、REDOログ・グループがアーカイブされないかぎり、ログ・ライター・プロセス(LGWR)はREDOログ・グループを再利用(上書き)できません。自動アーカイブが使用可能な場合は、バックグラウンド・プロセスARCnによってアーカイブ操作が自動的に実行されます。データベースは必要に応じて複数のアーカイバ・プロセスを起動して、いっぱいになったREDOログのアーカイブが遅れないようにします。

アーカイブREDOログは、次の操作に使用できます。

NOARCHIVELOGモードとARCHIVELOGモードの選択

ここでは、データベースをNOARCHIVELOGモードまたはARCHIVELOGモードで稼働する際の考慮点について説明します。この項の内容は、次のとおりです。

いっぱいになったREDOログ・ファイル・グループをアーカイブ可能にするかどうかは、データベース上で実行されているアプリケーションの可用性と信頼性の要件によって決まります。ディスク障害の発生時にもデータベース内のデータが失われないようにする場合は、ARCHIVELOGモードを使用します。いっぱいになったREDOログ・ファイルをアーカイブすると、管理作業が増えます。

NOARCHIVELOGモードによるデータベースの実行

データベースをNOARCHIVELOGモードで実行すると、REDOログはアーカイブされません。データベースの制御ファイルは、グループがいっぱいになってもアーカイブする必要がないことを示します。したがって、ログ・スイッチが発生して、いっぱいになったグループがアクティブでなくなると、そのグループはLGWRで再利用できるようになります。

NOARCHIVELOGモードでは、データベースはインスタンス障害からは保護されますが、メディア障害からは保護されません。オンラインREDOログ・グループに格納されているデータベースへの最新の変更のみをインスタンスのリカバリに使用できます。データベースがNOARCHIVELOGモードのときにメディア障害が発生した場合、最後にデータベース全体のバックアップを行った時点までのデータベースをリストアできます。そのバックアップ以降のトランザクションはリカバリできません。

NOARCHIVELOGモードでは、オンライン表領域のバックアップを実行できません。さらに、データベースがARCHIVELOGモードのときに作成したオンライン表領域のバックアップも使用できません。NOARCHIVELOGモードで操作しているデータベースのリストアには、データベースがクローズされているときに作成されたデータベース全体のバックアップのみを使用できます。したがって、NOARCHIVELOGモードでデータベースを操作する場合は、データベース全体のバックアップを短い間隔で定期的に作成してください。

ARCHIVELOGモードによるデータベースの実行

データベースをARCHIVELOGモードで実行する場合は、REDOログのアーカイブを使用可能にします。データベースの制御ファイルは、いっぱいになったREDOログ・ファイルのグループがアーカイブされるまでは、LGWRでこのグループを再使用できないことを示します。いっぱいになったグループは、ログ・スイッチの発生直後からアーカイブに使用できます。

いっぱいになったグループのアーカイブには、次のような利点があります。

いっぱいになったREDOログ・ファイルを自動的にアーカイブするようにインスタンスを構成する方法と、手動でアーカイブする方法があります。通常は、自動アーカイブのほうが便利で効率的です。図11-1は、アーカイバ・プロセス(この図ではARC0)によって、いっぱいになったREDOログ・ファイルがデータベースのアーカイブREDOログに書き込まれる過程を示しています。

分散データベース内のデータベースをすべてARCHIVELOGモードで操作している場合は、調整式分散データベース・リカバリを実行できます。ただし、分散データベース内のデータベースのいずれかがNOARCHIVELOGモードで操作されている場合、(すべてのデータベースの整合性を維持するために)グローバルな分散データベースのリカバリは、NOARCHIVELOGモードで操作しているデータベース全体の最新のバックアップによって制限されます。

図 11-1    ARCHIVELOGモードでのREDOログ・ファイルの使用


画像の説明

アーカイブの制御

この項では、データベースのアーカイブ・モードを設定する方法と、アーカイブ・プロセスを制御する方法について説明します。この項の内容は、次のとおりです。

初期データベース・アーカイブ・モードの設定

初期のアーカイブ・モードは、CREATE DATABASE文でデータベース作成の一部として設定します。多くの場合、このプロセスで生成されるREDO情報はアーカイブする必要がないため、データベース作成時にはNOARCHIVELOGモード(デフォルト)を使用できます。初期のアーカイブ・モードを変更するかどうかは、データベースの作成後に決定します。

ARCHIVELOGモードを指定した場合は、アーカイブREDOログ・ファイルのアーカイブ先(「アーカイブ先の指定」を参照)を初期化パラメータで指定する必要があります。

データベース・アーカイブ・モードの変更

データベース・アーカイブ・モードを変更するには、ALTER DATABASE文でARCHIVELOG句またはNOARCHIVELOG句を使用します。また、データベース・アーカイブ・モードを変更するには、管理者権限(AS SYSDBA)でデータベースに接続する必要があります。

次の手順は、データベース・アーカイブ・モードをNOARCHIVELOGからARCHIVELOGに切り替えます。

  1. データベース・インスタンスを停止します。

    SHUTDOWN
    
    

    データベースがオープンされている場合は、アーカイブ・モードを切り替える前にクローズし、対応するインスタンスを停止する必要があります。メディア・リカバリを必要とするデータファイルがある場合は、モードをARCHIVELOGからNOARCHIVELOGに変更できません。

  2. データベースのバックアップを作成します。

    データベースに重要な変更をする前に、データベースのデータを保護するため必ずバックアップを作成してください。このバックアップは、NOARCHIVELOGモードでのデータベースの最終バックアップとなり、ARCHIVELOGモードへの切替え中に問題が生じた場合に使用できます。データベース・バックアップの作成については、『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』を参照してください。

  3. 初期化パラメータ・ファイルを編集して、アーカイブREDOログ・ファイルのアーカイブ先(「アーカイブ先の指定」を参照)を初期化パラメータで指定します。

  4. 新しいインスタンスを起動し、データベースをマウントします。オープンはしません。

    STARTUP MOUNT
    
    

    アーカイブを使用可能または使用禁止にするには、データベースをマウントして、オープンしないようにする必要があります。

  5. データベース・アーカイブ・モードの変更。通常の操作を実行するためにデータベースをオープンします。

    ALTER DATABASE ARCHIVELOG;
    ALTER DATABASE OPEN;
    
    
  6. データベースを停止します。

    SHUTDOWN IMMEDIATE
    
    
  7. データベースのバックアップを作成します。

    データベースのアーカイブ・モードを変更すると、制御ファイルが更新されます。変更後は、すべてのデータベース・ファイルと制御ファイルのバックアップを作成する必要があります。以前のバックアップはNOARCHIVELOGモードで作成されているため、使用できなくなります。

    関連項目:

    Real Application Clusters使用時のアーカイブ・モード切替えの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 

手動アーカイブの実行

データベースを手動アーカイブ・モードで操作するには、「データベース・アーカイブ・モードの変更」で説明した手順に従います。ただし、手順5で新しいモードを指定する場合は、次の文を使用します。

ALTER DATABASE ARCHIVELOG MANUAL;

データベースを手動ARCHIVELOGモードで操作している場合は、いっぱいになったREDOログ・ファイルの非アクティブ・グループをアーカイブしないと、データベース操作が一時的に停止する可能性があります。いっぱいになったREDOログ・グループを手動でアーカイブするには、管理者権限を使用して接続してください。データベースがマウントされ、オープンしていないことを確認します。手動アーカイブを実行するには、ALTER SYSTEM文でARCHIVE LOG句を指定します。次の文は、アーカイブされていないログ・ファイルをすべてアーカイブします。

ALTER SYSTEM ARCHIVE LOG ALL;

手動アーカイブ・モードを使用している場合、アーカイブ先にスタンバイ・データベースは指定できません。

また、自動アーカイブが使用可能な場合でも、いっぱいになったREDOログ・メンバーの非アクティブ・グループを別の位置に再度アーカイブする場合などに手動アーカイブを使用できます。この場合は、手動アーカイブが完了していなくてもインスタンスではREDOログ・グループを再利用できるため、ファイルが上書きされる場合があります。このような場合は、アラート・ログにエラー・メッセージが書き込まれます。

アーカイバ・プロセス数の調整

LOG_ARCHIVE_MAX_PROCESSES初期化パラメータを使用して、データベースが最初に起動するARCnプロセスの数を指定します。デフォルトのプロセス数は2です。通常は、この初期化パラメータを指定したり、デフォルト値を変更する必要はありません。その理由は、データベースでは、必要に応じて追加のアーカイバ・プロセス(ARCn)を起動して、いっぱいになったREDOログの自動処理が遅れないようにするためです。

ただし、追加のARCnプロセスの起動に伴う実行時のオーバーヘッドを回避するには、LOG_ARCHIVE_MAX_PROCESSES初期化パラメータを設定して、インスタンス起動時に開始するARCnプロセスの数(最大10)を指定できます。LOG_ARCHIVE_MAX_PROCESSESパラメータは動的で、ALTER SYSTEM文を使用して変更できます。データベースはマウントされ、オープンしていないことが必要です。次の文は、現在実行されているARCnプロセスの数を増加(または減少)させます。

ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;

アーカイブ先の指定

REDOログをアーカイブする前に、アーカイブ先を指定し、アーカイブ先の様々な状態を理解する必要があります。「アーカイブREDOログに関する情報の表示」に示す動的パフォーマンス・ビュー(V$)を使用して、必要なすべてのアーカイブ情報を参照できます。

この項の内容は、次のとおりです。

アーカイブ先の指定

REDOログのアーカイブ先を単一にするか、または多重化するかを選択できます。アーカイブ先を単一にする場合は、そのアーカイブ先をLOG_ARCHIVE_DEST初期化パラメータで指定します。アーカイブ・ログを多重化する場合は、LOG_ARCHIVE_DEST_nパラメータを使用して最大10のアーカイブ先を指定するか、またはLOG_ARCHIVE_DESTLOG_ARCHIVE_DUPLEX_DESTパラメータを使用して1次アーカイブ先と2次アーカイブ先のみを指定できます。次の表に多重化の方法の要約を示します。この後の各項で、詳細を説明します。

方法  初期化パラメータ  ホスト   

LOG_ARCHIVE_DEST_n

各項目の意味は次のとおりです。

nは1〜10の整数 

ローカルまたはリモート 

LOG_ARCHIVE_DEST_1 = 'LOCATION = /disk1/arc'

LOG_ARCHIVE_DEST_2 = 'SERVICE=standby1'  

LOG_ARCHIVE_DESTおよび

LOG_ARCHIVE_DUPLEX_DEST  

ローカルのみ 

LOG_ARCHIVE_DEST = '/disk1/arc'

LOG_ARCHIVE_DUPLEX_DEST ='/disk2/arc'  

関連項目:

  • REDOログのアーカイブ制御に使用される初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

  • スタンバイ・アーカイブ先の指定に使用するLOG_ARCHIVE_DEST_n初期化パラメータの使用方法は、『Oracle Data Guard概要および管理』を参照してください。この初期化パラメータには他にも指定できるキーワードがありますが、このマニュアルでは説明されていません。

 

方法1: LOG_ARCHIVE_DEST_nパラメータの使用

LOG_ARCHIVE_DEST_nパラメータ(nは1〜10の整数)を使用して、1〜10の異なるアーカイブ先を指定します。末尾に番号が付いた各パラメータによって、特定のアーカイブ先を一意に識別します。

LOG_ARCHIVE_DEST_nの位置は、次の表に示すキーワードを使用して指定します。

キーワード  指定内容   

LOCATION  

ローカル・ファイル・システムの位置 

LOG_ARCHIVE_DEST_1 = 'LOCATION = /disk1/arc'  

SERVICE  

Oracle Netのサービス名を介したリモート・アーカイブ 

LOG_ARCHIVE_DEST_2 = 'SERVICE=standby1'  

LOCATIONキーワードを使用する場合は、オペレーティング・システムに有効なパス名を指定します。SERVICEを指定すると、tnsnames.oraファイルを介してネット・サービス名が接続記述子に変換されます。この記述子には、リモート・データベースへの接続に必要な情報が含まれています。データベースがスタンバイ・データベースの制御ファイルのログ履歴を正しく更新できるように、サービス名には対応するデータベースSIDが必要です。

LOG_ARCHIVE_DEST_n初期化パラメータを使用してアーカイブREDOログのアーカイブ先を設定する手順は、次のとおりです。

  1. SQL*Plusを使用してデータベースを停止します。

    SHUTDOWN 
    
    
  2. LOG_ARCHIVE_DEST_n初期化パラメータを設定し、1〜10のアーカイブ先を指定します。LOCATIONキーワードには、オペレーティング・システム固有のパス名を指定します。たとえば、次のように入力します。

    LOG_ARCHIVE_DEST_1 = 'LOCATION = /disk1/archive'
    LOG_ARCHIVE_DEST_2 = 'LOCATION = /disk2/archive'
    LOG_ARCHIVE_DEST_3 = 'LOCATION = /disk3/archive'
    
    

    スタンバイ・データベースにアーカイブする場合は、SERVICEキーワードを使用して、tnsnames.oraファイルに含まれる有効なネット・サービス名を指定します。たとえば、次のように入力します。

    LOG_ARCHIVE_DEST_4 = 'SERVICE = standby1'
    
    
  3. 必要に応じて、LOG_ARCHIVE_FORMAT初期化パラメータを設定します。ファイル名にスレッド番号を含めるには%tを、ログ順序番号を含めるには%sを、リセットログID(ub4で表されるタイムスタンプ値)を含めるには%rをそれぞれ使用します。番号の左をゼロで埋めるには、大文字(%T%Sおよび%R)を使用します。


    注意:

    COMPATIBLE初期化パラメータが10.0.0以上に設定されている場合は、LOG_ARCHIVE_FORMATパラメータを指定するときに、リセットログID(%r)の指定が必要です。このパラメータのデフォルトは、オペレーティング・システムによって異なります。たとえば、UNIXの場合のデフォルト書式は次のとおりです。

    LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf

    データベースのインカネーションは、RESETLOGSオプションを指定してデータベースをオープンすると変更されます。%rを指定すると、アーカイブREDOログ・ファイル名からリセットログIDが取得されます。 このリカバリ方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』を参照してください。  


    次に、LOG_ARCHIVE_FORMATの設定例を示します。

    LOG_ARCHIVE_FORMAT = arch_%t_%s_%r.arc
    
    

    この設定では、スレッド1、ログ順序番号100、101および102、リセットログID 509210197について次のようなアーカイブ・ログが生成されます。リセットログIDが同一の場合は、すべてのファイルが同じデータベース・インカネーションに含まれることを示します。

    /disk1/archive/arch_1_100_509210197.arc, 
    /disk1/archive/arch_1_101_509210197.arc, 
    /disk1/archive/arch_1_102_509210197.arc
    
    /disk2/archive/arch_1_100_509210197.arc, 
    /disk2/archive/arch_1_101_509210197.arc, 
    /disk2/archive/arch_1_102_509210197.arc
    
    /disk3/archive/arch_1_100_509210197.arc, 
    /disk3/archive/arch_1_101_509210197.arc, 
    /disk3/archive/arch_1_102_509210197.arc
    

方法2: LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTの使用

最大2つのアーカイブ先ディレクトリを指定するには、LOG_ARCHIVE_DESTパラメータを使用して1次アーカイブ先を指定し、必要に応じてLOG_ARCHIVE_DUPLEX_DESTで2次アーカイブ先を指定します。アーカイブ先は、ローカルである必要があります。データベースでは、REDOログはどちらかのパラメータで指定したすべてのアーカイブ先ディレクトリにアーカイブされます。

方法2を使用する手順は、次のとおりです。

  1. SQL*Plusを使用してデータベースを停止します。

    SHUTDOWN
    
    
  2. LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTパラメータにアーカイブ先を指定します。ALTER SYSTEM文を使用して、LOG_ARCHIVE_DUPLEX_DESTを動的に指定することもできます。たとえば、次のように入力します。

    LOG_ARCHIVE_DEST = '/disk1/archive'
    LOG_ARCHIVE_DUPLEX_DEST = '/disk2/archive'
    
    
  3. 方法1の手順3で説明したように、LOG_ARCHIVE_FORMAT初期化パラメータを設定します。

アーカイブ先の状態の理解

各アーカイブ先は次のような可変特性を持っており、これらの特性によってその状態が決まります。

これらの特性は、何通りかの組合せが可能です。インスタンスの各アーカイブ先について現在の状態などの情報を取得するには、V$ARCHIVE_DESTビューを問い合せます。

ビューで表示される位置の状態は、表11-1に示す特性によって決まります。アーカイブを使用する際は、その特性がValid、EnabledおよびActiveである必要があります。

表 11-1    アーカイブ先の状態 
状態  特性  意味 
Valid  使用可能  Active 

VALID  

 

 

 

ユーザーがアーカイブ先を適切に初期化しているため、アーカイブ操作に使用できます。 

INACTIVE  

×  

N/A 

N/A 

ユーザーがアーカイブ先情報を指定していないか、または削除しました。 

ERROR  

 

 

×  

アーカイブ先ファイルの作成または書込み中にエラーが発生しました。エラー・データを参照してください。 

FULL  

 

 

×  

アーカイブ先がいっぱいです(ディスク領域が残っていません)。 

DEFERRED  

 

×  

 

ユーザーがアーカイブ先を手動で一時的に使用禁止にしています。 

DISABLED  

 

×  

×  

ユーザーがエラーの発生後にアーカイブ先を手動で一時的に使用禁止にしています。エラー・データを参照してください。 

BAD PARAM  

N/A 

N/A 

N/A 

パラメータ・エラーが発生しました。エラー・データを参照してください。  

LOG_ARCHIVE_DEST_STATE_nnは1〜10の整数)初期化パラメータを使用して、指定したアーカイブ先(n)の使用可能状態を制御できます。

アーカイブ先の使用可能状態はDEFERです。親アーカイブ先に障害が発生するとENABLEになります。

ログ転送モードの指定

アーカイブ・ログをアーカイブ先に転送する場合のモードには、ノーマル・アーカイブ転送およびスタンバイ転送という2つのモードがあります。ノーマル転送では、ファイルはローカル・ディスクに転送されます。スタンバイ転送では、ファイルはネットワークを介してローカルまたはリモートのスタンバイ・データベースに転送されます。

ノーマル転送モード

ノーマル転送モードでは、アーカイブ先はデータベースの別のディスク・ドライブです。この構成では、アーカイブがインスタンスに必要な他のファイルと競合せず、短時間で完了します。アーカイブ先は、LOG_ARCHIVE_DEST_nまたはLOG_ARCHIVE_DESTパラメータで指定します。

アーカイブREDOログ・ファイルとそれに対応するデータベース・バックアップは、ローカル・ディスクからテープなどの永続的で安価なオフライン記憶メディアに移動しておくことをお薦めします。アーカイブ・ログは主としてデータベース・リカバリに使用されるため、プライマリ・データベースに障害が発生した場合でも、これらのログが安全であることを保証する必要があります。

スタンバイ転送モード

スタンバイ転送モードでは、アーカイブ先はローカルまたはリモートのスタンバイ・データベースです。


注意:

ローカル・ディスク上でスタンバイ・データベースをメンテナンスすることも可能ですが、スタンバイ・データベースはリモート・サイトでメンテナンスし、最大限の障害対策を講じることをお薦めします。 


スタンバイ・データベースを管理リカバリ・モードで操作している場合は、転送されたアーカイブREDOログを自動的に適用して、スタンバイ・データベースとソース・データベースの同期状態を維持できます。

ファイルをスタンバイ・データベースに正常に転送するには、ARCnまたはサーバー・プロセスが次の処理を実行する必要があります。

各ARCnプロセスには、スタンバイ・アーカイブ先ごとに対応するRFSがあります。たとえば、3つのARCnプロセスを2つのスタンバイ・データベースにアーカイブする場合、Oracle Databaseは6つのRFS接続を確立します。

Oracle Net Servicesを使用して、ネットワークを介してアーカイブ・ログをリモートの位置に転送します。リモート・アーカイブを指定するには、アーカイブ先の属性としてネット・サービス名を指定します。次に、Oracle Databaseは、このサービス名をtnsnames.oraファイルを介して接続記述子に変換します。この記述子には、リモート・データベースへの接続に必要な情報が含まれています。データベースがスタンバイ・データベースの制御ファイルのログ履歴を正しく更新できるように、サービス名には対応するデータベースSIDが必要です。

RFSプロセスは接続先ノード上で実行され、ARCnクライアントへのネットワーク・サーバーとして機能します。最終的には、ARCnは情報をRFSにプッシュし、RFSがそれをスタンバイ・データベースに転送します。

RFSプロセスは、リモート接続先へのアーカイブ時に必要であり、次のタスクを受け持ちます。

アーカイブREDOログは、オリジナルのデータベースの完全なレプリカであるスタンバイ・データベースをメンテナンスするうえで重要です。データベースは、スタンバイ・アーカイブ・モードで操作できます。このモードでは、スタンバイ・データベースがオリジナル・データベースからのアーカイブREDOログで自動的に更新されます。

関連項目:

  • 『Oracle Data Guard概要および管理』

  • サービス名を使用してリモート・データベースに接続する方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

 

アーカイブ先の障害管理

アーカイブ先で発生した障害が、自動アーカイブ・モードで操作している場合のエラー原因となることがあります。Oracle Databaseには、アーカイブ先の障害に関連する問題を最小限に抑えるためのプロシージャが用意されています。次の各項では、それらのプロシージャについて説明します。

正常なアーカイブ先の最小数の指定

オプションの初期化パラメータLOG_ARCHIVE_MIN_SUCCEED_DEST=nによって、データベースがオンライン・ログ・ファイルを再利用できるようになるまでにREDOログ・グループを正常にアーカイブすることが必要なアーカイブ先の最小数が決定します。デフォルト値は1です。nの有効値は、二重化を使用する場合は1〜2、多重化を使用する場合は1〜10です。

必須およびオプションのアーカイブ先の指定

LOG_ARCHIVE_DEST_nパラメータを使用すると、アーカイブ先としてOPTIONAL(デフォルト)またはMANDATORYを指定できます。LOG_ARCHIVE_MIN_SUCCEED_DEST=nパラメータでは、すべてのMANDATORYアーカイブ先と、非スタンバイのOPTIONALアーカイブ先をいくつか使用して、LGWRがオンライン・ログを上書きできるかどうかが判断されます。次の規則が適用されます。

アーカイブ・ログを二重化する場合は、LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTパラメータを使用して、アーカイブ先が必須かオプションかを指定できます。次の規則が適用されます。

正常なアーカイブ先の数の指定: 使用例

LOG_ARCHIVE_DEST_nおよびLOG_ARCHIVE_MIN_SUCCEED_DESTパラメータの関係は、使用例を見ると理解しやすくなります。

オプションのローカル・アーカイブ先へのアーカイブ例

この例では、それぞれOPTIONALとして宣言している3つのローカル・アーカイブ先にアーカイブします。表11-2に、この場合のLOG_ARCHIVE_MIN_SUCCEED_DEST=nに考えられる値を示します。

表 11-2    使用例1のLOG_ARCHIVE_MIN_SUCCEED_DESTの値 
  意味 

データベースは、最低1つのOPTIONALのアーカイブ先へのアーカイブに成功した場合のみログ・ファイルを再利用できます。 

データベースは、最低2つのOPTIONALのアーカイブ先へのアーカイブに成功した場合のみログ・ファイルを再利用できます。 

データベースは、OPTIONALのすべてのアーカイブ先へのアーカイブに成功した場合のみログ・ファイルを再利用できます。 

4以上 

エラーです。値がアーカイブ先数を超えています。 

この例は、LOG_ARCHIVE_DEST_nパラメータを使用してアーカイブ先を明示的にMANDATORYに設定していない場合でも、LOG_ARCHIVE_MIN_SUCCEED_DESTが1、2または3に設定されていれば、データベースは必ずこれらの位置の1つ以上に正常にアーカイブすることを示しています。

必須およびオプションのアーカイブ先へのアーカイブ例

次のような状況を考えてみます。

表11-3に、LOG_ARCHIVE_MIN_SUCCEED_DEST=nに考えられる値を示します。

表 11-3    使用例2のLOG_ARCHIVE_MIN_SUCCEED_DESTの値 
  意味 

データベースは、この値を無視してMANDATORYのアーカイブ先の数(この例では2)を使用します。 

データベースは、OPTIONALのアーカイブ先へのアーカイブに失敗しても、ログ・ファイルを再利用できます。 

データベースは、最低1つのOPTIONALのアーカイブ先へのアーカイブに成功した場合のみログを再利用できます。 

データベースは、OPTIONALのアーカイブ先へのアーカイブに両方とも成功した場合のみログを再利用できます。 

5以上 

エラーです。値がアーカイブ先数を超えています。 

この例は、アーカイブ先が少なくなるようにLOG_ARCHIVE_MIN_SUCCEED_DESTを設定した場合でも、データベースはその設定とは無関係に、MANDATORYとして指定されているアーカイブ先に必ずアーカイブすることを示しています。

障害アーカイブ先への再アーカイブ

LOG_ARCHIVE_DEST_nパラメータのREOPEN属性を使用して、エラーの発生後にARCnが障害アーカイブ先への再アーカイブを試行するかどうかと、その時期を指定します。REOPENは、OPENエラーのみでなく、すべてのエラーに適用されます。

REOPEN=nでは、ARCnが障害アーカイブ先の再オープンを試行するまでの最小秒数を設定します。nのデフォルト値は300秒です。値に0(ゼロ)を指定すると、REOPEN属性はオフになり、ARCnは障害発生後にアーカイブを試行しません。REOPENキーワードを指定しない場合、ARCnはエラー発生後にアーカイブ先を再オープンしません。

REOPENを使用して、ARCnが再接続とアーカイブ・ログ転送を試行する回数を指定することはできません。REOPENは成功または失敗で終了します。

OPTIONALアーカイブ先にREOPENを指定すると、データベースはエラーがある場合にオンライン・ログを上書きできます。MANDATORYのアーカイブ先にREOPENを指定すると、正常にアーカイブできない場合に本番データベースの機能が停止します。この状況では、次の方法を検討してください。

REOPENキーワードを使用する場合は、次の点に注意してください。

ARCHIVELOGプロセスによって生成されるトレース出力の制御

バックグラウンド・プロセスは適宜、トレース・ファイルに情報を書き込みます。(詳細は、「トレース・ファイルおよびアラート・ログを使用したエラーの監視」を参照してください。)ARCHIVELOGプロセスの場合は、トレース・ファイルに書き込む出力を制御できます。制御するには、LOG_ARCHIVE_TRACE初期化パラメータを設定してトレース・レベルを指定します。設定可能な値は、次のとおりです。

トレース・レベル  意味 

アーカイブ・ログのトレースは出力されません。これはデフォルトです。 

REDOログ・ファイルのアーカイブを追跡します。 

アーカイブ・ログのアーカイブ先ごとにアーカイブ状態を追跡します。 

アーカイブ操作のフェーズを追跡します。 

アーカイブ・ログのアーカイブ先のアクティビティを追跡します。 

16 

アーカイブ・ログのアーカイブ先の詳細アクティビティを追跡します。 

32 

アーカイブ・ログのアーカイブ先パラメータの変更を追跡します。 

64 

ARCnプロセスの状態のアクティビティを追跡します。 

128 

FAL(フェッチ・アーカイブ・ログ)サーバー関連のアクティビティを追跡します。 

256 

将来のリリースでサポートされる予定です。 

512 

非同期のLGWRアクティビティを追跡します。 

1024 

RFS物理クライアントを追跡します。 

2048 

ARCn/RFSハートビートを追跡します。 

4096 

リアルタイム適用を追跡します。 

8192 

REDO適用アクティビティ(メディア・リカバリまたはフィジカル・スタンバイ)を追跡します。 

パラメータ値として、必要な各トレース・レベルの合計を設定することにより、トレース・レベルを組み合せることができます。たとえば、LOG_ARCHIVE_TRACE=12に設定すると、トレース・レベル8および4の出力が生成されます。また、プライマリ・データベースとスタンバイ・データベースには、異なる値を設定できます。

LOG_ARCHIVE_TRACEパラメータのデフォルト値は0(ゼロ)です。このレベルでは、エラー条件が発生すると、ARCHIVELOGプロセスによって適切なアラートおよびトレース・エントリが生成されます。

このパラメータの値は、ALTER SYSTEM文で動的に変更できます。データベースはマウントされ、オープンしていないことが必要です。次に例を示します。

ALTER SYSTEM SET LOG_ARCHIVE_TRACE=12;

この方法で行った変更は、次回のアーカイブ操作の開始時に有効になります。

関連項目:

このパラメータをスタンバイ・データベースで使用する方法については、『Oracle Data Guard概要および管理』を参照してください。 

アーカイブREDOログに関する情報の表示

アーカイブREDOログに関する情報を表示するには、動的パフォーマンス・ビューまたはARCHIVE LOG LISTコマンドを使用します。

この項の内容は、次のとおりです。

アーカイブREDOログ・ビュー

アーカイブREDOログに関して役立つ情報を含む動的パフォーマンス・ビューがいくつかあります。次の表に要約を示します。

動的パフォーマンス・ビュー  説明 

V$DATABASE  

データベースがARCHIVELOGモードとNOARCHIVELOGモードのいずれであるか、およびMANUAL(アーカイブ・モード)が指定されているかどうかが表示されます。 

V$ARCHIVED_LOG  

制御ファイルに格納されたアーカイブ・ログ履歴情報が表示されます。リカバリ・カタログを使用している場合は、RC_ARCHIVED_LOGビューにも同様の情報が含まれます。 

V$ARCHIVE_DEST  

現行インスタンス、すべてのアーカイブ先、各アーカイブ先の現行の値、モードおよび状態が表示されます。 

V$ARCHIVE_PROCESSES  

インスタンスの各アーカイブ・プロセスの状態情報が表示されます。 

V$BACKUP_REDOLOG  

アーカイブ・ログのバックアップ情報が含まれます。リカバリ・カタログを使用している場合は、RC_BACKUP_REDOLOGビューにも同様の情報が含まれます。 

V$LOG  

データベースのREDOログ・グループをすべて表示し、その中でアーカイブする必要があるグループを示します。 

V$LOG_HISTORY  

アーカイブ済ログや各アーカイブ・ログのSCN範囲などのログ履歴情報が含まれます。 

たとえば、次の問合せでは、アーカイブする必要があるREDOログ・グループが表示されます。

SELECT GROUP#, ARCHIVED
   FROM SYS.V$LOG;

GROUP#     ARC
--------   ---
       1   YES
       2   NO

現行のアーカイブ・モードを確認するには、V$DATABASEビューを問い合せます。

SELECT LOG_MODE FROM SYS.V$DATABASE;

LOG_MODE
------------
NOARCHIVELOG

関連項目:

動的パフォーマンス・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 

ARCHIVE LOG LISTコマンド

SQL*PlusコマンドのARCHIVE LOG LISTを使用して、接続されているインスタンスのアーカイブ情報を表示します。次に例を示します。

SQL> ARCHIVE LOG LIST

Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            D:¥oracle¥oradata¥IDDB2¥archive
Oldest online log sequence     11160
Next log sequence to archive   11163
Current log sequence           11163

この表示は、現行インスタンスのアーカイブREDOログの設定に関して必要なすべての情報を示します。


戻る 次へ
Oracle
Copyright © 2001, 2008, Oracle Corporation.
All Rights Reserved.
目次
目次
索引
索引