10 「クラシック・キャプチャを使用する場合の追加構成手順」

この章では、クラシック・キャプチャ・モードで動作する場合のExtractに固有の追加構成と準備の要件について説明します。

これらの要件は、「クラシック・モードでのキャプチャの構成」 に記載されている基本的な構成要件を補完します

内容は次のとおりです。

クラシック・キャプチャ・モードでのOracle TDEデータの構成

この項は、統合キャプチャ・モードのExtractには適用されません

クラシック・キャプチャ・モードでのExtractの場合、TDEをサポートするには、次の特別な構成手順が必要です。

注意:

統合モードでは、Extractはデータベース・ロギング・サーバーを活用して、特別な設定要件やパラメータ設定なしで、TDE列の暗号化とTDE表領域の暗号化をサポートします。統合キャプチャの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

クラシック・キャプチャ・モードでのTDEサポートの概要

クラシック・キャプチャ・モードでのExtractの場合、TDEサポートには2種類の鍵の交換が必要です。

  • 暗号化鍵は、表鍵(列レベルの暗号化)、暗号化REDOログ鍵(表領域レベルの暗号化)、またはその両方のいずれにすることも可能です。この鍵はOracle DatabaseとExtract間で共有されます。

  • 復号化鍵にはORACLEGGの名前が付けられ、そのパスワードは共通鍵と呼ばれます。この鍵は、OracleおよびOracle GoldenGateドメインに安全に格納されます。共通鍵を所有するユーザーのみが、表およびREDOログ鍵を復号化できます。

復号化キーは、組込みPL/SQLコードによってExtractプロセスに配信されます。Extractでは共通鍵を使用してデータが復号化されます。Extractでは、ウォレットのマスター・キー自体は処理されず、またマスター・キーのパスワードも認識されません。これらは、Oracle Databaseセキュリティ・フレームワークの範囲内です。

Extractでは、復号化されたデータが破棄ファイル(DISCARDFILEパラメータで指定)を含む証跡ファイル以外のファイルに書き込まれることはありません。"ENCRYPTED"という語が使用中の破棄ファイルに書き込まれます。

Oracle GoldenGateのパフォーマンスに対するこの機能の影響には、データベース・パフォーマンスに対する復号化の影響が反映されます。Extractの起動時間がわずかに長くなる以外は、TDEデータのレプリケートによるパフォーマンスへの影響は最小限です。

クラシック・キャプチャ・モードでのTDEのキャプチャの要件

ExtractでTDEキャプチャをサポートするための要件は次のとおりです。

  • 高いセキュリティ基準を維持するため、Oracle GoldenGate Extractプロセスはoracleユーザー(Oracle Databaseを実行するユーザー)の一部として実行する必要があります。これにより、oracleユーザーと同じ権限でメモリー内で鍵が保護されます。

  • Extractプロセスは、データベースのインストールと同じマシン上で実行される必要があります。

  • ハードウェア・セキュリティ・モジュールでTDEを使用している場合でも、ソフトウェア・ウォレットを使用する必要があります。HSMのみの構成からHSMとウォレットの構成に移行し、sqlnet.oraファイルを正しく構成するための各手順の詳細は、「Oracleセキュリティ担当者のタスク」の構成手順を参照してください。

  • ソース・データベースがアップグレードされる場合は、マスター・キーを必ず更新する必要があります。

TDEサポートに必要なデータベース・パッチ

