ヘッダーをスキップ
Oracle® Database管理者ガイド
11gリリース2 (11.2)
B56301-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

アーカイブREDOログの概要

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

アーカイブREDOログ・ファイルは、REDOログ・グループの書込み済メンバーのいずれかのコピーです。REDOログ・グループの同一メンバーのREDOエントリ、および一意のログ順序番号が含まれています。たとえば、REDOログを多重化しており、グループ1に同一のメンバー・ファイルa_log1b_log1が含まれている場合、アーカイバ・プロセス(ARCn)によってこれらのメンバー・ファイルのうちの1つがアーカイブされます。a_log1が破損した場合でも、ARCnは同一のb_log1をアーカイブできます。アーカイブREDOログには、アーカイブを有効にした後に作成されたすべてのグループのコピーが含まれます。

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

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

  • データベースのリカバリ

  • スタンバイ・データベースの更新

  • LogMinerユーティリティを使用したデータベースの履歴情報の取得


    関連項目:

    アーカイブREDOログの使用方法は、次のマニュアルを参照してください。
    • 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

    • スタンバイ・データベースの設定とメンテナンスは、『Oracle Data Guard概要および管理』を参照してください。

    • LogMinerのPL/SQLパッケージの使用方法は、『Oracle Databaseユーティリティ』を参照してください。


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

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

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

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

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

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

NOARCHIVELOGモードでは、オンラインでの表領域のバックアップを実行できず、また、データベースがARCHIVELOGモードだった際に作成したオンラインの表領域バックアップも使用できません。NOARCHIVELOGモードで運用しているデータベースをリストアする場合、使用できるバックアップは、データベースのクローズ中に作成したデータベース全体のバックアップのみです。そのため、データベースをNOARCHIVELOGモードで稼働する場合は、定期的かつ頻繁にデータベース全体のバックアップを実行する必要があります。

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

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

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

  • データベースのバックアップ、オンラインREDOログおよびアーカイブREDOログ・ファイルが揃っていると、オペレーティング・システムやディスクに障害が発生しても、コミットされたすべてのトランザクションをリカバリできることが保証されます。

  • アーカイブ・ログを使用可能にしておく場合、データベースがオープンされていて、システムが正常に使用できるときに実行したバックアップを使用できます。

  • オリジナル・データベースのアーカイブREDOログを絶えずスタンバイ・データベースに適用することで、スタンバイをオリジナルとともに最新の状態に保つことができます。

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

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

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

図13-1の説明が続きます。
「図13-1 ARCHIVELOGモードでのREDOログ・ファイルの使用」の説明


ヒント:

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

アーカイブの制御

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

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

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

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

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

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

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

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

    SHUTDOWN IMMEDIATE
    

    データベースがオープンされている場合は、アーカイブ・モードを切り替える前にクローズし、対応するインスタンスを停止する必要があります。メディア・リカバリを必要とするデータファイルがある場合は、モードを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管理およびデプロイメント・ガイド』を参照してください。

手動アーカイブの実行

「ARCHIVELOGモードによるデータベースの実行」で説明したように、通常は、自動アーカイブの方が便利で効率的です。ただし、データベースの構成は手動アーカイブでのみ実行できます。データベースを手動アーカイブ・モードで操作するには、「データベース・アーカイブ・モードの変更」で説明した手順に従いますが、手順5ALTER DATABASE文を次の文で置き換えます。

ALTER DATABASE ARCHIVELOG MANUAL;

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

ALTER SYSTEM ARCHIVE LOG ALL;

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

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

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

LOG_ARCHIVE_MAX_PROCESSES初期化パラメータは、データベースが最初に起動するARCnプロセスの数を指定します。デフォルトのプロセス数は4です。

追加のARCnプロセスの起動に伴う実行時のオーバーヘッドを回避するには、LOG_ARCHIVE_MAX_PROCESSES初期化パラメータを設定して、インスタンス起動時に開始するARCnプロセスの数(最大30)を指定できます。LOG_ARCHIVE_MAX_PROCESSESパラメータは動的で、ALTER SYSTEM文を使用して変更できます。

