Oracle GoldenGateダイレクト・ロードを使用したデータのロード

Oracle GoldenGateダイレクト・ロードを使用するには、Oracle GoldenGateの初期ロードExtractを実行してソース・レコードを抽出し、それらのレコードを初期ロードReplicatタスクに直接送信します。タスクは、Managerプロセスによって動的に起動されるため、Collectorプロセスやファイルを使用する必要はありません。初期ロードReplicatタスクによって、ターゲット・データベースに対するロードがサイズの大きいブロック単位で行われます。変換およびマッピングは、ExtractまたはReplicat、あるいはその両方で実行できます。ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。

Replicatで使用するポートを制御し、検索およびバインドのプロセスを高速化するには、Managerのパラメータ・ファイルでDYNAMICPORTLISTパラメータを指定します。Managerは、このパラメータで指定されたポート番号のリストをReplicatタスク・プロセスに渡します。Replicatはまずこのリストのポートを検索し、リストのポートが使用できない場合にのみ、デフォルトのManagerポート番号からスキャンを開始して、使用可能なポートが見つかるまで昇順でスキャンを続けます。

このメソッドは、標準的な文字、数字、日時データ型の他に、CLOBNCLOBBLOBLONGXML、および次の属性とともに埋め込まれているユーザー定義データ型(UDT)もサポートします: CHARNCHARVARCHARNVARCHARRAWNUMBERDATEFLOATTIMESTAMPCLOBBLOBXMLおよびUDT。必要に応じて、ソースとターゲットの間で文字セットが変換されます。

このメソッドはOracle内部表をサポートしていますが、ロード時に、ソースとターゲットの文字セットを変換しません。