Oracle 11.2.0.2でTDEをサポートするには、My Oracle Support Webサイト(https://support.oracle.com)の記事1557031.1を参照してください。

TDEサポートのクラシック・キャプチャの構成

次に、OracleサーバーとExtractプロセス間の通信を確立するためにOracleセキュリティ担当者およびOracle GoldenGate管理者が実行する手順を説明します。

Oracleの基準を満たす共通鍵の共有

Oracleパスワードの基準以上の共通鍵パスワードを共有します。このパスワードは他のユーザーに知られないようにする必要があります。安全なパスワードの作成のガイドラインについては、『Oracle Databaseセキュリティ・ガイド』を参照してください。

Oracle DBAのタスク
  1. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。次に例を示します。
    sqlplus sys/as sysdba
    Connected.
    Enter password: password
    
  2. Oracle adminディレクトリにインストールされているprvtclkm.plbファイルを実行します。prvtclkm.plbファイルによってDBMS_INTERNAL_CLKM PL/SQLパッケージが作成され、Oracle GoldenGateによる暗号化されたデータのOracle Databaseからの抽出が可能になります。
    @?/app/oracle/product/orcl111/rdbms/admin/prvtclkm.plb
    
  3. DBMS_INTERNAL_CLKM PL/SQLパッケージに対するEXEC権限をExtractのデータベース・ユーザーに付与します。
    GRANT EXECUTE ON DBMS_INTERNAL_CLKM TO psmith;
    
  4. SQL*Plusを終了します。
Oracleセキュリティ担当者のタスク
  1. Oracle GoldenGateでは、HSMともソフトウェア・ウォレットを使用する必要があります。HSMのみのモードを現在使用している場合は、次の手順に従って、HSMとウォレットのモードに移行します。

    1. 次の例に示すように、sqlnet.oraファイル構成を変更します(ウォレット・ディレクトリは、Oracle Databaseの所有者によってアクセス可能な(rwx)ディスク上の任意の場所が可能です)。次の例は、ベスト・プラクティスの場所(my_db$ORACLE_SID)を示します。

      ENCRYPTION_WALLET_LOCATION=
       (SOURCE=(METHOD=HSM)(METHOD_DATA=
         (DIRECTORY=/etc/oracle/wallets/my_db)))
      
    2. Oracle Databaseの所有者としてorapki (またはWallet Manager)にログインし、sqlnet.oraファイルに指定した場所に自動ログイン・ウォレットを作成します。ウォレットのパスワードを求められたら、HSMパスワードと同じパスワード(またはHSM接続文字列)を指定します。これらの2つのパスワードは同じにする必要があります。

      cd /etc/oracle/wallets/my_db
      orapki wallet create -wallet . -auto_login[_local] 

      注意:

      Oracle Database所有者には、ウォレットの完全なオペレーティング・システム権限が必要です。

    3. 次のエントリを空のウォレットに追加して、'auto-open' HSMを有効にします。

      mkstore -wrl . -createEntry ORACLE.TDE.HSM.AUTOLOGIN non-empty-string 
      
  2. ORACLEGGのエントリをウォレットに作成します。ORACLEGGは、この鍵の名前にする必要があります。この鍵のパスワードは、共通鍵を共有する必要がありますが、このパスワードをコマンドラインから入力しないでください。かわりに、入力を求められるまで待ちます。

    mkstore -wrl ./ -createEntry ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG
    Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
    Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
    Your secret/Password is missing in the command line
    Enter your secret/Password: sharedsecret
    Re-enter your secret/Password: sharedsecret
    Enter wallet password: hsm/wallet_password
    
  3. ORACLEGGのエントリを確認します。

    mkstore -wrl . -list
    Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
    Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
    Enter wallet password: hsm/wallet_password
    Oracle Secret Store entries:
    ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG
    
  4. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。

  5. ウォレットを閉じ、再度開きます。

    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.
    

    これによってパスワードが自動オープン・ウォレットに挿入されるため、HSMに保存されたTDEマスター暗号化鍵を使用して暗号化されたデータにアクセスする際、パスワードは不要です。

  6. ログ・ファイルを切り替えます。

    alter system switch logfile;
    System altered.
    
  7. Oracle RAC環境で、各ノードでウォレットのコピーを使用している場合、ここでコピーを作成し、各ウォレットを再度開きます。

注意:

共有の場所にある1つのウォレットを、すべてのOracle RACノード間でアクセスが同期化された状態で使用することをお薦めします。

Oracle GoldenGate管理者のタスク
  1. GGSCIを実行します。
  2. ENCRYPT PASSWORDコマンドを発行して、Extractパラメータ・ファイル内で不明瞭化されるように共通鍵を暗号化します。これはセキュリティ要件です。
    ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、クリアテキストの共通鍵です。この値では大文字/小文字が区別されます。

    • {AES128 | AES192 | AES256}では、Advanced Encryption Standard (AES)暗号化を指定します。使用する鍵の長さを表す、いずれかの値を指定します。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。Oracle GoldenGateは、この鍵を使用して、ENCKEYSファイルで実際の鍵を検索します。鍵およびENCKEYSファイルを作成する場合、『Oracle GoldenGateの管理』を参照してください。

      例:

      ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1
      
  3. Extractパラメータ・ファイルで、DECRYPTPASSWORDオプションを指定してDBOPTIONSパラメータを使用します。入力値として、暗号化された共通鍵と復号化鍵を指定します。
    DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、暗号化された共通鍵です。

    • {AES128 | AES192 | AES256}は、ENCRYPT PASSWORDに使用したものと同じ値である必要があります。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。

      例:

      DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1
      
  4. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。
  5. ウォレットを閉じ、再度開きます。
    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.

復号化後のデータのセキュリティを維持するための推奨事項

Extractでは、TDEデータは復号化され、クリア・テキストとして証跡内に書き込まれます。ターゲット・データベースへの経路を含めてデータのセキュリティを維持するには、次のOracle GoldenGateのセキュリティ機能も使用することをお薦めします。

  • 証跡内のデータの暗号化

  • TCP/IP間の遷移でのデータの暗号化

詳細は、『Oracle GoldenGateの管理』を参照してください。

TDEキャプチャがアクティブな場合のDDLの実行

DDLが列レベルの暗号化が存在する表で実行される場合や表キーが更新される場合には、DDLの実行中に表を停止するか、Oracle GoldenGate DDLサポートを有効にする必要があります。通常、キーの更新はセキュリティ違反に伴って行われ、すぐに実行される必要があるため、いつでも対応できるよう、DDL環境をアクティブにしておくとより実用的です。Oracle GoldenGate DDL環境をインストールするには、「トリガーベースのDDLキャプチャのインストール」を参照してください。Oracle GoldenGate DDLサポートを構成するには、「DDLサポートの構成」を参照してください。表レベルの暗号化の場合は、Oracle GoldenGate DDLサポートは必要ありません。

データベースのアップグレード後の鍵の更新

ソース・データベースがアップグレードされ、Oracle GoldenGateがTDEデータをキャプチャしている場合は、マスター・キーを更新し、データベースおよびExtractを再起動する必要があります。マスター・キーを更新するコマンドは次のとおりです。

alter system set encryption key identified by "mykey";

パラメータ・ファイルでのOracle共通鍵の更新

次の手順を使用して、Extractパラメータ・ファイル内でTDE共通鍵を更新し、暗号化します。

  1. GGSCIを実行します。
  2. Extractプロセスを停止します。
    STOP EXTRACT group
    
  3. Oracleウォレット内のORACLEGGエントリを変更します。鍵の名前は、ORACLEGGのままである必要があります。詳細は、『Oracle Database Advanced Securityガイド』を参照してください。
  4. ENCRYPT PASSWORDコマンドを発行して新しい共通鍵を暗号化します。
    ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、クリアテキストの共通鍵です。この値では大文字/小文字が区別されます。

    • {AES128 | AES192 | AES256}では、Advanced Encryption Standard (AES)暗号化を指定します。使用する鍵の長さを表す、いずれかの値を指定します。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。

      例:

      ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1
      
  5. Extractパラメータ・ファイルで、DECRYPTPASSWORDオプションを指定してDBOPTIONSパラメータを使用します。入力値として、暗号化された共通鍵と、Oracle GoldenGate生成型またはユーザー定義型の復号化鍵を指定します。
    DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    説明:

    • sharedsecretは、暗号化された共通鍵です。

    • {AES128 | AES192 | AES256}は、ENCRYPT PASSWORDに使用したものと同じ値である必要があります。

    • keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。

      例:

      DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1
      
  6. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。
  7. ウォレットを閉じ、再度開きます。
    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.
    
  8. Extractを起動します。
    START EXTRACT group

Oracle RAC環境でのクラシック・キャプチャの使用

次の一般的なガイドラインは、クラシック・キャプチャ・モードでExtractが実行される場合のOracle RACに適用されます。

  • 操作中になんらかの理由でOracle GoldenGateを実行しているプライマリ・データベース・インスタンスが停止または失敗すると、Extractが異常終了します。処理を再開するには、インスタンスを再開するか、Oracle GoldenGateのバイナリをデータベースを実行している別のノードにマウントしてOracle GoldenGateのプロセスを再開します。別のノードからOracle GoldenGateのプロセスを開始する前に、元のモードでManagerプロセスを停止します。

  • REDOスレッド数は常に変更されるため、Extractグループをドロップおよび再作成する必要があります。推奨される手順は、『Oracle GoldenGateの管理』を参照してください。

  • トランザクションの発生元のRACインスタンスに関係なく、Extractは必ずトランザクションをコミット順に証跡ファイルに書き込みます。1つ以上のRACインスタンスがアイドルの可能性がある状態でExtractがアーカイブ・ログのみモードでキャプチャする場合、アイドル・ノードでアーカイブ・ログ・スイッチを実行して、アクティブ・インスタンスの操作が証跡ファイルにタイムリに記録されるようにする必要があります。archive_lag_targetパラメータを設定して、事前に設定された間隔でこのログ・アーカイブを自動的に行うようOracle RDBMSに指定することができます。たとえば、ログが15分間隔でアーカイブされるようにするには、アクティビティに関係なく、RACシステムのすべてのインスタンスで次のコマンドを発行します。

    SQL> alter system set archive_lag_target 900
    
  • Extractを停止する前にRACクラスタで最後のトランザクションを処理するには、ダミー・レコードをOracle GoldenGateによってレプリケートされるソース表に挿入してから、すべてのノード上でログ・ファイルを切り替えます。これにより、Extractのチェックポイントが更新され、使用可能なすべてのアーカイブ・ログの読取りが可能であることが確認されます。さらに、それによってそれらのアーカイブ・ログのすべてのトランザクションがキャプチャされ、正しい順序で証跡に書き込まれることが確認されます。

次の表に、Oracle GoldenGateのパラメータの中で、Oracle RACで特に便利なパラメータを示します。

パラメータ 説明

INQUEUESIZEおよびOUTQUEUESIZEオプションを使用したTHREADOPTIONSパラメータ

ターゲット・システムに送信する前にExtractによってメモリーのキューに入れられるデータの量を設定します。これらのパラメータを調整することによって、Oracle RACでExtractのパフォーマンスを向上できる場合があります。

PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONSおよびTRANSCLEANUPFREQUENCYオプションを使用したTRANLOGOPTIONSパラメータ

トランザクション時にノードが失敗してExtractでロールバックをキャプチャできない場合に発生する可能性がある親のないトランザクションを、Extractが処理する方法を制御します。データベースによってフェイルオーバー・ノードでロールバックが実行されますが、それ以外の場合、トランザクションはExtractトランザクション・リストに無限に残ったままになり、トランザクションを処理していたExtractスレッドに追加のチェックポイントが実行されません。デフォルトでは、トランザクションが親なしであると確認された後にOracle GoldenGateによってそのリストからそれらがパージされます。この機能は、GGSCIでのSEND EXTRACTコマンドを使用して必要に応じて制御することもできます。

クラシック・キャプチャ・モードでのASMストアド・ログのマイニング

このトピックでは、Oracle GoldenGateがOracle Automatic Storage Management (ASM)に格納されているトランザクション・ログをマイニングする場合に適用される追加の構成要件について説明します。

ASM内のトランザクション・ログへのアクセス

Extractは、ASMに格納されているログを読み取るよう構成されている必要があります。データベースのバージョンに応じて、次のオプションを使用できます。

RDBMSを介したトランザクション・ログの読取り

RDBMSがOracle 11.1.0.7、またはOracle 11.2.0.2以上の11g R2のバージョンである場合、DBLOGREADERオプションを指定してTRANLOGOPTIONSパラメータを使用します。

これらのリリース(ただしOracle 11g R1バージョンではない場合)には、データベース・サーバーを使用してREDOおよびアーカイブ・ログにアクセスするAPIが存在します。使用した場合、このAPIによってExtractで最大4MBの読込みバッファ・サイズが使用できるようになります。バッファを大きくすると、REDO率が高い場合にExtractのパフォーマンスが向上する可能性があります。TRANLOGOPTIONSDBLOGREADERBUFSIZEオプションを使用してバッファ・サイズを指定できます。

注意:

REDOおよびアーカイブ・ログが通常のディスクまたはRAWデバイス上にある場合は、DBLOGREADERを使用することもできます。

DBLOGREADERおよびOracle Data Vaultを使用している場合は、「Oracle GoldenGate資格証明の確立」にリストされている権限に加えて、DV_GOLDENGATE_REDO_ACCESSロールをExtractデータベース・ユーザーに付与します。

ASM直接接続

RDBMSバージョンが「RDBMSを介したトランザクション・ログの読取り」にリストされているバージョンでない場合は、次を実行します。

  1. ASMインスタンスに直接アクセスするExtractプロセスのユーザーを作成します。このユーザーに、ASMインスタンスのSYSまたはSYSDBA権限を割り当てます。Oracle GoldenGateは、ASMユーザーのオペレーティング・システム認証をサポートしていません。
    ASMパスワード構成(1) 許可されたユーザー

    ASMインスタンスとデータベースでパスワード・ファイルを共有する

    Oracle GoldenGateソース・データベース・ユーザーにSYSDBAを付与した場合、そのユーザーを使用できます。あるいは、SYSDBA権限を持つその他のデータベース・ユーザーを使用できます。

    ASMインスタンスとソース・データベースで別々のパスワード・ファイルを設定する

    ASMパスワード・ファイルをソース・データベースのパスワード・ファイルで上書きできます。この手順によって、ASMインスタンスのSYSパスワードがデータベースのパスワード・ファイルに含まれている値に変わります。また、ASMアクセス権限がデータベースのパスワード・ファイルの他のユーザーに付与されます。それを上書きする前にASMファイルのコピーを保存します。

    脚注 1 現在のパスワードの構成方法を表示するには、ASMインスタンスをログオンしてSQL*Plusで次のコマンドを発行します。 SQL> SELECT name, value FROM v$parameter WHERE name = 'remote_login_passwordfile';

  2. ALTER CREDENTIALSTOREコマンドを発行して、ASMユーザー資格証明をOracle GoldenGate資格証明ストアに追加します。使用手順および構文は、『Oracle GoldenGateリファレンス』を参照してください。
  3. TRANLOGOPTIONSパラメータにASMUSERALIASオプションを指定して、Extractパラメータ・ファイルにASMログイン別名を指定します。TRANLOGOPTIONSの詳細は、『Oracle GoldenGateリファレンス』を参照してください。

ASM接続の確認

Oracle GoldenGate Extractプロセスが確実にASMインスタンスに接続できるようにするには、tnsnames.oraファイルにASMインスタンスをリストします。Oracle GoldenGateがデータベースのホスト・マシンで実行されている場合には、ASMインスタンスへの接続に、Bequeath (BEQ)プロトコルを使用することをお薦めします。BEQプロトコルにはリスナーは必要ありません。TCP/IPプロトコルを使用する場合は、OracleリスナーがASMインスタンスへの新しい接続をリスニングしていることを確認します。listener.oraファイルに、次のようなエントリが含まれている必要があります。

SID_LIST_LISTENER_ASM =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ASM)
      (ORACLE_HOME = /u01/app/grid)
    (SID_NAME = +ASM1)
  )
)

