12 アーカイブREDOログ・ファイルの管理
アーカイブREDOログ・ファイルは、NOARCHIVELOG
またはARCHIVELOG
モードの選択やアーカイブ先の指定などのタスクを実行することで管理します。
- アーカイブREDOログの概要
Oracle Databaseでは、書込み済のREDOログ・ファイル・グループを、アーカイブREDOログと総称される1つ以上のオフラインの保存先に保存できます。 - NOARCHIVELOGモードとARCHIVELOGモードの選択
データベースをNOARCHIVELOG
モードとARCHIVELOG
モードのどちらで実行するかを選択する必要があります。 - アーカイブの制御
データベースのアーカイブ・モードを設定し、アーカイブ・プロセス数を調整できます。 - アーカイブ先の指定
REDOログをアーカイブする前に、アーカイブ先を指定し、アーカイブ先の様々な状態を理解する必要があります。 - ログ転送モードについて
アーカイブ・ログをアーカイブ先に転送する場合のモードには、ノーマル・アーカイブ転送およびスタンバイ転送という2つのモードがあります。ノーマル転送では、ファイルはローカル・ディスクに転送されます。スタンバイ転送では、ファイルはネットワークを介してローカルまたはリモートのスタンバイ・データベースに転送されます。 - アーカイブ先の障害管理
アーカイブ先で発生した障害が、自動アーカイブ・モードで操作している場合のエラー原因となることがあります。Oracle Databaseには、アーカイブ先の障害に関連する問題を最小限に抑えるためのプロシージャが用意されています。 - ARCHIVELOGプロセスによって生成されるトレース出力の制御
バックグラウンド・プロセスは適宜、トレース・ファイルに情報を書き込みます。ARCHIVELOGプロセスの場合は、トレース・ファイルに書き込む出力を制御できます。 - アーカイブREDOログに関する情報の表示
アーカイブREDOログに関する情報を表示するには、動的パフォーマンス・ビューまたはARCHIVE
LOG
LIST
コマンドを使用します。
関連項目:
-
Oracle Databaseサーバーによって作成および管理されるアーカイブREDOログの作成方法は、「Oracle Managed Filesの使用」を参照してください
-
Oracle Real Application Clusters環境でのアーカイブに固有の情報については、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
親トピック: Oracle Databaseの構造と記憶域
12.1 アーカイブREDOログの概要
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ログ・ファイルの使用方法は、次のマニュアルを参照してください。
-
スタンバイ・データベースの設定とメンテナンスは、『Oracle Data Guard概要および管理』を参照してください。
-
LogMinerのPL/SQLパッケージの使用方法は、『Oracle Databaseユーティリティ』を参照してください。
親トピック: アーカイブREDOログ・ファイルの管理
12.2 NOARCHIVELOGモードとARCHIVELOGモードの選択
データベースをNOARCHIVELOG
モードとARCHIVELOG
モードのどちらで実行するかを選択する必要があります。
一杯になったREDOログ・ファイル・グループをアーカイブ可能にするかどうかは、データベース上で実行されているアプリケーションの可用性と信頼性の要件によって決まります。ディスク障害の発生時にもデータベース内のデータが失われないようにする場合は、ARCHIVELOG
モードを使用します。一杯になったREDOログ・ファイルをアーカイブすると、管理作業が増えます。
- NOARCHIVELOGモードによるデータベースの実行
データベースをNOARCHIVELOG
モードで実行すると、REDOログはアーカイブされません。 - ARCHIVELOGモードによるデータベースの実行
データベースをARCHIVELOG
モードで実行する場合は、REDOログのアーカイブを使用可能にします。
親トピック: アーカイブREDOログ・ファイルの管理
12.2.1 NOARCHIVELOGモードによるデータベースの実行
データベースをNOARCHIVELOG
モードで実行すると、REDOログはアーカイブされません。
データベースの制御ファイルは、グループが一杯になってもアーカイブする必要がないことを示します。したがって、ログ・スイッチが発生して、一杯になったグループがアクティブでなくなると、そのグループはLGWRで再利用できるようになります。
NOARCHIVELOG
モードでは、データベースはインスタンス障害からは保護されますが、メディア障害からは保護されません。オンラインREDOログ・グループに格納されているデータベースへの最新の変更のみをインスタンスのリカバリに使用できます。データベースがNOARCHIVELOG
モードのときにメディア障害が発生した場合、最後にデータベース全体のバックアップを行った時点までのデータベースをリストアできます。そのバックアップ以降のトランザクションはリカバリできません。
NOARCHIVELOG
モードでは、オンラインでの表領域のバックアップを実行できず、また、データベースがARCHIVELOG
モードだった際に作成したオンラインの表領域バックアップも使用できません。NOARCHIVELOG
モードで運用しているデータベースをリストアする場合、使用できるバックアップは、データベースのクローズ中に作成したデータベース全体のバックアップのみです。そのため、データベースをNOARCHIVELOG
モードで稼働する場合は、定期的かつ頻繁にデータベース全体のバックアップを実行する必要があります。
12.2.2 ARCHIVELOGモードによるデータベースの実行
データベースをARCHIVELOG
モードで実行する場合は、REDOログのアーカイブを使用可能にします。
データベースの制御ファイルは、一杯になったREDOログ・ファイルのグループがアーカイブされるまでは、LGWRでこのグループを再使用できないことを示します。一杯になったグループは、ログ・スイッチの発生直後からアーカイブに使用できます。
一杯になったグループのアーカイブには、次のような利点があります。
-
データベースのバックアップ、オンラインREDOログおよびアーカイブREDOログ・ファイルが揃っていると、オペレーティング・システムやディスクに障害が発生しても、コミットされたすべてのトランザクションをリカバリできることが保証されます。
-
アーカイブ・ログを使用可能にしておく場合、データベースがオープンされていて、システムが正常に使用できるときに実行したバックアップを使用できます。
-
スタンバイに、元のデータベースのアーカイブREDOログ・ファイルを継続的に適用することにより、スタンバイ・データベースを元のデータベースに対して最新の状態に保つことができます。
一杯になったREDOログ・ファイルを自動的にアーカイブするようにインスタンスを構成する方法と、手動でアーカイブする方法があります。通常は、自動アーカイブの方が便利で効率的です。図12-1は、アーカイバ・プロセス(この図ではARC0)によって、一杯になったREDOログ・ファイルがデータベースのアーカイブREDOログに書き込まれる過程を示しています。
分散データベース内のデータベースをすべてARCHIVELOG
モードで操作している場合は、調整式分散データベース・リカバリを実行できます。ただし、分散データベース内のデータベースのいずれかがNOARCHIVELOG
モードで操作されている場合、(すべてのデータベースの整合性を維持するために)グローバルな分散データベースのリカバリは、NOARCHIVELOG
モードで操作しているデータベース全体の最新のバックアップによって制限されます。
ヒント:
アーカイブREDOログ・ファイルとそれに対応するデータベース・バックアップは、ローカル・ディスクからテープなどの永続的なオフライン記憶メディアに移動しておくことをお薦めします。アーカイブ・ログは主としてデータベース・リカバリに使用されるため、プライマリ・データベースに障害が発生した場合でも、これらのログが安全であることを保証する必要があります。
12.3 アーカイブの制御
データベースのアーカイブ・モードを設定し、アーカイブ・プロセス数を調整できます。
- 初期データベース・アーカイブ・モードの設定
初期のアーカイブ・モードは、CREATE DATABASE
文でデータベース作成の一部として設定します。 - データベース・アーカイブ・モードの変更
データベース・アーカイブ・モードを変更するには、ALTER DATABASE
文でARCHIVELOG
句またはNOARCHIVELOG
句を使用します。 - 手動アーカイブの実行
通常は、自動アーカイブの方が便利で効率的です。ただし、データベースの構成は手動アーカイブでのみ実行できます。 - アーカイバ・プロセス数の調整
LOG_ARCHIVE_MAX_PROCESSES
初期化パラメータは、データベースが最初に起動するARCnプロセスの数を指定します。デフォルトのプロセス数は4です。
関連項目:
アーカイブ・モードの制御に関する追加情報は、オペレーティング・システム固有のOracleマニュアルを参照してください
親トピック: アーカイブREDOログ・ファイルの管理
12.3.1 初期データベース・アーカイブ・モードの設定
初期のアーカイブ・モードは、CREATE DATABASE
文でデータベース作成の一部として設定します。
多くの場合、このプロセスで生成されるREDO情報はアーカイブする必要がないため、データベース作成時にはNOARCHIVELOG
モード(デフォルト)を使用できます。初期のアーカイブ・モードを変更するかどうかは、データベースの作成後に決定します。
ARCHIVELOG
モードを指定した場合は、アーカイブREDOログ・ファイルのアーカイブ先を初期化パラメータで指定する必要があります(「アーカイブ先の初期化パラメータの設定」を参照)。
親トピック: アーカイブの制御
12.3.2 データベース・アーカイブ・モードの変更
データベース・アーカイブ・モードを変更するには、ALTER DATABASE
文でARCHIVELOG
句またはNOARCHIVELOG
句を使用します。
また、データベース・アーカイブ・モードを変更するには、管理者権限(AS SYSDBA
)でデータベースに接続する必要があります。
次のステップは、データベース・アーカイブ・モードをNOARCHIVELOG
からARCHIVELOG
に切り替えます。
親トピック: アーカイブの制御
12.3.3 手動アーカイブの実行
通常は、自動アーカイブの方が便利で効率的です。ただし、データベースの構成は手動アーカイブでのみ実行できます。
データベースを手動ARCHIVELOG
モードで操作している場合は、一杯になったREDOログ・ファイルの非アクティブ・グループをアーカイブしないと、データベース操作が一時的に停止する可能性があります。
データベースを手動アーカイブ・モードで操作するには:
-
「データベース・アーカイブ・モードの変更」で説明している手順に従いますが、
ALTER
DATABASE
文は次の文で置換します。ALTER DATABASE ARCHIVELOG MANUAL;
-
管理者権限を持つユーザーとして、データベースに接続します。
-
データベースがマウントされているか、オープンしていることを確認します。
-
手動アーカイブを実行するには、
ALTER SYSTEM
文でARCHIVE LOG
句を指定します。たとえば次の文は、アーカイブされていないREDOログ・ファイルをすべてアーカイブします。ALTER SYSTEM ARCHIVE LOG ALL;
手動アーカイブ・モードを使用している場合、アーカイブ先にスタンバイ・データベースは指定できません。
また、自動アーカイブが使用可能な場合でも、一杯になったREDOログ・メンバーの非アクティブ・グループを別の位置に再度アーカイブする場合などに手動アーカイブを使用できます。この場合は、手動アーカイブが完了していなくてもインスタンスではREDOログ・グループを再利用できるため、ファイルが上書きされる場合があります。このような場合は、アラート・ログにエラー・メッセージが書き込まれます。
関連トピック
親トピック: アーカイブの制御
12.3.4 アーカイバ・プロセス数の調整
LOG_ARCHIVE_MAX_PROCESSES
初期化パラメータは、データベースが最初に起動するARCnプロセスの数を指定します。デフォルトのプロセス数は4です。
追加のARCnプロセスの開始の実行時オーバーヘッドを回避するには:
-
LOG_ARCHIVE_MAX_PROCESSES
初期化パラメータを設定して、インスタンス起動時に最大30のARCnプロセスを開始することを指定します。
LOG_ARCHIVE_MAX_PROCESSES
パラメータは動的で、ALTER SYSTEM
文を使用して変更できます。
次の文は、データベースが起動時に6つのARCnプロセスを起動するようにデータベースを構成します。
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=6;
また、この文は現在実行中のインスタンスにただちに影響します。ここでは現在実行されているARCnプロセスの数を増加または減少させて6にします。
親トピック: アーカイブの制御
12.4 アーカイブ先の指定
REDOログをアーカイブする前に、アーカイブ先を指定し、アーカイブ先の様々な状態を理解する必要があります。
「アーカイブREDOログに関する情報の表示」に示す動的パフォーマンス・ビュー(V$)を使用して、必要なすべてのアーカイブ情報を参照できます。
- アーカイブ先の初期化パラメータの設定
REDOログのアーカイブ先を単一の場所にするか、または複数の場所にするかを選択できます。 - ログ・アーカイブ先グループでの代替アーカイブ先の拡張
ログ・アーカイブ先グループを使用して、代替アーカイブ先の数を拡張できます。 - アーカイブ先の状態の理解
複数の変数によって、アーカイブ先のステータスが決定されます。 - 代替アーカイブ先の指定
別のアーカイブ先に障害が発生した場合にのみ、ある場所がアーカイブ先になるように指定する場合は、その場所を代替アーカイブ先にできます。ローカルとリモート両方のアーカイブ先を代替アーカイブ先にできます。
親トピック: アーカイブREDOログ・ファイルの管理
12.4.1 アーカイブ先の初期化パラメータの設定
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 |
ここで: nは、1から31の整数です。アーカイブ先の1から10はローカルまたはリモートの場所として使用可能です。11から31はリモートのアーカイブ先としてのみ使用可能です。 |
ローカル/リモート |
|
2 |
|
ローカルのみ |
|
- 方法1: LOG_ARCHIVE_DEST_nパラメータの使用
LOG_ARCHIVE_DEST_
n
初期化パラメータを使用して、アーカイブ・ログの別のアーカイブ先を指定できます。 - 方法2: LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTの使用
最大2つのアーカイブ先ディレクトリを指定するには、LOG_ARCHIVE_DEST
パラメータを使用してプライマリ・アーカイブ先を指定し、必要に応じてLOG_ARCHIVE_DUPLEX_DEST
でセカンダリ・アーカイブ先を指定します。
親トピック: アーカイブ先の指定
12.4.1.1 方法1: LOG_ARCHIVE_DEST_nパラメータの使用
LOG_ARCHIVE_DEST_
n
初期化パラメータを使用して、アーカイブ・ログの別のアーカイブ先を指定できます。
LOG_ARCHIVE_DEST_
n
初期化パラメータ(nは1から31の整数)を設定して、1から31を指定します。末尾に番号が付いた各パラメータによって、特定のアーカイブ先を一意に識別します。
LOG_ARCHIVE_DEST_
n
の位置は、次の表に示すキーワードを使用して指定します。
キーワード | 意味 | 例 |
---|---|---|
|
ローカル・ファイル・システムの位置またはOracle ASMディスク・グループ |
|
|
高速リカバリ領域 |
|
|
Oracle Netのサービス名を介したリモート・アーカイブ。 |
|
LOCATION
キーワードを使用する場合は、次のいずれかを指定します。
-
オペレーティング・システムのローカル・ファイル・システムの有効なパス名
-
Oracle ASMディスク・グループ
-
高速リカバリ領域を示すキーワード
USE_DB_RECOVERY_FILE_DEST
SERVICE
を指定した場合、Oracle Netがスタンバイ・データベースの接続記述子に解決できるネット・サービス名を提供します。この接続記述子には、リモート・データベースへの接続に必要な情報が含まれています。
LOG_ARCHIVE_DEST_
n
初期化パラメータを使用してアーカイブREDOログ・ファイルのアーカイブ先を設定するステップは、次のとおりです。
LOG_ARCHIVE_FORMAT
初期化パラメータは無視される場合もあります。このパラメータ詳細は、『Oracle Databaseリファレンス』を参照してください。
親トピック: アーカイブ先の初期化パラメータの設定
12.4.1.2 方法2: LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTの使用
最大2つのアーカイブ先ディレクトリを指定するには、LOG_ARCHIVE_DEST
パラメータを使用して1次アーカイブ先を指定し、必要に応じてLOG_ARCHIVE_DUPLEX_DEST
で2次アーカイブ先を指定します。
アーカイブ先は、ローカルである必要があります。データベースでは、REDOログはどちらかのパラメータで指定したすべてのアーカイブ先ディレクトリにアーカイブされます。
方法2を使用するステップは、次のとおりです。
ノート:
高速リカバリ領域を構成し(DB_RECOVERY_FILE_DEST
およびDB_RECOVERY_FILE_DEST_SIZE
パラメータを設定)、ローカル・アーカイブ先を指定しない場合、データベースによって自動的に高速リカバリ領域はローカル・アーカイブ先として選択され、LOG_ARCHIVE_DEST_1
はUSE_DB_RECOVERY_FILE_DEST
に設定されます。
警告:
アーカイブ・ログのアーカイブ先に常に十分なディスク領域があることを確認する必要があります。データベースがログ・ファイルをアーカイブする際にディスクが一杯であるというエラーが発生すると、致命的なエラーとなり、データベースが応答しなくなります。アラート・ログでディスクが一杯であるというメッセージを確認できます。
関連項目:
-
REDOログのアーカイブ制御に使用される初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください
-
スタンバイ・アーカイブ先の指定に使用する
LOG_ARCHIVE_DEST_
n
初期化パラメータの使用方法は、『Oracle Data Guard概要および管理』を参照してください。この初期化パラメータには他にも指定できるキーワードがありますが、このマニュアルでは説明されていません。 -
ネット・サービス名および接続記述子についての説明は、『Oracle Database Net Services管理者ガイド』を参照してください。
-
高速リカバリ領域の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
親トピック: アーカイブ先の初期化パラメータの設定
12.4.2 ログ・アーカイブ先グループを使用した代替アーカイブ先の拡張
ログ・アーカイブ先グループを使用して、代替アーカイブ先の数を拡張できます。
- ログ・アーカイブ先グループについて
ログ・アーカイブ先グループで複数のアーカイブ先を指定し、グループ内のアーカイブ先に優先順位を付けることができます。複数のグループを指定して、データベースに対して可能なアーカイブ先の数を拡張できます。 - ログ・アーカイブ先グループの指定
LOG_ARCHIVE_DEST_n
初期化パラメータのGROUP
属性を使用して、ログ・アーカイブ先グループを指定します。
親トピック: アーカイブ先の指定
12.4.2.1 ログ・アーカイブ先グループについて
ログ・アーカイブ先グループで複数のアーカイブ先を指定し、グループ内のアーカイブ先に優先順位を付けることができます。複数のグループを指定して、データベースに対して可能なアーカイブ先の数を拡張できます。
ログ・アーカイブ先グループを指定するには、LOG_ARCHIVE_DEST_n
初期化パラメータのGROUP
属性を使用します。1つのグループに最大30のログ・アーカイブ先を含めることができます。各グループの1つのメンバーがアクティブであり、他のメンバーはアーカイブ先に障害が発生した場合に使用できます。アーカイブ先が非アクティブになった場合、Oracle Databaseはグループ内に使用可能なアーカイブ先が1つ以上あれば、そのアーカイブ先に切り替えます。PRIORITY
属性でアーカイブ先に優先順位を付けることで、最初に使用するアーカイブ先を指定できます。
ログ・アーカイブ先グループは、グループの作成時に指定されるグループ番号で参照されます。最大8つのグループを使用できます。グループ内のREDOデータをアーカイブする場所を指定するには、すべてのログ・アーカイブの保存先にSERVICE
属性を指定する必要があります。
グループ内のアーカイブ先に優先順位を付けるには、アーカイブ先のPRIORITY
属性を1から8の範囲の整数に設定します。数値が小さいほど優先度が高くなります。優先順位によって、データベースがマウントされたとき、またはアクティブなアーカイブ先に障害が発生したときにグループ内のどのアーカイブ先がアクティブになるかが決まります。たとえば、2
のPRIORITY
値は7
のPRIORITY
値よりも優先順位が高くなります。したがって、グループ内の現在アクティブでPRIORITY
値が1
のアーカイブ先が非アクティブになった場合、PRIORITY
値が2
のアーカイブ先は、PRIORITY
値が7
のアーカイブ先よりも前に使用されます。PRIORITY
属性がアーカイブ先に設定されていない場合、デフォルト値は1
です。
優先順位は、以前に失敗したアーカイブ先が使用可能になったときにも考慮されます。アクティブなアーカイブ先が失敗し、Oracle Databaseがより低い優先順位のアーカイブ先に切り替えた場合、Oracle Databaseはより高い優先順位のアーカイブ先が再度使用可能になったときに、そのアーカイブ先に切り替えます。たとえば、優先順位が1のアクティブなアーカイブ先が非アクティブになり、Oracle Databaseが優先順位2のアーカイブ先に切り替えた場合、Oracle Databaseは、優先順位2のアーカイブ先に障害が発生していなくても、優先順位1のアーカイブ先が再度使用可能になったときに、そのアーカイブ先に再度切り替えます。
ただし、同じグループに割り当てられた複数のアーカイブ先が同じ優先順位を持つことがあります。たとえば、優先順位が1のアーカイブ先が3つある場合があります。このようなグループでは、アーカイブ先の障害により、同じ優先順位の別のメンバーに切り替えられます。この場合、両方のアーカイブ先が同じ優先順位を持つため、元のアーカイブ先が再度使用可能になったときに、そのアーカイブ先への切替えは行われません。最初のアーカイブ先が再度使用可能になった後で2番目のアーカイブ先に障害が発生した場合、データベースは最初のアーカイブ先またはグループ内の同じ優先順位を持つ別のアーカイブ先に切り替えます。
12.4.2.2 ログ・アーカイブ先グループの指定
LOG_ARCHIVE_DEST_n
初期化パラメータのGROUP
属性を使用して、ログ・アーカイブ先グループを指定します。
最大8つのログ・アーカイブ先グループを作成でき、各グループには最大30のアーカイブ先を指定できます。
ARCHIVELOG
モードで実行する必要があります。
-
LOG_ARCHIVE_DEST_n
初期化パラメータを設定し、GROUP
属性を含めてログ・アーカイブ先グループを指定します。オプションで、
PRIORITY
属性を含めて、システムの起動時またはアーカイブ先の障害発生時にアクティブにするグループ内のログ・アーカイブ先を指定します。
例12-1 2つのログ・アーカイブ先グループの指定
この例では、2つのログ・アーカイブ先グループ(1および2)を指定します。各グループには3つのログ・アーカイブ先が指定されています。
LOG_ARCHIVE_DEST_1 = 'SERVICE=SITEa VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=1'
LOG_ARCHIVE_DEST_2 = 'SERVICE=SITEb VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=1'
LOG_ARCHIVE_DEST_3 = 'SERVICE=SITEc VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=1'
LOG_ARCHIVE_DEST_4 = 'SERVICE=SITE1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=2'
LOG_ARCHIVE_DEST_5 = 'SERVICE=SITE2 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=2'
LOG_ARCHIVE_DEST_6 = 'SERVICE=SITE3 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=2'
例12-2 ログ・アーカイブ先グループ内での優先順位の指定
この例では、単一のログ・アーカイブ先グループ内のアーカイブ先に異なる優先順位レベルを指定します。具体的には、アーカイブ先1および2はどちらも優先順位レベル1で、アーカイブ先3は優先順位レベル2、アーカイブ先4は優先順位レベル3です。
LOG_ARCHIVE_DEST_1 = 'SERVICE=SITE1 SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=1 PRIORITY=1'
LOG_ARCHIVE_DEST_2 = 'SERVICE=SITE2 SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=1 PRIORITY=1'
LOG_ARCHIVE_DEST_3 = 'SERVICE=SITE3 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=1 PRIORITY=2'
LOG_ARCHIVE_DEST_4 = 'SERVICE=SITE4 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) GROUP=1 PRIORITY=3'
この例で、サイト1、2および3はREDOを転送するだけのOracle Data Guard遠隔同期インスタンス、およびサイト4は実際のリモート・スタンバイ・データベースにすることができます。または、サイト1、2、3および4のすべてをスタンバイ・データベースにして、それらがアクティブな宛先であるときにREDOを他のサイトにカスケードするように構成できます。
次の優先順位のルールに従って処理が行われます。
-
アーカイブ先1とアーカイブ先2はどちらも優先順位レベル1であるため、このどちらかをデフォルトのアクティブなアーカイブにすることができます。
-
アーカイブ先1がアクティブで、その後使用不能になった場合、Oracle Databaseはアーカイブ先2に切り替えます。同様に、アーカイブ先2がアクティブで、その後使用不能になった場合、Oracle Databaseはアーカイブ先1に切り替えます。アーカイブ先1または2がどちらも使用可能な場合、その一方が使用されます。
-
アーカイブ先1とアーカイブ先2の両方が使用不能になった場合は、アーカイブ先3が使用されます。
-
アーカイブ先3がアクティブなときに、アーカイブ先1またはアーカイブ先2が使用可能になった場合、Oracle Databaseは使用可能な優先順位1のアーカイブ先に切り替えます。
-
アーカイブ先1、2および3がすべて使用不能になった場合は、アーカイブ先4が使用されます。
-
アーカイブ先4がアクティブなときにアーカイブ先1、2または3が使用可能になった場合、Oracle Databaseはまず使用可能な優先順位1のアーカイブ先に切り替えて、次に、使用可能な優先順位2のアーカイブ先に切り替えます。
12.4.3 アーカイブ先の状態の理解
複数の変数によって、アーカイブ先のステータスが決定されます。
各アーカイブ先は次のような可変特性を持っており、これらの特性によってその状態が決まります。
-
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
のアーカイブ先には指定できません。
親トピック: アーカイブ先の指定
12.4.4 代替アーカイブ先の指定
別のアーカイブ先に障害が発生した場合にのみ、ある場所がアーカイブ先になるように指定する場合は、その場所を代替アーカイブ先にできます。ローカルとリモート両方のアーカイブ先を代替アーカイブ先にできます。
次の例では、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
親トピック: アーカイブ先の指定
12.5 ログ転送モードについて
アーカイブ・ログをアーカイブ先に転送する場合のモードには、ノーマル・アーカイブ転送およびスタンバイ転送という2つのモードがあります。ノーマル転送では、ファイルはローカル・ディスクに転送されます。スタンバイ転送では、ファイルはネットワークを介してローカルまたはリモートのスタンバイ・データベースに転送されます。
- 通常転送モード
通常転送モードでは、アーカイブ先はデータベースの別のディスク・ドライブです。 - スタンバイ転送モード
スタンバイ転送モードでは、アーカイブ先はローカルまたはリモートのスタンバイ・データベースです。
親トピック: アーカイブREDOログ・ファイルの管理
12.5.1 通常転送モード
通常転送モードでは、アーカイブ先はデータベースの別のディスク・ドライブです。
この構成では、アーカイブがインスタンスに必要な他のファイルと競合せず、短時間で完了します。アーカイブ先は、LOG_ARCHIVE_DEST_
n
またはLOG_ARCHIVE_DEST
パラメータで指定します。
親トピック: ログ転送モードについて
12.5.2 スタンバイ転送モード
スタンバイ転送モードでは、アーカイブ先はローカルまたはリモートのスタンバイ・データベースです。
ノート:
ローカル・ディスク上でスタンバイ・データベースをメンテナンスすることも可能ですが、スタンバイ・データベースはリモート・サイトでメンテナンスし、最大限の障害対策を講じることをお薦めします。
関連項目:
-
サービス名を使用してリモート・データベースに接続する方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください
親トピック: ログ転送モードについて
12.6 アーカイブ先の障害管理
アーカイブ先で発生した障害が、自動アーカイブ・モードで操作している場合のエラー原因になることがあります。Oracle Databaseには、アーカイブ先の障害に関連する問題を最小限に抑えるためのプロシージャが用意されています。
- 正常なアーカイブ先の最小数の指定
オプションの初期化パラメータLOG_ARCHIVE_MIN_SUCCEED_DEST=
n
によって、データベースがオンライン・ログ・ファイルを再利用できるようになるまでにREDOログ・グループを正常にアーカイブすることが必要なアーカイブ先の最小数が決定されます。デフォルト値は1です。nの有効値は、二重化を使用する場合は1から2、多重化を使用する場合は1から31です。 - 障害アーカイブ先への再アーカイブ
LOG_ARCHIVE_DEST_
n
パラメータのREOPEN
属性を使用して、エラーの発生後にARCnが障害アーカイブ先への再アーカイブを試行するかどうかと、その時期を指定します。REOPEN
は、OPEN
エラーのみでなく、すべてのエラーに適用されます。
親トピック: アーカイブREDOログ・ファイルの管理
12.6.1 正常なアーカイブ先の最小数の指定
オプションの初期化パラメータ LOG_ARCHIVE_MIN_SUCCEED_DEST=
n
によって、データベースがオンライン・ログ・ファイルを再利用できるようになるまでにREDOログ・グループを正常にアーカイブすることが必要なアーカイブ先の最小数が決定されます。デフォルト値は1です。nの有効値は、二重化を使用する場合は1から2、多重化を使用する場合は1から31です。
- 必須およびオプションのアーカイブ先の指定
LOG_ARCHIVE_DEST_
n
パラメータを使用すると、アーカイブ先としてOPTIONAL
(デフォルト)またはMANDATORY
を指定できます。 - 正常なアーカイブ先の数の指定: 使用例
LOG_ARCHIVE_DEST_
n
およびLOG_ARCHIVE_MIN_SUCCEED_DEST
初期化パラメータの関係は、使用例を見ると理解しやすくなります。
親トピック: アーカイブ先の障害管理
12.6.1.1 必須およびオプションのアーカイブ先の指定
LOG_ARCHIVE_DEST_
n
初期化パラメータを使用すると、アーカイブ先としてOPTIONAL
(デフォルト)またはMANDATORY
を指定できます。
-
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
であれば必須です。
親トピック: 正常なアーカイブ先の最小数の指定
12.6.1.2 正常なアーカイブ先の数の指定: 使用例
LOG_ARCHIVE_DEST_
n
およびLOG_ARCHIVE_MIN_SUCCEED_DEST
初期化パラメータの関係は、使用例を見ると理解しやすくなります。
- オプションのローカル・アーカイブ先へのアーカイブ例
この例では、それぞれOPTIONAL
として宣言している3つのローカル・アーカイブ先にアーカイブします。 - 必須およびオプションのアーカイブ先へのアーカイブ例
この使用例では、MANDATORY
およびOPTIONAL
のローカル・アーカイブ先にアーカイブします。
親トピック: 正常なアーカイブ先の最小数の指定
12.6.1.2.1 オプションのローカル・アーカイブ先へのアーカイブ例
この例では、それぞれOPTIONAL
として宣言している3つのローカル・アーカイブ先にアーカイブします。
表12-1に、この場合のLOG_ARCHIVE_MIN_SUCCEED_DEST=
n
に考えられる値を示します。
表12-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つ以上に正常にアーカイブすることを示しています。
親トピック: 正常なアーカイブ先の数の指定: 使用例
12.6.1.2.2 必須およびオプションのアーカイブ先へのアーカイブ例
この例では、MANDATORY
およびOPTIONAL
のローカル・アーカイブ先にアーカイブします。
次のような状況を考えてみます。
-
MANDATORY
のアーカイブ先は2つ指定されている。 -
OPTIONAL
のアーカイブ先は2つ指定されている。 -
アーカイブ先は、いずれもスタンバイ・データベースではない。
表12-2に、LOG_ARCHIVE_MIN_SUCCEED_DEST=
n
に考えられる値を示します。
表12-2 使用例2のLOG_ARCHIVE_MIN_SUCCEED_DESTの値
値 | 意味 |
---|---|
1 |
データベースは、この値を無視して |
2 |
データベースは、 |
3 |
データベースは、最低1つの |
4 |
データベースは、 |
5以上 |
|
この例は、アーカイブ先が少なくなるようにLOG_ARCHIVE_MIN_SUCCEED_DEST
を設定した場合でも、データベースはその設定とは無関係に、MANDATORY
として指定されているアーカイブ先に必ずアーカイブすることを示しています。
親トピック: 正常なアーカイブ先の数の指定: 使用例
12.6.2 障害アーカイブ先への再アーカイブ
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
状態は変化しません。ここは間違っています。アーカイブ先は非アクティブ、有効または無効になります。ACTIVEステータスはありません。そのため、「REOPEN句はアーカイブ先ステータスをVALIDに設定する」とする必要があると思われます。DL
親トピック: アーカイブ先の障害管理
12.7 ARCHIVELOGプロセスによって生成されるトレース出力の制御
バックグラウンド・プロセスは適宜、トレース・ファイルに情報を書き込みます。ARCHIVELOGプロセスの場合は、トレース・ファイルに書き込む出力を制御できます。
archivelogプロセス用のトレース・ファイルに生成される出力を制御するには:
-
LOG_ARCHIVE_TRACE
初期化パラメータを設定してトレース・レベルを0、1、2、4、8などに指定します。
パラメータ値として、必要な各トレース・レベルの合計を設定することにより、トレース・レベルを組み合せることができます。たとえば、LOG_ARCHIVE_TRACE=12
に設定すると、トレース・レベル8および4の出力が生成されます。また、プライマリ・データベースとスタンバイ・データベースには、異なる値を設定できます。
LOG_ARCHIVE_TRACE
パラメータのデフォルト値は0(ゼロ)です。このレベルでは、エラー条件が発生すると、ARCHIVELOGプロセスによって適切なアラートおよびトレース・エントリが生成されます。
このパラメータの値は、ALTER SYSTEM
文で動的に変更できます。例:
ALTER SYSTEM SET LOG_ARCHIVE_TRACE=12;
この方法で行った変更は、次回のアーカイブ操作の開始時に有効になります。
関連項目:
-
LOG_ARCHIVE_TRACE
初期化パラメータの有効な値の説明などの詳細は、『Oracle Databaseリファレンス』を参照してください。 -
このパラメータをスタンバイ・データベースで使用する方法については、『Oracle Data Guard概要および管理』を参照してください
親トピック: アーカイブREDOログ・ファイルの管理
12.8 アーカイブREDOログに関する情報の表示
アーカイブREDOログに関する情報を表示するには、動的パフォーマンス・ビューまたはARCHIVE
LOG
LIST
コマンドを使用します。
- アーカイブREDOログ・ファイルのビュー
アーカイブREDOログ・ファイルに関する情報を動的パフォーマンス・ビューのセットに問い合せることができます。 - ARCHIVE LOG LISTコマンドの使用
SQL*PlusコマンドのARCHIVE LOG LIST
を使用して、接続されているインスタンスのアーカイブ情報を表示します。
親トピック: アーカイブREDOログ・ファイルの管理
12.8.1 アーカイブREDOログ・ファイルのビュー
アーカイブREDOログ・ファイルに関する情報を動的パフォーマンス・ビューのセットに問い合せることができます。
アーカイブREDOログ・ファイルに関して役立つ情報を含む動的パフォーマンス・ビューがいくつかあります。次の表に要約を示します。
動的パフォーマンス・ビュー | 説明 |
---|---|
データベースが |
|
制御ファイルに格納されたアーカイブ・ログ履歴情報が表示されます。リカバリ・カタログを使用している場合は、 |
|
現行インスタンス、すべてのアーカイブ先、各アーカイブ先の現行の値、モードおよび状態が表示されます。 |
|
インスタンスの各アーカイブ・プロセスの状態情報が表示されます。 |
|
アーカイブ・ログのバックアップ情報が含まれます。リカバリ・カタログを使用している場合は、 |
|
データベースのREDOログ・グループをすべて表示し、その中でアーカイブする必要があるグループを示します。 |
|
アーカイブ済ログや各アーカイブ・ログのSCN範囲などのログ履歴情報が含まれます。 |
親トピック: アーカイブREDOログに関する情報の表示
12.8.2 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ユーザーズ・ガイドおよびリファレンス』を参照してください
親トピック: アーカイブREDOログに関する情報の表示