次の文は、データベースが起動時に6つのARCnプロセスを起動するようにデータベースを構成します。

ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=6;

また、この文は現在実行中のインスタンスにただちに影響します。ここでは現在実行されているARCnプロセスの数を増加または減少させて6にします。

アーカイブ先の指定

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

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

アーカイブ先の初期化パラメータの設定

REDOログのアーカイブ先を単一の場所にするか、または複数の場所にするかを選択できます。アーカイブ先は、ローカル(ローカル・ファイル・システムまたはOracle Automatic Storage Management(Oracle ASM)ディスク・グループ内)またはリモート(スタンバイ・データベース上)を選択できます。複数の場所にアーカイブする場合は、一杯になった各REDOログ・ファイルのコピーが各アーカイブ先に書き込まれます。これらの冗長コピーは、アーカイブ先のいずれかで障害が発生した場合でもアーカイブ・ログを常に使用可能にするのに役立ちます。

単一の場所にアーカイブするには、LOG_ARCHIVE_DEST初期化パラメータを使用してアーカイブ先を指定します。複数の場所にアーカイブするには、LOG_ARCHIVE_DEST_n初期化パラメータを使用して2箇所以上の場所にアーカイブするか、またはLOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DEST初期化パラメータを使用してプライマリおよびセカンダリのアーカイブ先にのみアーカイブすることを選択できます。

ローカル・アーカイブ先の場合、ローカル・ファイル・システムまたはOracle ASMディスク・グループ以外に、高速リカバリ領域にアーカイブできます。データベースは高速リカバリ領域を使用して、バックアップおよびリカバリに関連する様々なファイルを格納し、それらのディスク領域を自動的に管理します。高速リカバリ領域の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

通常、アーカイブ・ログのアーカイブ先はデータベース計画で決定し、データベースのインストール時にアーカイブ先の初期化パラメータを設定します。ただし、ALTER SYSTEMコマンドを使用して、データベースの実行後にアーカイブ先を動的に追加または変更できます。アーカイブ先の変更は、次のログ・スイッチ(自動または手動)で有効になります。

次の表にアーカイブ先の選択肢の要約を示します。この後の各項で、詳細を説明します。

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

説明:

nは、1から31の整数です。アーカイブ先の1から10はローカルまたはリモートの場所として使用可能です。11から31はリモートのアーカイブ先としてのみ使用可能です。

ローカルまたはリモート LOG_ARCHIVE_DEST_1 = 'LOCATION = /disk1/arc'

LOG_ARCHIVE_DEST_2 = 'LOCATION=/disk2/arc'

LOG_ARCHIVE_DEST_3 = 'SERVICE=standby1'

2 LOG_ARCHIVE_DESTおよび

LOG_ARCHIVE_DUPLEX_DEST

ローカルのみ LOG_ARCHIVE_DEST = '/disk1/arc'

LOG_ARCHIVE_DUPLEX_DEST ='/disk2/arc'


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

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

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

キーワード 指定内容
LOCATION ローカル・ファイル・システムの位置またはOracle ASMディスク・グループ LOG_ARCHIVE_DEST_n = 'LOCATION=/disk1/arc'

LOG_ARCHIVE_DEST_n = 'LOCATION=+DGROUP1/orcl/arc_1'

LOCATION 高速リカバリ領域 LOG_ARCHIVE_DEST_n = 'LOCATION=USE_DB_RECOVERY_FILE_DEST'
SERVICE Oracle Netのサービス名を介したリモート・アーカイブ。 LOG_ARCHIVE_DEST_n = 'SERVICE=standby1'

LOCATIONキーワードを使用する場合は、次のいずれかを指定します。

  • オペレーティング・システムのローカル・ファイル・システムの有効なパス名

  • Oracle ASMディスク・グループ

  • 高速リカバリ領域を示すキーワードUSE_DB_RECOVERY_FILE_DEST