注意:

リモートExtract構成を使用する場合、BEQ接続は機能しません。TNSNAMESとTCP/IPプロトコルを使用します。

クラシック・キャプチャでのデータ可用性の確保

Extractがクラシック・キャプチャ・モードで動作する場合、キャプチャ処理の継続性および整合性を保証するには、アーカイブ・ロギングを有効にします。

Extractが処理を終了する前にオンライン・ログが再利用される場合、アーカイブ・ログがセカンダリ・データ・ソースになります。オープン・トランザクションのアーカイブ・ログは、Extractでリカバリを実行するためにこれらからのデータの再キャプチャが必要となる場合に備え、システム上に保存する必要があります。

警告:

アーカイブ・ロギングを有効にできない場合、トランザクションがまだアクティブな間にExtractの停止につながる障害が発生した場合、ソースとターゲットのオブジェクトを完全に再同期し、レプリケーションを再インスタンス化する必要があるというリスクを伴います。この方法で操作する必要がある場合、次のガイドラインに従ってオンライン・ログを構成し、オンライン・ログが再利用される前にExtractでキャプチャする必要のあるデータが保持されるようにします。長時間のトランザクションに加え、ネットワークの機能停止とその他の外部要因によって発生するExtractのバックログも考慮してください。

RAC構成では、Oracle GoldenGateがインストールされているクラスタを含むクラスタのすべてのノードのオンラインおよびアーカイブのログにExtractがアクセスできるようにしておく必要があります。

