この章の内容は、次のとおりです。
関連項目:
|
Oracle Databaseでは、書込み済のREDOログ・ファイル・グループを、アーカイブREDOログと総称される1つ以上のオフラインの保存先に保存できます。REDOログ・ファイルをアーカイブREDOログ・ファイルに変更するプロセスは、アーカイブと呼ばれます。このプロセスを実行できるのは、データベースがARCHIVELOG
モードで動作している場合のみです。自動または手動アーカイブを選択できます。
アーカイブREDOログ・ファイルは、REDOログ・グループの書込み済メンバーのいずれかのコピーです。REDOログ・グループの同一メンバーのREDOエントリ、および一意のログ順序番号が含まれています。たとえば、REDOログを多重化しており、グループ1に同一のメンバー・ファイルa_log1
とb_log1
が含まれている場合、アーカイバ・プロセス(ARCn)によってこれらのメンバー・ファイルのうちの1つがアーカイブされます。a_log1
が破損した場合でも、ARCnは同一のb_log1
をアーカイブできます。アーカイブREDOログには、アーカイブを有効にした後に作成されたすべてのグループのコピーが含まれます。
データベースがARCHIVELOG
モードで稼働しているときは、REDOログ・グループがアーカイブされないかぎり、ログ・ライター・プロセス(LGWR)はREDOログ・グループを再利用(上書き)できません。自動アーカイブが使用可能な場合は、バックグラウンド・プロセスARCnによってアーカイブ操作が自動的に実行されます。データベースは必要に応じて複数のアーカイバ・プロセスを起動して、一杯になったREDOログのアーカイブが遅れないようにします。
アーカイブREDOログは、次の操作に使用できます。
データベースのリカバリ
スタンバイ・データベースの更新
LogMinerユーティリティを使用したデータベースの履歴情報の取得
関連項目: アーカイブREDOログの使用方法は、次のマニュアルを参照してください。
|
ここでは、データベースをNOARCHIVELOG
モードまたはARCHIVELOG
モードで稼働する際の考慮点について説明します。この項の内容は、次のとおりです。
一杯になったREDOログ・ファイル・グループをアーカイブ可能にするかどうかは、データベース上で実行されているアプリケーションの可用性と信頼性の要件によって決まります。ディスク障害の発生時にもデータベース内のデータが失われないようにする場合は、ARCHIVELOG
モードを使用します。一杯になったREDOログ・ファイルをアーカイブすると、管理作業が増えます。
データベースをNOARCHIVELOG
モードで実行すると、REDOログはアーカイブされません。データベースの制御ファイルは、グループが一杯になってもアーカイブする必要がないことを示します。したがって、ログ・スイッチが発生して、一杯になったグループがアクティブでなくなると、そのグループはLGWRで再利用できるようになります。
NOARCHIVELOG
モードでは、データベースはインスタンス障害からは保護されますが、メディア障害からは保護されません。オンラインREDOログ・グループに格納されているデータベースへの最新の変更のみをインスタンスのリカバリに使用できます。データベースがNOARCHIVELOG
モードのときにメディア障害が発生した場合、最後にデータベース全体のバックアップを行った時点までのデータベースをリストアできます。そのバックアップ以降のトランザクションはリカバリできません。
NOARCHIVELOG
モードでは、オンラインでの表領域のバックアップを実行できず、また、データベースがARCHIVELOG
モードだった際に作成したオンラインの表領域バックアップも使用できません。NOARCHIVELOG
モードで運用しているデータベースをリストアする場合、使用できるバックアップは、データベースのクローズ中に作成したデータベース全体のバックアップのみです。そのため、データベースをNOARCHIVELOG
モードで稼働する場合は、定期的かつ頻繁にデータベース全体のバックアップを実行する必要があります。
データベースをARCHIVELOG
モードで実行する場合は、REDOログのアーカイブを使用可能にします。データベースの制御ファイルは、一杯になったREDOログ・ファイルのグループがアーカイブされるまでは、LGWRでこのグループを再使用できないことを示します。一杯になったグループは、ログ・スイッチの発生直後からアーカイブに使用できます。
一杯になったグループのアーカイブには、次のような利点があります。
データベースのバックアップ、オンラインREDOログおよびアーカイブREDOログ・ファイルが揃っていると、オペレーティング・システムやディスクに障害が発生しても、コミットされたすべてのトランザクションをリカバリできることが保証されます。
アーカイブ・ログを使用可能にしておく場合、データベースがオープンされていて、システムが正常に使用できるときに実行したバックアップを使用できます。
オリジナル・データベースのアーカイブREDOログを絶えずスタンバイ・データベースに適用することで、スタンバイをオリジナルとともに最新の状態に保つことができます。
一杯になったREDOログ・ファイルを自動的にアーカイブするようにインスタンスを構成する方法と、手動でアーカイブする方法があります。通常は、自動アーカイブの方が便利で効率的です。図13-1は、アーカイバ・プロセス(この図ではARC0)によって、いっぱいになったREDOログ・ファイルがデータベースのアーカイブREDOログに書き込まれる過程を示しています。
分散データベース内のデータベースをすべてARCHIVELOG
モードで操作している場合は、調整式分散データベース・リカバリを実行できます。ただし、分散データベース内のデータベースのいずれかがNOARCHIVELOG
モードで操作されている場合、(すべてのデータベースの整合性を維持するために)グローバルな分散データベースのリカバリは、NOARCHIVELOG
モードで操作しているデータベース全体の最新のバックアップによって制限されます。
ヒント: アーカイブREDOログ・ファイルとそれに対応するデータベース・バックアップは、ローカル・ディスクからテープなどの永続的なオフライン記憶メディアに移動しておくことをお薦めします。アーカイブ・ログは主としてデータベース・リカバリに使用されるため、プライマリ・データベースに障害が発生した場合でも、これらのログが安全であることを保証する必要があります。 |
この項では、データベースのアーカイブ・モードを設定する方法と、アーカイブ・プロセスを制御する方法について説明します。次の内容について説明します。
関連項目: アーカイブ・モードの制御に関する追加情報は、オペレーティング・システム固有のOracleマニュアルを参照してください。 |
初期のアーカイブ・モードは、CREATE DATABASE
文でデータベース作成の一部として設定します。多くの場合、このプロセスで生成されるREDO情報はアーカイブする必要がないため、データベース作成時にはNOARCHIVELOG
モード(デフォルト)を使用できます。初期のアーカイブ・モードを変更するかどうかは、データベースの作成後に決定します。
ARCHIVELOG
モードを指定した場合は、アーカイブREDOログ・ファイルのアーカイブ先を初期化パラメータで指定する必要があります(「アーカイブ先の初期化パラメータの設定」を参照)。
データベース・アーカイブ・モードを変更するには、ALTER DATABASE
文でARCHIVELOG
句またはNOARCHIVELOG
句を使用します。また、データベース・アーカイブ・モードを変更するには、管理者権限(AS SYSDBA
)でデータベースに接続する必要があります。
次の手順は、データベース・アーカイブ・モードをNOARCHIVELOG
からARCHIVELOG
に切り替えます。
データベース・インスタンスを停止します。
SHUTDOWN IMMEDIATE
データベースがオープンされている場合は、アーカイブ・モードを切り替える前にクローズし、対応するインスタンスを停止する必要があります。メディア・リカバリを必要とするデータファイルがある場合は、モードをARCHIVELOG
からNOARCHIVELOG
に変更できません。
データベースをバックアップします。
データベースに重要な変更をする前に、データベースのデータを保護するため必ずバックアップを作成してください。このバックアップは、NOARCHIVELOG
モードでのデータベースの最終バックアップとなり、ARCHIVELOG
モードへの切替え中に問題が生じた場合に使用できます。データベース・バックアップの作成については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
初期化パラメータ・ファイルを編集して、アーカイブREDOログ・ファイルのアーカイブ先を初期化パラメータで指定します(「アーカイブ先の初期化パラメータの設定」を参照)。
新しいインスタンスを起動し、データベースをマウントします。オープンはしません。
STARTUP MOUNT
アーカイブを使用可能または使用禁止にするには、データベースをマウントして、オープンしないようにする必要があります。
データベース・アーカイブ・モードを変更します。通常の操作を実行するためにデータベースをオープンします。
ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
データベースを停止します。
SHUTDOWN IMMEDIATE
データベースをバックアップします。
データベースのアーカイブ・モードを変更すると、制御ファイルが更新されます。変更後は、すべてのデータベース・ファイルと制御ファイルのバックアップを作成する必要があります。以前のバックアップはNOARCHIVELOG
モードで作成されているため、使用できなくなります。
関連項目: Real Application Clusters使用時のアーカイブ・モード切替えの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 |
「ARCHIVELOGモードによるデータベースの実行」で説明したように、通常は、自動アーカイブの方が便利で効率的です。ただし、データベースの構成は手動アーカイブでのみ実行できます。データベースを手動アーカイブ・モードで操作するには、「データベース・アーカイブ・モードの変更」で説明した手順に従いますが、手順5
のALTER
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
コマンドを使用して、データベースの実行後にアーカイブ先を動的に追加または変更できます。アーカイブ先の変更は、次のログ・スイッチ(自動または手動)で有効になります。
次の表にアーカイブ先の選択肢の要約を示します。この後の各項で、詳細を説明します。
LOG_ARCHIVE_DEST_
n
パラメータ(nは1から31の整数)を使用して、1から31の異なるアーカイブ・ログのアーカイブ先を指定します。末尾に番号が付いた各パラメータによって、特定のアーカイブ先を一意に識別します。
LOG_ARCHIVE_DEST_
n
の位置は、次の表に示すキーワードを使用して指定します。
キーワード | 指定内容 | 例 |
---|---|---|
LOCATION |
ローカル・ファイル・システムの位置またはOracle ASMディスク・グループ | LOG_ARCHIVE_DEST_ n = 'LOCATION=/disk1/arc'
|
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ログのアーカイブ先を設定する手順は、次のとおりです。
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'
オプションで、スレッド番号をファイル名の一部に含めるために%t
を、ログ順序番号を含めるために%s
を、RESETLOGS ID (ub4で表されるタイムスタンプ値)を含めるために%r
を使用して、LOG_ARCHIVE_FORMAT
初期化パラメータを設定します。ファイル名の左に0(ゼロ)を埋め込むには、大文字(%T
、%S
および%R
)を使用します。
注意: COMPATIBLE 初期化パラメータが10.0.0以上に設定されている場合は、LOG_ARCHIVE_FORMAT パラメータを指定するときに、リセットログID(%r )の指定が必要です。このパラメータのデフォルトは、オペレーティング・システムによって異なります。
データベースのインカネーションは、 |
次に、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
パラメータを使用して1次アーカイブ先を指定し、必要に応じてLOG_ARCHIVE_DUPLEX_DEST
で2次アーカイブ先を指定します。アーカイブ先は、ローカルである必要があります。データベースでは、REDOログはどちらかのパラメータで指定したすべてのアーカイブ先ディレクトリにアーカイブされます。
方法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'
方法1の手順2
で説明したように、LOG_ARCHIVE_FORMAT初期化パラメータを設定します。
注意: 高速リカバリ領域を構成し(DB_RECOVERY_FILE_DEST およびDB_RECOVERY_FILE_DEST_SIZE パラメータを設定)、ローカル・アーカイブ先を指定しない場合、データベースによって自動的に高速リカバリ領域はローカル・アーカイブ先として選択され、LOG_ARCHIVE_DEST_1 はUSE_DB_RECOVERY_FILE_DEST に設定されます。 |
警告: アーカイブ・ログのアーカイブ先に常に十分なディスク領域があることを確認する必要があります。データベースがログ・ファイルをアーカイブする際にディスクが一杯であるというエラーが発生すると、致命的なエラーとなり、データベースが応答しなくなります。アラート・ログでディスクが一杯であるというメッセージを確認できます。 |
関連項目:
|
各アーカイブ先は次のような可変特性を持っており、これらの特性によってその状態が決まります。
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_4
がLOG_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つのモードがあります。ノーマル転送では、ファイルはローカル・ディスクに転送されます。スタンバイ転送では、ファイルはネットワークを介してローカルまたはリモートのスタンバイ・データベースに転送されます。
アーカイブ先で発生した障害が、自動アーカイブ・モードで操作している場合のエラー原因となることがあります。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つの |
2 |
データベースは、最低2つの |
3 |
データベースは、 |
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 |
データベースは、この値を無視して |
2 |
データベースは、 |
3 |
データベースは、最低1つの |
4 |
データベースは、 |
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プロセスの場合は、トレース・ファイルに書き込む出力を制御できます。制御するには、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ログに関する情報を表示するには、動的パフォーマンス・ビューまたはARCHIVE
LOG
LIST
コマンドを使用します。
この項の内容は次のとおりです。
アーカイブ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リファレンス』を参照してください。 |
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ユーザーズ・ガイドおよびリファレンス』 を参照してください。 |