SERVICEを指定した場合、Oracle Netがスタンバイ・データベースの接続記述子に解決できるネット・サービス名を提供します。この接続記述子には、リモート・データベースへの接続に必要な情報が含まれています。

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

  1. LOG_ARCHIVE_DEST_n初期化パラメータを設定し、1から31のアーカイブ先を指定します。たとえば、次のように入力します。

    LOG_ARCHIVE_DEST_1 = 'LOCATION = /disk1/archive'
    LOG_ARCHIVE_DEST_2 = 'LOCATION = /disk2/archive'
    LOG_ARCHIVE_DEST_3 = 'LOCATION = +RECOVERY/orcl/arc_3'
    

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

    LOG_ARCHIVE_DEST_4 = 'SERVICE = standby1'
    
  2. オプションで、スレッド番号をファイル名の一部に含めるために%tを、ログ順序番号を含めるために%sを、RESETLOGS ID (ub4で表されるタイムスタンプ値)を含めるために%rを使用して、LOG_ARCHIVE_FORMAT初期化パラメータを設定します。ファイル名の左に0(ゼロ)を埋め込むには、大文字(%T%Sおよび%R)を使用します。


    注意:

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

    データベースのインカネーションは、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. LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTパラメータにアーカイブ先を指定します(ALTER SYSTEM文を使用して、LOG_ARCHIVE_DUPLEX_DESTを動的に指定することもできます)。たとえば、次のように入力します。

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


注意:

高速リカバリ領域を構成し(DB_RECOVERY_FILE_DESTおよびDB_RECOVERY_FILE_DEST_SIZEパラメータを設定)、ローカル・アーカイブ先を指定しない場合、データベースによって自動的に高速リカバリ領域はローカル・アーカイブ先として選択され、LOG_ARCHIVE_DEST_1USE_DB_RECOVERY_FILE_DESTに設定されます。


警告:

アーカイブ・ログのアーカイブ先に常に十分なディスク領域があることを確認する必要があります。データベースがログ・ファイルをアーカイブする際にディスクが一杯であるというエラーが発生すると、致命的なエラーとなり、データベースが応答しなくなります。アラート・ログでディスクが一杯であるというメッセージを確認できます。



関連項目:

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

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

  • ネット・サービス名および接続記述子についての説明は、『Oracle Database Net Services管理者ガイド』を参照してください。

  • 高速リカバリ領域の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。


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

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

  • Valid/Invalid: ディスクの位置またはサービス名情報が指定されているかどうか、およびそれらが有効かどうかを示します。

  • Enabled/Disabled: 位置の使用可能状態と、データベースがアーカイブ先を使用できるかどうかを示します。

  • Active/Inactive: アーカイブ先へのアクセスに問題があったかどうかを示します。

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

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

  • ENABLEは、アーカイブ先としてデータベースが使用できることを示します。

  • DEFERは、その位置が一時的に使用禁止になっていることを示します。

  • ALTERNATEは、代替アーカイブ先を示します。代替アーカイブ先の使用可能状態はDEFERです。その親アーカイブ先に障害が発生すると、代替アーカイブ先の使用可能状態はENABLEになります。ALTERNATEは、LOG_ARCHIVE_DEST_11からLOG_ARCHIVE_DEST_31のアーカイブ先には指定できません。

代替アーカイブ先の指定

別のアーカイブ先に障害が発生した場合にのみ、ある場所がアーカイブ先になるように指定する場合は、その場所を代替アーカイブ先にできます。ローカルとリモート両方のアーカイブ先を代替アーカイブ先にできます。次の例では、LOG_ARCHIVE_DEST_4LOG_ARCHIVE_DEST_3の代替アーカイブ先になります。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = 'LOCATION=/disk4/arch';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = 'LOCATION=/disk3/arch MAX_FAILURE=1
   ALTERNATE=LOG_ARCHIVE_DEST_4';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_4=ALTERNATE;

SQL> SELECT dest_name, status, destination FROM v$archive_dest;
 
DEST_NAME               STATUS    DESTINATION
----------------------- --------- ----------------------------------------------
LOG_ARCHIVE_DEST_1      VALID     /disk1/arch
LOG_ARCHIVE_DEST_2      VALID     /disk2/arch
LOG_ARCHIVE_DEST_3      VALID     /disk3/arch
LOG_ARCHIVE_DEST_4      ALTERNATE /disk4/arch