Extractリカバリ・モード別のログ保存要件

Extractで使用される可能性がある様々なリカバリ・モード、およびそれぞれのログ保存要件について次に要約します。

  • デフォルトでは制限付きリカバリ・モードが有効で、ExtractではBRパラメータを使用して設定されている制限付きリカバリ期間の2倍までさかのぼってログにアクセスする必要があります。この期間は、CHECKPOINTSECSパラメータによって制御されている、Extractの標準のチェックポイント間隔の整数倍です。これらの2つのパラメータによってOracle GoldenGateの制限付きリカバリ機能が制御され、障害が発生したときにオープンしていた最も古いトランザクションがどんなに古くても、Extractで障害後にインメモリー・キャプチャされたデータのリカバリが可能です。バインドされたリカバリの詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  • Extractでリカバリを試みたときに制限付きリカバリ・メカニズムが失敗した場合、Extractは通常のリカバリ・モードに戻ります。この場合、失敗時にオープンしていたメモリー内で最も古いトランザクションの始まりが含まれているアーカイブ・ログと、それ以降のすべてのログへのアクセス権をExtractに設定しておく必要があります。

ログ保存のオプション

必要なログがシステム上に保持されるようにするためのオプションは、Oracleのバージョンによって異なります。

Oracle Enterprise Edition 11g以降

