プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成
12c (12.2.0.1)
E70107-04
目次へ移動
目次

前
次

11.6 Oracle Active Data Guard専用モードでのキャプチャの構成

Oracle Active Data Guardを使用して、REDOデータおよびメタデータの両方にリアルタイムでアクセスし、ソース・データベース・アクティビティを正常にレプリケートするように、クラシックExtractを構成できます。これは、Active Data Guard (ADG)モードと呼ばれます。ADGモードを使用すると、Extractではデータ・ソースとしてスタンバイ・データベースに転送される本番ログを使用できます。オンライン・ログは使用されません。GoldenGateでは、必要に応じて、スタンバイ・データベースに接続してメタデータとその他の必要なデータを取得します。

このモードは、ADGがすでに適切に配置または実装可能な、負荷の影響を受けやすい環境で便利です。これは、計画されたADGブローカ・ロール(スイッチオーバー)またはフェイルオーバー(計画外)の変更を使用して高可用性を実装する、コスト効率に優れた方法として使用することもできます。ADG構成では、スイッチオーバーおよびフェイルオーバーはロールとみなされます。いずれかの操作が実行されると、それはロール変更とみなされます。詳細は、『Oracle Data Guard概要および管理』および『Oracle Data Guard Broker』を参照してください。

フェッチに必要な表データおよびメタデータをソース・データベースではなくADGからフェッチするように、統合Extractを構成できます。これが可能なのは、ADGがソース・データベースの物理レプリカであるからです。FETCHUSERパラメータを使用したADGからのフェッチは、クラシックExtractとして稼働している場合を除き、すべての構成のExtractでサポートされます。クラシックExtractには、USERIDパラメータを使用して指定された標準接続情報を使用してADGに直接接続し、そのREDOログをマイニングして、そこからフェッチする機能がすでに用意されています。ADGからフェッチする場合、Extractは起動時にソース・データベースから情報(互換性レベル、データベース・タイプ、ソース・データベース検証チェックなど)を収集するので、ソース・データベースへの影響は最小限に抑えられます。

前のフェッチ機能およびパラメータはすべてサポートされます。

11.6.1 ADGモードの使用の制限および要件

ExtractをADGモードで使用する場合、次の制限およびガイドラインに従います。

  • ADGモードのExtractは、適用プロセスによってスタンバイ・データベースに適用されているREDOデータのみを適用します。Extractがスタンバイ・データベースの前に実行されると、スタンバイ・データベースがキャッチアップするまで待機します。

  • スタンバイ・データベースでExtractを実行するには、クラシックExtractパラメータ・ファイルにADGモードを明示的に指定する必要があります。

  • フェッチおよびその他のメタデータの解決はデータベースで実行されるため、ADGシステムに接続するには、データベース・ユーザーおよびパスワードを指定する必要があります。

  • スタンバイ・データベースのスタンバイ・ログのREDOスレッドの数は、プライマリ・データベースのノードの数と一致する必要があります。

  • クラシックExtractがスタンバイ・データベースで作成された後は、新しいRACインスタンスをプライマリ・データベースに追加することはできません。新しいインスタンスを追加すると、新しいスレッドのREDOデータはクラシックExtractによってキャプチャされません。

  • スタンバイ・データベースからアクセスされるアーカイブ・ログおよびスタンバイREDOログは、プライマリ・データベースの正確なコピーになります。REDOデータ、トランザクション・データおよびサプリメンタル・データを含む、サイズおよび内容は一致します。これは、適切に構成されたADGデプロイメントによって保証されます。

  • ADGロール変更は不定期で、どちらの場合もユーザーの介入が必要です。

  • スイッチオーバーでは、REDOログ・ファイル・ヘッダー(REDOログの終端(EOR)マーカー)に、ログ・ストリームの終端を示すインジケータがあり、これにより、スタンバイのクラシックExtractはRAC調整を正常に完了し、コミットされたすべてのトランザクションを証跡ファイルに転送できます。

  • フェイルオーバーでは、新しいインカーネーションID、RESETLOG順序番号およびSCN値で、プライマリ・データベースとスタンバイ・データベースの両方に新しいインカーネーションが作成されます。

  • TRANDATAまたはSCHEMATRANDATAの追加はプライマリ・データベースで実行されるため、これを行うには、GGSCIからプライマリ・データベースに接続する必要があります。

  • DDLレプリケーション(ADDTRANDATAを除く)をサポートするために、DDLトリガーをスタンバイ・データベースで使用することはできません。Oracle GoldenGate DDLパッケージをプライマリ・データベースにインストールする必要があります。

  • DDL ADDTRANDATAはADGモードではサポートされておらず、DDLレプリケーションにはADDSCHEMATRANDATAを使用する必要があります。

  • スタンバイ・データベースでExtractを追加する場合は、特定のSCN値、タイムスタンプおよびログの位置を使用して、開始位置を指定する必要があります。NOWなどのタイムスタンプの相対値は不明瞭になり、データの不整合につながる場合があります。

  • スタンバイ・データベースでExtractを追加する場合は、プライマリ・データベースからのすべての関連スレッドを含む、スレッドの番号を指定する必要があります。

  • フェイルオーバーまたはスイッチオーバーの実行中または実行後は、プライマリ・データベースまたはスタンバイ・データベースにスレッドを追加したり、削除することはできません。

  • クラシックExtractは、1つのRESETLOG操作の介在のみを使用します。

  • Oracle GoldenGateインストールを再配置しない場合は、プライマリ・データベースおよびスタンバイ・データベースからOracle GoldenGateインストール・ディレクトリにアクセスできる共有スペースに配置する必要があります。

  • キャプチャをADGスタンバイ・データベースからプライマリ・データベースに移動する場合は、ネット別名がプライマリ・データベースを指すようにし、TRANLOGオプションを削除する必要があります。

  • 互換性設定が10.2以上(10gリリース2)で実行しているOracle Databaseリリースのみがサポートされます。

  • クラシックExtractでは、DBLOGREADERオプションを使用できません。ASMUSER (約20GB/時の読取り制限があります)を使用するか、プライマリ・データベースとスタンバイ・データベースの両方で、オプション・ログとアーカイブ・ログをアプリケーション・セキュリティ・マネージャの外に移動します。