Oracle GoldenGateダイレクト・ロードを使用してデータをロードする手順

  1. 「初期ロードの前提条件」を満たしていることを確認します。
  2. ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。
    START MANAGER
    

    ノート:

    Windowsクラスタでは、クラスタ・アドミニストレータでManagerリソースを起動します。

  3. ソースで、次のコマンドを発行して初期ロードExtractを作成します。
    ADD EXTRACT initial-load_Extract, SOURCEISTABLE
    

    説明:

    • initial-load_Extractは、8文字以内の初期ロードExtractの名前です。

    • SOURCEISTABLEでは、ソース表から完全なレコードを直接読み取る初期ロード・プロセスとしてExtractを指定します。その他のADD EXTRACTサービス・オプションまたはデータソース引数を使用しないでください。

  4. ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。
    EDIT PARAMS initial-load_Extract
    
  5. 表7-2にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。Oracle GoldenGateダイレクト・ロード用の初期ロードExtractパラメータ・ファイルの例を次に示します。
    EXTRACT initext
    SOURCEDB mydb, USERIDALIAS ogg
    RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey
    RMTTASK REPLICAT, GROUP initrep
    TABLE hr.*;
    TABLE sales.*;
    

    表7-2 Oracle GoldenGateダイレクト・ロードのための初期ロードExtractのパラメータ

    パラメータ 説明
    EXTRACT initial-load_Extract

    初期ロードExtractを指定します。

    SOURCEDB dsn
    [, USERIDALIAS alias, options |
    , USERID user, options]

    データベース接続情報を指定します。

    SOURCEDBには、ソースのデータソース名(DSN)を指定します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。

    RMTHOSTOPTIONS hostname,
    MGRPORT portnumber
    [, ENCRYPT algorithm KEYNAME keyname]

    ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。

    RMTTASK replicat,
    GROUP initial-load_Replicat
    • initial-load_Replicatは、初期ロードReplicatグループの名前です

    ターゲット・システムのManagerに、初期ロードReplicatを1回かぎりのタスクとして動的に起動するように指示します。

    TABLE container.owner.object;

    オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・データベースの場合は、SOURCECATALOGが使用されていないかぎり、オブジェクト名にコンテナまたはカタログの名前を含める必要があります。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    TABLEEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

    関連付けられたTABLE文のワイルドカード表記から特定のオブジェクトを除外するために、互いに組み合せて使用できるパラメータ。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  6. 『Oracle GoldenGateリファレンス』にリストされているExtractの適切なオプション・パラメータを入力します。
  7. ファイルを保存して閉じます。
  8. ターゲット・システムで、次のコマンドを発行して初期ロードReplicatタスクを作成します。
    ADD REPLICAT initial-load_Replicat, SPECIALRUN
    

    説明:

    • initial-load_Replicatは、初期ロードReplicatタスクの名前です。

    • SPECIALRUNでは、初期ロードReplicatを継続的なプロセスではなく1回かぎりの実行として指定します。

  9. ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。
    EDIT PARAMS initial-load_Replicat
    
  10. 表7-3にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。Oracle GoldenGateダイレクト・ロード用の初期ロードReplicatパラメータ・ファイルの例を次に示します。
    REPLICAT initrep
    TARGETDB mydb, USERIDALIAS ogg
    SOURCEDEFS /ggs/dirdef/source_defs
    MAP hr.*, TARGET hr.*;
    MAP sales.*, TARGET hr.*;
    

    表7-3 Oracle GoldenGateダイレクト・ロードのための初期ロードReplicatのパラメータ

    パラメータ 説明
    REPLICAT initial-load_Replicat

    Managerで起動する初期ロードReplicatタスクを指定します。初期ロードReplicatを作成したときに指定した名前を使用します。

    [TARGETDB dsn | container]
    [, USERIDALIAS alias, options |
    , USERID user, options]

    データベース接続情報を指定します。

    TARGETDBには、ターゲットのデータソース名(DSN)またはOracleコンテナを指定します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。

    {SOURCEDEFS full_pathname} |
    ASSUMETARGETDEFS
    • SOURCEDEFSは、ソース表とターゲット表に異なる定義が含まれる場合に使用します。DEFGENによって生成されたソース定義ファイルを指定します。

    • ASSUMETARGETDEFSは、ソース表とターゲット表に同じ定義が含まれる場合に使用します。

    データ定義の解釈方法を指定します。

    SOURCECATALOG

    デフォルトのソースOracleコンテナを指定します。それらのデータベースに対して3つの部分からなる名前が必要とされる場合に、2つの部分からなる名前(schema.object)を使用できるようにします。このパラメータのインスタンスを複数使用すると、MAPのパラメータの異なる組合せに対して、異なるデフォルト・コンテナまたはカタログを指定できます。

    MAP container.owner.object,
    TARGET owner.object[, DEF template]
    ;

    単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。MAPにはソース・オブジェクトを指定し、TARGETにはターゲット・オブジェクトを指定します。

    ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースの場合は、SOURCECATALOGが使用されていないかぎり、ソース・オブジェクト名にコンテナまたはカタログの名前を含める必要があります。

    ターゲット・オブジェクトに対しては、データベースに関係なく、名前のowner.objectコンポーネントだけを指定します。Replicatは、1つのOracleコンテナにのみ接続できます。データのロード先の各コンテナまたはカタログごとに、別々のReplicatプロセスを使用してください。

    パラメータ・ファイル内のオブジェクト名指定のガイドラインは、「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。

    DEFオプションは、定義テンプレートを指定します。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    MAPEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

    関連付けられたMAP文のワイルドカード表記から特定のソース・オブジェクトを除外するために、互いに組み合せて使用できるパラメータ。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

  11. 『Oracle GoldenGateリファレンス』にリストされているReplicatの適切なオプション・パラメータを入力します。
  12. パラメータ・ファイルを保存して閉じます。
  13. ソース・システムで、変更の抽出を開始します。
    START EXTRACT group
    
  14. Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONSパラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。
  15. (Oracleで順序をレプリケートする場合)update.Sequenceに対するEXECUTE権限を持つユーザーとしてDBLOGINコマンドを発行します。
    GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD password [encryption_options]
    
  16. (Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。
    FLUSH SEQUENCE owner.sequence
    
  17. ソース・システムで、初期ロードExtractを起動します。
    START EXTRACT initial-load_Extract

    ノート:

    初期ロードReplicatは起動しないでください。Managerプロセスで自動的に起動し、ロードの完了時に終了します。

  18. ターゲット・システムで、次のコマンドを発行してロードが終了したかどうかを確認します。ロードが終了するまで待機してから、次のステップに進みます。
    VIEW REPORT initial-load_Replicat
    
  19. ターゲット・システムで、変更のレプリケーションを開始します。
    START REPLICAT group
    
  20. ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。
    INFO REPLICAT group
    
  21. 初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICATコマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。
  22. ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONSパラメータをオフにし、初期ロードのエラー処理を無効化します。
    SEND REPLICAT group, NOHANDLECOLLISIONS
    
  23. ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONSパラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONSが再度有効化されることを防止します。

    注意:

    ローカル・オペレーティング・システムのものとは異なる文字セットを使用した既存のパラメータ・ファイル(CHARSETオプションを使用して別の文字セットを指定したファイルなど)は、VIEW PARAMSコマンドまたはEDIT PARAMSコマンドを使用して表示や編集を行わないでください。そのようなパラメータ・ファイルはGGSCIの外部から表示してください。そうしないと、内容が破損する可能性があります。

  24. パラメータ・ファイルを保存して閉じます。これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。