ログ転送モードの概要

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

通常転送モード

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

スタンバイ転送モード

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


注意:

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


関連項目:

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

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


アーカイブ先の障害管理

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

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

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

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

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

  • アーカイブ先としてMANDATORY属性を指定しないと、OPTIONALが指定されます。

  • ローカル・アーカイブ先を少なくとも1つは指定する必要があります。この場合は、OPTIONALまたはMANDATORYを宣言できます。

  • MANDATORY属性は、LOG_ARCHIVE_DEST_1からLOG_ARCHIVE_DEST_10のアーカイブ先にのみ指定できます。

  • LOG_ARCHIVE_MIN_SUCCEED_DESTの最小値は1なので、LOG_ARCHIVE_MIN_SUCCEED_DEST=nの値を指定すると、Oracle Databaseでは、少なくとも1つのローカル・アーカイブ先がMANDATORYとして扱われます。

  • LOG_ARCHIVE_MIN_SUCCEED_DESTには、アーカイブ先の数を超える値や、MANDATORYのアーカイブ先の数とOPTIONALのローカル・アーカイブ先の数との合計を超える値は指定できません。

  • MANDATORYのアーカイブ先にDEFERを指定した場合で、アーカイブ・ログがスタンバイ・サイトに転送されないままオンライン・ログが上書きされるときは、ログを手動でスタンバイ・サイトに転送する必要があります。

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

  • LOG_ARCHIVE_DESTによって宣言されたアーカイブ先は必須です。

  • LOG_ARCHIVE_DUPLEX_DESTによって宣言されたアーカイブ先は、LOG_ARCHIVE_MIN_SUCCEED_DEST = 1であればオプション、LOG_ARCHIVE_MIN_SUCCEED_DEST = 2であれば必須です。

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

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

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

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

表13-1 使用例1のLOG_ARCHIVE_MIN_SUCCEED_DESTの値

意味

1

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

2

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

3

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

4以上

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


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

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

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

  • MANDATORYのアーカイブ先は2つ指定されている。

  • OPTIONALのアーカイブ先は2つ指定されている。

  • アーカイブ先は、いずれもスタンバイ・データベースではない。

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

表13-2 使用例2のLOG_ARCHIVE_MIN_SUCCEED_DESTの値

意味

1

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

2

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

3

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

4

データベースは、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キーワードを使用する場合は、次の点に注意してください。

  • ARCnは、ログ・ファイルの先頭からアーカイブ操作を開始する場合にのみ、アーカイブ先を再オープンし、実行中の操作の途中で再オープンすることはありません。ARCnは、常に先頭からログ・コピーを再試行します。

  • 特定の時間またはデフォルト設定でREOPENを指定した場合、ARCnは記録されたエラー発生時刻からREOPEN間隔が経過した時刻が現在時刻より前かどうかをチェックします。現在時刻より前であれば、ARCnはログ・コピーを再試行します。

  • REOPEN句は、ACTIVE=TRUEのアーカイブ先状態に影響を及ぼします。VALIDおよびENABLED状態は変化しません。

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

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

トレース・レベル 意味
0 アーカイブ・ログのトレースは出力されません。これがデフォルトです。
1 REDOログ・ファイルのアーカイブを追跡します。
2 アーカイブ・ログのアーカイブ先ごとにアーカイブ状態を追跡します。
4 アーカイブ操作のフェーズを追跡します。
8 アーカイブ・ログのアーカイブ先のアクティビティを追跡します。
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ログの設定に関して必要なすべての情報を示します。

  • このデータベースは現在ARCHIVELOGモードで操作されています。

  • 自動アーカイブは使用可能です。

  • アーカイブREDOログのアーカイブ先は、D:\oracle\oradata\IDDB2\archiveです。

  • 一杯になったREDOログ・グループのうち、最も古いものの順序番号は11160です。

  • 一杯になったREDOログ・グループのうち、次にアーカイブされるものの順序番号は11163です。

  • 現行のREDOログ・ファイルの順序番号は11163です。


関連項目:

ARCHIVE LOG LISTコマンドの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。