これらのバージョンの場合、Oracle Recovery Manager (RMAN)を使用して、Extractでリカバリに必要となるログが保存されるようExtractを構成できます。REGISTER EXTRACTコマンドを発行する場合、この機能を有効にします。詳細は、「プロセス・グループの作成」を参照してください。この機能を使用するには、Extractデータベース・ユーザーに、「Oracle GoldenGate資格証明の確立」に示す基本的な権限以外に次の権限がある必要があります。

Oracle EEのバージョン 権限

11.1および11.2.0.1

  1. パッケージを実行してOracle GoldenGateの管理権限を付与します。

    exec dbms_streams_auth.grant_admin_privilege('user')
  2. become user権限を付与します。

    grant become user to user;

11.2.0.3以降

パッケージを実行してOracle GoldenGateの管理権限を付与します。

exec dbms_goldengate_auth.grant_admin_privilege('user')

ログ保存が有効な場合、Extractは制限付きリカバリを実行するのに十分なログを保持しますが、LOGRETENTIONオプションをSRに設定したTRANLOGOPTIONSパラメータを使用して、通常のリカバリに必要なログをRMANを介して保持するようExtractを構成できます。RMANログ保存の使用を無効にするオプションもあります。Extractを構成する前に、『Oracle GoldenGateリファレンス』に記載されているLOGRETENTIONのオプションを確認してください。LOGRETENTIONDISABLEDに設定する場合は、「保存するデータ量の判断」を参照してください。