11.6.2 ADGモードのクラシックExtractの構成

クラシックExtractをADGモード用に構成するには、「クラシック・モードでのキャプチャの構成」に記載されたOracle GoldenGateの構成プロセスの一環として次の手順を実行します。

  1. プライマリ・データベースの表に対して、ADD SCHEMATRANDATAパラメータを使用して、表レベルおよびデータベース・レベルのサプリメンタル・ロギングを有効にします。必要に応じて、DDLキャプチャを作成します。(「ロギング・プロパティの構成」を参照してください。)
  2. Oracle GoldenGateがソース・データベースとは異なるサーバー上で実行されている場合、TNSNAMESファイルに正しいエントリを入力するなど、SQL*Netがリモート・サーバーに接続するように正しく構成されていることを確認します。Extractにソース・データベースへのSQL*Net接続を保持する権限を設定しておく必要があります。
  3. スタンバイ・データベースで、MINEFROMACTIVEDGオプションを指定して、ExtractパラメータTRANLOGOPTIONSを使用します。このオプションを使用すると、v$databaseビューのdb_role列のPRIMARYまたはLOGICAL STANDBYの値によって決まる、スタンバイ・データベースに対してExtractが強制的にADGモードで動作します。

    ご使用の環境に対してTRANLOGOPTIONSの他のオプションが必要になる場合があります。たとえば、使用するコピー・プログラムに応じて、Extractエラーを回避するためにCOMPLETEARCHIVEDLOGONLYオプションが必要になる場合があります。

  4. スタンバイ・データベースで、指定したSCNのプライマリ・データベースでアクティブなスレッドの数を指定するADD EXTRACTコマンドを発行して、Extractグループを追加します。切替えのタイミングはREDOログのサイズとデータベース・アクティビティのボリュームに依存するため、Extractの開始時とデータのキャプチャ時の間に制限されたラグが発生することがあります。これは、通常およびRACのデータベース構成で発生する可能性があります。

11.6.3 ADGデータベースとの間でのクラシックExtractの移行

ADGデータベースとの間でクラシックExtractの移行を試みる前に、パラメータ・ファイル、チェックポイント・ファイル、Bounded Recoveryファイルおよび証跡ファイルを共有記憶域に格納するか、ADGデータベースにコピーする必要があります。また、ロール変更の介在がないようにするか、Extractが同じREDOのブランチをマイニングする必要があります。

ADGデータベースに移動するには、次の手順を使用します。

  1. パラメータ・ファイルext1.prmを編集し、次のパラメータを追加します。

    DBLOGIN USERID userid@ADG PASSWORD password
    TRANLOGOPTIONS MINEFROMACTIVEDG
    
  2. START EXTRACT ext1コマンドを発行して、Extractを起動します。

ADGデータベースから移動するには、次の手順を使用します。

  1. パラメータ・ファイルext1.prmを編集し、次のパラメータを削除します。
    DBLOGIN USERID userid@ADG PASSWORD password
    TRANLOGOPTIONS MINEFROMACTIVEDG
    
  2. START EXTRACT ext1コマンドを発行して、Extractを起動します。

11.6.4 ADG構成でのロール変更の処理

スタンバイ・データベースに関するロール変更では、Extractで使用されている接続を含む、プライマリ・データベースおよびスタンバイ・データベースのすべてのセッションが最初に切断されます。これにより、両方のデータベースが停止し、元のプライマリがスタンバイ・データベースとしてマウントされ、元のスタンバイがプライマリ・データベースとして開かれます。

ロール変更の手順は、クラシックExtractの初期デプロイメント、および必要なデプロイメント関係(データベースまたはロール)によって決定されます。次の表は、4つの可能なロール変更を示しており、prisysおよびstansysの2つのデータベースで構成されるADG構成を前提としています。prisysシステムにはプライマリ・データベース、stansysにはスタンバイ・データベースが含まれ、prisysには2つのREDOスレッド・アーカイブ、stansysには4つのREDOスレッド・アーカイブが含まれます。

初期デプロイメント・プライマリ(prisys) 初期デプロイメントADG (stansys)

元のデプロイメント:

ext1.prm
DBLOGIN USERID userid@prisys, PASSWORD password
ext1.prm
DBLOGIN USERID userid@stansys, PASSWORD password
TRANLOGOPTIONS MINEFROMACTIVEDG

データベース関連:

ロール・トランジション後: クラシックExtractからADG

  1. ext1.prmファイルを編集して、次を追加します。

    TRANLOGOPTIONS MINEFROMACTIVEDG

  2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

  3. Extractを起動します。

    START EXTRACT ext1

    Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

  4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. ALTER EXTRACT ext1 SCN #を実行します( #は、ロール・スイッチ・メッセージからのSCN値です)。

  6. スレッド数に基づいて、次のいずれかを実行します。

    スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

    または

    スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1

ロール・トランジション後: ADGからクラシックExtract

  1. ext1.prmを編集して、次を削除します。

    TRANLOGOPTIONS MINEFROMACTIVEDG

  2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

  3. Extractを起動します。

    START EXTRACT ext1

    Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

  4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. ALTER EXTRACT ext1 SCN #を実行します( #は、ロール・スイッチ・メッセージからのSCN値です)。

  6. スレッド数に基づいて、次のいずれかを実行します。

    スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

    または

    スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1

ロール関連:

ロール・トランジション後: クラシックExtractからクラシックExtract

  1. ext1.prmを編集して、データベース・システムをスタンバイ・システムに変更します。

    DBLOGIN USERID userid@stansys, PASSWORD password

  2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

  3. Extractを起動します。

    START EXTRACT ext1

    Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

  4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. ALTER EXTRACT ext1 SCN #を実行します(#は、ロール・スイッチ・メッセージからのSCN値です)。

  6. スレッド数に基づいて、次のいずれかを実行します。

    スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

    または

    スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1

ロール・トランジション後: ADGからADG

  1. ext1.prmを編集して、データベース・システムをプライマリ・システムに変更します。

    DBLOGIN USERID userid@prisys, PASSWORD password

  2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

  3. Extractを起動します。

    START EXTRACT ext1

    Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

  4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. ALTER EXTRACT ext1 SCN #を実行します(#は、ロール・スイッチ・メッセージからのSCN値です)。

  6. スレッド数に基づいて、次のいずれかを実行します。

    スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

    または

    スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1