注意:

11.2.0.3より前のOracleバージョンのOracle RACでRMANログ保存をサポートするには、Extractグループを追加する前にBUGFIX 11879974で提供されているデータベース・パッチをダウンロードおよびインストールする必要があります。

RMANログ保存機能により、各Extractグループに基本の(ただし機能しない)Oracle Streamsのキャプチャ・プロセスが作成されます。キャプチャの名前は、関連するExtractグループの名前に基づきます。ログ保存機能は、他のローカルのOracle Streamsインストールと同時に動作可能です。Extractグループを作成するとき、ログは現在のデータベースSCNから保存されます。

注意:

記憶域が一杯の場合は、Extractで必要とされてもRMANによってアーカイブ・ログがパージされます。この制限は、Extract (および他のOracleレプリケーション・コンポーネント)の要件がデータベースへのREDOの可用性を妨げないようにするために存在します。

その他のOracleバージョン

Enterprise Edition以外のバージョンのOracleの場合は、任意の管理ツールを使用してログ保存プロセスを管理する必要があります。「保存するデータ量の判断」の指示に従います。

保存するデータ量の判断

ログ保存を管理する場合、Extractで通常のリカバリ(制限付きリカバリではなく)を実行するのに必要となるログに迅速にアクセスできるようにしてください。「Extractリカバリ・モード別のログ保存要件」を参照してください。アーカイブをデータベース・システムから移動する必要がある場合、TRANLOGOPTIONSパラメータで別の場所を指定することができます。「アーカイブ場所の指定」を参照してください。

推奨される保存期間は少なくとも24時間であり、これはオンラインおよびアーカイブのログを含むトランザクション・データを保存できる時間に相当します。Extractが任意の時点で必要とする可能性がある最も古いログを判断するには、SHOWTRANSオプションを使用してSEND EXTRACTコマンドを発行します。データ量とビジネス要件を考慮して最適な保存時間を決定するためにテストを実行しなければならない場合があります。

処理時にExtractで必要なデータがオンラインまたはアーカイブのログに保存されていなかった場合、次のいずれかの修正処理が必要になる可能性があります。

  • Extractを変更して、ログ・データが使用できる後の時点から取得します(さらにターゲットで起こり得るデータ損失を受け入れます)。

  • ソースおよびターゲットのデータを再同期してから、Oracle GoldenGate環境の開始をさらに繰り返す。

アーカイブ・ログの消去

古いアーカイブ・ファイルが新しいバックアップで上書きされる原因となるバックアップグレードまたはアーカイブのオプションを使用していないことを確認します。理想的には、新しいバックアップは、古い名前とは異なる名前の別のファイルにしてください。これによって、Extractが特定のログを探す際にそのログが確実に存在することになり、また、サポートのために必要になった場合に確実にデータを使用できます。

アーカイブ場所の指定

アーカイブ・ログがOracleのデフォルト・ディレクトリ以外の場所にある場合は、Extractパラメータ・ファイルでTRANLOGOPTIONSパラメータのALTARCHIVELOGDESTオプションを使用してそのディレクトリを指定します。

OracleパラメータLOG_ARCHIVE_FORMATで指定されている形式にサブディレクトリが含まれている場合、TRANLOGOPTIONSALTARCHIVEDLOGFORMATオプションを使用しなければならないこともあります。ALTARCHIVEDLOGFORMATによって、サブディレクトリをパスから削除する代替形式が指定されます。たとえば、%T/log_%t_%s_%r.arclog_%t_%s_%r.arcに変更されます。ALTARCHIVEDLOGFORMATを使用するかわりに、手動でサブディレクトリを作成してから、ログ・ファイルをそれに移動することもできます。

その他のプラットフォームに保存されるログのマウント

Extractが作成されるプラットフォームとは異なるプラットフォームに、オンラインおよびアーカイブのREDOログを保存した場合、次の操作を実行します。

  • アーカイブ・ファイルをNFSマウントします。

  • ExtractパラメータTRANLOGOPTIONSLOGSOURCEおよびPATHMAPオプションを使用することで、ファイル構造をソース・システムの構造にマップします。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

アーカイブ・ログ専用モードでのクラシック・キャプチャの構成

Extractは、アーカイブ・ログからのみ読取りを行うよう構成できます。これはアーカイブ・ログのみ(ALO)モードと呼ばれます。

このモードでは、Extractによって、指定された場所に保存されているアーカイブ・ログからのみ読み取られます。ALOモードを使用すると、Extractではデータ・ソースとしてセカンダリ・データベース(スタンバイなど)に転送される本番ログを使用できます。オンライン・ログは使用されません。GoldenGateでは、必要に応じて、セカンダリ・データベースに接続してメタデータとその他の必要なデータを取得します。代替としてALOモードが本番システムでサポートされています。

注意:

ALOモードは、統合キャプチャ・モードで動作するExtractと互換性はありません。

ALOモードの制限および要件

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

  • スタンバイ・データベースの作成後にソース・データベースでログのリセット(RESETLOG)を実行することはできません。

  • 本番システムがOracle RACであり、スタンバイ・データベースがRAC以外である場合、スタンバイ・データベースでALOを使用することはできません。両方のシステムをOracle RACにすることに加え、各システムのノード数も同一にする必要があります。

  • Oracle RAC上のALOでは、ソース・サーバーへの専用接続が必要です。その接続が失われると、Oracle GoldenGateの処理が停止します。

  • Oracle RAC用のOracle GoldenGateをALOモードで使用する際は、別々のアーカイブ・ログ・ディレクトリを使用するのがベスト・プラクティスです。これによって、同じファイル名が2回表示され、それが原因で"out of order scn"エラーがExtractで返される可能性が、回避されます。

  • ExtractがALOモードの場合、LOGRETENTIONパラメータのデフォルトはDISABLEDです。必要に応じてLOGRETENTION設定を使用し、これをオーバーライドできます。

ALOモードのExtractの構成

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

  1. ソース・データベースの表に対して、表レベルおよびデータベース表のサプリメンタル・ロギングを有効にします。(「ロギング・プロパティの構成」 を参照してください。)
  2. Oracle GoldenGateがソース・データベースとは異なるサーバー上で実行されている場合、TNSNAMESファイルに正しいエントリを入力するなど、SQL*Netがリモート・サーバーに接続するように正しく構成されていることを確認します。Extractにソース・データベースへのSQL*Net接続を保持する権限を設定しておく必要があります。
  3. プロセスに割り当てられる資格証明ストアのユーザーの名前にSQL*Net接続文字列を使用します。このユーザーの別名を次に指定します。
    • そのデータベースに接続するすべてのOracle GoldenGateプロセスのパラメータ・ファイル内のUSERIDALIASパラメータ。

    • GGSCIのDBLOGINコマンドのUSERIDALIASの部分。

    注意:

    Oracle GoldenGateを実行しているサーバーにローカルのスタンバイ・サーバーがある場合、ユーザー指定のUSERIDALIASに接続文字列を使用する必要はありません。ユーザーのログイン名のみを入力できます。

    資格証明ストアの使用の詳細は、『Oracle GoldenGateの管理』を参照してください。

  4. ExtractパラメータTRANLOGOPTIONSARCHIVEDLOGONLYオプションを使用します。このオプションを使用すると、v$databaseビューのdb_role列のPRIMARYまたはLOGICAL STANDBYの値によって決まる、プライマリまたはロジカルのスタンバイ・データベースに対してExtractが強制的にALOモードで動作します。デフォルトは、オンライン・ログの読取りになっています。v$databasedb_role列のPHYSICAL STANDBYの値によって決まる、フィジカル・スタンバイ・データベースに対してALOモードを使用する場合、TRANLOGOPTIONSARCHIVEDLOGONLYを指定する必要はありません。データベースがフィジカル・スタンバイであることが検出されると、Extractは自動的にALOモードで動作します。
  5. ご使用の環境に対してTRANLOGOPTIONSの他のオプションが必要になる場合があります。たとえば、使用するコピー・プログラムに応じて、Extractエラーを回避するためにCOMPLETEARCHIVEDLOGONLYオプションが必要になる場合があります。
  6. Extractで表名をソース・オブジェクトIDにマップするには、MAPパラメータを使用します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。
  7. BEGINオプションでタイムスタンプを指定してADD EXTRACTコマンドを発行するか、ADD EXTRACTSEQNOおよびRBAオプションを使用して、Extractグループを追加します。最適なのは、NOW引数を使用するのではなく、データの抽出を開始する既知の開始点をExtractに設定することです。NOWの開始時間は、現在のオンラインREDOログの時間と一致しますが、ALOのExtractではオンライン・ログを読み取ることはできないため、Oracleでのログの切替え時にそのログがアーカイブされるまで待機する必要があります。切替えのタイミングはREDOログのサイズとデータベース・アクティビティのボリュームに依存するため、Extractの開始時とデータのキャプチャ時の間にラグが発生することがあります。これは、通常およびRACのデータベース構成で発生する可能性があります。

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は起動時にソース・データベースから情報(互換性レベル、データベース・タイプ、ソース・データベース検証チェックなど)を収集するので、ソース・データベースへの影響は最小限に抑えられます。

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

注意:

統合Extractはスタンバイ・データベースからはキャプチャできません。これは、データベースへのREADおよびWRITEアクセスが必要ですが、ADGスタンバイではREAD ONLYアクセスしか利用できないためです。

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/時の読取り制限があります)を使用するか、プライマリ・データベースとスタンバイ・データベースの両方で、オプション・ログとアーカイブ・ログをアプリケーション・セキュリティ・マネージャの外に移動します。

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のデータベース構成で発生する可能性があります。

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を起動します。

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

クラシック・キャプチャでのログ読取りのボトルネックの回避

Oracle GoldenGateによってREDOログからデータがキャプチャされると、データベースのロギング・メカニズムによって書き込まれている同じファイルがExtractで読み取られるため、I/Oボトルネックが発生する可能性があります。

同じログを読み取るExtractプロセスの数の増加に伴ってパフォーマンスが低下します。次のことが可能です。

  • さらに高速なドライバおよびコントローラを使用してみます。さらに高速なI/OシステムでExtractとデータベースの両方のロギング・メカニズムの速度が速くなります。

  • RAID 0+1にログを保存します。書き込まれたすべてのブロックでチェックサムを実行し、高レベルの連続したI/Oには不向きなRAID5は使用しないでください。