ヘッダーをスキップ
Oracle® GoldenGate Oracle GoldenGateの管理for Windows and UNIX
12c (12.1.2)
E49846-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

16 初期ロードによるOracle GoldenGateのインスタンス化

この章では、初期データ・ロードの実行によるレプリケーション環境のインスタンス化について説明します。

この章の内容は次のとおりです。

16.1 初期ロード手順の概要

Oracle GoldenGateを使用して、次の処理を実行できます。

  • スタンドアロンのバッチ・ロードを実行して、移行などの目的でデータベース表にデータを移入できます。

  • Oracle GoldenGateとの変更同期に備えて、初期同期の実行の一環としてデータベース表にデータをロードできます。

16.1.1 初期ロードのパフォーマンスの向上

データベース・ユーティリティで実行される方法以外のすべての初期ロード方式では、Oracle GoldenGateのパラレル・プロセスを使用することで、大規模データベースをより高速にロードできます。パラレル処理を使用するには、次の手順を実行します。

  1. この章の指示に従って、使用するパラレル・プロセスの各セットに対して初期ロードExtractおよび初期ロードReplicatを作成します。

  2. TABLEパラメータおよびMAPパラメータを使用して、ExtractプロセスとReplicatプロセスのペアごとに異なる表セットを指定します。または、TABLESQLPREDICATEオプションを使用して、異なるExtractプロセス間でサイズの大きい表の行を分割します。

すべての初期ロード方式で、RMTHOSTパラメータにTCPBUFSIZEを使用する方が、これを使用しないロードよりスループットが3倍向上することがテストで示されています。ターゲット・システムがNonStopの場合、このパラメータは使用しないでください。

16.1.2 初期ロードの前提条件

次の初期ロード実行前提条件に適合していることを検証します。

16.1.2.1 DDL処理の無効化

初期ロードを実行する前に、DDLの抽出およびレプリケーションを無効化します。DDL処理は、ExtractおよびReplicatのパラメータ・ファイルのDDLパラメータによって制御されます。

16.1.2.2 ターゲット表の準備

次に、ロードを高速化してエラーを回避するために役立つ推奨事項を示します。

  • データ: ターゲット表が空であることを確認します。そうでない場合、行の重複エラーや既存の行とロードされる行との間に競合が発生することがあります。

  • 制約: 外部キー制約およびチェック制約を無効化します。外部キー制約ではエラーが発生する可能性があり、チェック制約ではロード・プロセスが低速化する可能性があります。制約は、ロードが正常に終了した後に再度有効化できます。

  • 索引: ターゲット表から索引を削除します。索引は、挿入には必要ありません。索引によって、ロード・プロセスの速度が大幅に低下します。表に挿入される行ごとに、データベースではその表に対するすべての索引が更新されます。索引は、ロードが終了した後に再度追加できます。


    注意:

    1次索引は、DB2 for z/OSのターゲット表にアクセスするすべてのアプリケーションに必要です。1次索引以外の他のすべての索引は、ターゲット表から削除できます。

  • キー: Oracle GoldenGateでレプリケート済の増分データ変更とロードの結果とを調整するには、各ターゲット表に主キーまたは一意キーが含まれている必要があります。アプリケーションを通じてキーを作成できない場合、TABLEパラメータおよびMAPパラメータのKEYCOLSオプションを使用して、Oracle GoldenGate用の代替キーとなる列を指定します。キーは、処理対象の行の識別に役立ちます。キーを作成できない場合、ロードのためにソース・データベースを静止する必要があります。

16.1.2.3 Managerプロセスの構成

ソース・システムとターゲット・システムで、Managerプロセスを構成して起動します。1つのManagerを、複数の初期ロード・プロセスと変更同期プロセスに使用できます。詳細は、第3章「Managerおよびネットワーク通信の構成」を参照してください。

16.1.2.4 データ定義ファイルの作成

データ定義ファイルは、ソース・データベースとターゲット・データベースに異なる定義が存在する場合に必要です。Oracle GoldenGateは、このファイルを使用して、データをターゲット・データベースで必要とされる形式に変換します。詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。

16.1.2.5 変更同期グループの作成

初期ロード中のトランザクション変更の取得およびレプリケーションに備えるため、オンラインのExtractグループおよびReplicatグループを作成します。これらのグループは、ロード手順の実行中に起動できます。詳細は、第14章「オンライン変更同期の構成」を参照してください。


注意:

静止されたソース・データベースからロードを実行し、続けて継続的な変更同期を実行しない場合、これらのグループは省略できます。

初期ロードの指示で要求されるまで、ExtractグループまたはReplicatグループは起動しないでください。変更同期によって、ロードが適用されている間にトランザクション変更が追跡され、その後ターゲット表がそれらの変更に応じて調整されます。


注意:

Extractが新しいOracle GoldenGate構成で初めて起動されたとき、開いているトランザクションはスキップされます。Extractの起動後に開始されたトランザクションのみキャプチャされます。

16.1.2.6 プロセス・グループ間でのパラメータの共有

変更同期パラメータ・ファイルで使用するパラメータの一部は、初期ロードのExtractおよびReplicatパラメータ・ファイルにも必要です。これらのパラメータは、あるパラメータ・ファイルから別のパラメータ・ファイルにコピーできます。または、これらのパラメータを中央ファイルに格納し、各パラメータ・ファイルでOBEYパラメータを使用して取得できます。別の方法として、共有パラメータ用のOracle GoldenGateマクロを作成し、そのマクロをMACROパラメータを使用して各パラメータ・ファイルからコールできます。

OBEYおよびマクロの使用方法の詳細は、第4章「Oracle GoldenGateプロセス・インタフェースのスタート・ガイド」を参照してください。

16.2 データベース・ユーティリティを使用したデータのロード

データベース・コピー・ユーティリティを使用してターゲット・データを構築するには、データベース・ユーティリティでデータの静的コピーを作成および適用しながら、変更同期Extractグループを起動して進行中のデータ変更を抽出します。コピーが終了したら、変更同期Replicatグループを起動して、コピーの適用中に変更された行を再同期します。これ以降、ExtractとReplicatの両方が継続的に実行され、データ同期が維持されます。この方法では、初期ロード用の特別なExtractプロセスまたはReplicatプロセスを使用しません。

initsync_copyutil.jpgの説明が続きます。
図initsync_copyutil.jpgの説明


注意:

この方法でロードされるオブジェクトとデータ型は、使用するデータベース用のOracle GoldenGateおよび使用するデータベース・ユーティリティでサポートされている必要があります。データベースに対してサポートされているアイテムについては、そのデータベースに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。データベース・ユーティリティでサポートされているアイテムについては、そのデータベース・ベンダーのドキュメントを参照してください。

  1. 16.1.2項「初期ロードの前提条件」の要件を満たしていることを確認します。

  2. ソース・システムとターゲット・システムで、GGSCIを実行してManagerプロセスを起動します。

    START MANAGER
    

    注意:

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

  3. ソース・システムで、変更の抽出を開始します。

    START EXTRACT group 
    

    説明:

    groupは、Extractグループの名前です。

  4. (Oracleで順序をレプリケートする場合)update.Sequenceに対するEXECUTE権限を持つユーザーとしてDBLOGINコマンドを発行します。

    GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD password [encryption_options]
    
  5. (Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。

    FLUSH SEQUENCE owner.sequence
    
  6. ソース・システムで、コピーの作成を開始します。

  7. コピーが終了するまで待機し、完了した時刻を記録します。

  8. Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONSパラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。


    注意:

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

  9. ターゲット・システムで、変更のレプリケーションを開始します。

    START REPLICAT group
    

    説明:

    groupは、Replicatグループの名前です。

  10. ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。

    INFO REPLICAT group
    
  11. 初期ロード中に生成されたすべての変更データが変更のレプリケーションにより適用されたことを確認するまで、INFO REPLICATコマンドを発行し続けます。前に記録した完了時刻を参照してください。たとえば、コピーが12:05に停止した場合、変更のレプリケーションによってその時刻までデータが適用されていることを確認します。

  12. ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONSパラメータをオフにし、初期ロードのエラー処理を無効化します。

    SEND REPLICAT group, NOHANDLECOLLISIONS
    
  13. ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONSパラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONSが再度有効化されることを防止します。


    注意:

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

  14. パラメータ・ファイルを保存して閉じます。

    これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。

16.3 Oracle Data Pumpを使用したデータのロード

この方法では、Oracle Data Pumpユーティリティを使用して、ターゲット・データを構築します。コピーをターゲットに適用した後、コピーが停止したSCNを記録します。続いて指定されたSCNでExtract、データ・ポンプおよびReplicatを開始します。コピーに含まれているトランザクションは、整合性違反によるコリジョンを回避するためにスキップされます。プロセスの開始地点から、Oracle GoldenGateはデータ同期を維持します。この方法では、初期ロードOracle GoldenGateプロセスは不要です。

Oracle Data Pumpでインスタンス化を実行するには、My Oracle Supportドキュメント1276058.1を参照してください。このドキュメントを入手するには、次のようにします。

  1. http://support.oracle.comに移動します。

  2. 「Sign In」の下部から言語を選択し、Oracleシングル・サインオン(SSO)でログインします。

  3. 「Dashboard」で、見出し「Knowledge Base」を展開します。

  4. 「Enter search terms」の下の箇所で、ドキュメントID「1276058.1」を貼り付けるか入力し、「Search」をクリックします。

  5. 検索結果で「Oracle GoldenGate Best Practices: Instantiation from an Oracle Source Database [Article ID 1276058.1]」を選択します。

  6. 「Attachments」の下のリンクをクリックして、記事を開きます。

16.4 ファイルからReplicatへのデータのロード

Replicatを使用してターゲット・データを構築するには、初期ロードExtractを使用してソース表からソース・レコードを抽出し、それらのレコードを正規形式で抽出ファイルに書き込みます。初期ロードReplicatは、データベース・インタフェースを使用してこのファイルからデータをロードします。ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。

ロード中、レコードは、1つずつターゲット・データベースに適用されるため、この方法は他の初期ロード方式と比較して非常に低速です。この方法では、ソース・システムとターゲット・システムのいずれかでデータ変換を実行できます。

initsyncreplicat.jpgの説明が続きます。
図initsyncreplicat.jpgの説明

ファイルからReplicatにデータをロードする手順

  1. 16.1.2項「初期ロードの前提条件」の要件を満たしていることを確認します。

  2. ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。

    START MANAGER
    

    注意:

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

  3. ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。

    EDIT PARAMS initial-load_Extract
    
  4. 表16-1にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからReplicatにデータをロードするための初期ロードExtractパラメータ・ファイルの例を次に示します。

    SOURCEISTABLE
    SOURCEDB mydb, USERIDALIAS ogg
    RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey
    ENCRYPTTRAIL AES192
    RMTFILE /ggs/dirdat/initld, MEGABYTES 2, PURGE
    TABLE hr.*;
    TABLE sales.*;
    

    表16-1 初期ロードExtractパラメータ

    パラメータ 説明
    SOURCEISTABLE
    

    Extractをソース表からレコードを直接抽出する初期ロード・プロセスとして指定します。

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

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

    SOURCEDBには、ソースのデータ・ソース名(DSN)またはSQL/MXカタログを指定します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

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

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

    ENCRYPTTRAIL algorithm
    

    リモート・ファイルでデータを暗号化します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    RMTFILE path,
    [MAXFILES number, MEGABYTES n]
    
    • pathは、ファイルの相対名または完全修飾名です。

    • MAXFILESでは、必要に応じてエージングされる一連のファイルを作成します。ファイルがオペレーティング・システムのファイル・サイズ制限を超える可能性がある場合に使用します。

    • MEGABYTESでは、各ファイルのサイズを指定します。

    ロード・データを書き込む抽出ファイルを指定します。Oracle GoldenGateでは、ロード中にこのファイルが作成されます。チェックポイントは、RMTFILEでは保持されません。

    抽出ファイルのサイズを2GB以下にする必要があることに注意してください。

    TABLE [container. | catalog.]owner.object;
    

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

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

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    TABLEEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  5. Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているExtractの適切なオプション・パラメータを入力します。

  6. パラメータ・ファイルを保存して閉じます。

  7. ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。

    EDIT PARAMS initial-load_Replicat
    
  8. 表16-2にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからReplicatにデータをロードするための初期ロードReplicatパラメータ・ファイルの例を次に示します。

    SPECIALRUN
    END RUNTIME
    TARGETDB mydb, USERIDALIAS ogg
    EXTFILE /ggs/dirdat/initld
    SOURCEDEFS /ggs/dirdef/source_defs
    MAP hr.*, TARGET hr.*;
    MAP sales.*, TARGET hr.*;
    

    表16-2 初期ロードReplicatパラメータ

    パラメータ 説明
    SPECIALRUN
    

    初期ロードReplicatをチェックポイントを使用しない1回かぎりの実行として実装します。

    END RUNTIME
    

    ロードの完了時に終了するように初期ロードReplicatに指示します。

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

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

    TARGETDBには、ターゲットのデータソース名(DSN)またはSQL/MXカタログを指定します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    EXTFILE path
    
    • pathは、ファイルの相対名または完全修飾名です。

    ExtractパラメータのRMTFILEで指定されている入力抽出ファイルを指定します。

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

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

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

    データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。

    SOURCECATALOG

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

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

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

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

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

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

    DEFオプションは、定義テンプレートを指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。MAPパラメータの追加情報とオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    MAPEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  9. Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。

  10. ファイルを保存して閉じます。

  11. Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONSパラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。

  12. ソース・システムで、変更の抽出を開始します。

    START EXTRACT group
    
  13. (Oracleで順序をレプリケートする場合)update.Sequenceに対するEXECUTE権限を持つユーザーとしてDBLOGINコマンドを発行します。

    GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD password [encryption_options]
    
  14. (Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。

    FLUSH SEQUENCE owner.sequence
    
  15. ソース・システムのOracle GoldenGateがインストールされているディレクトリから、初期ロードExtractを起動します。

    UNIXおよびLinux:

    $ /GGS directory/extract paramfile dirprm/initial-load_Extract.prm reportfile path
    

    Windows:

    C:\> GGS directory\extract paramfile dirprm\initial-load_Extract.prm reportfile path
    

    説明:

    initial-load_Extractはパラメータ・ファイルの作成時に使用した初期ロードExtractの名前であり、pathはExtractレポート・ファイルの相対名または完全修飾名です。

  16. オペレーティング・システムの標準的なファイル表示方法を使用してExtractレポート・ファイルを表示し、初期抽出の進行状況および結果を確認します。

  17. 初期抽出が終了するまで待機します。

  18. ターゲット・システムで、初期ロードReplicatを起動します。

    UNIXおよびLinux:

    $ /GGS directory/replicat paramfile dirprm/initial-load_Replicat.prm reportfile path
    

    Windows:

    C:\> GGS directory\replicat paramfile dirprm\initial-load_Replicat.prm reportfile path
    

    説明:

    initial-load_Replicatはパラメータ・ファイルの作成時に使用した初期ロードReplicatの名前であり、pathはReplicatレポート・ファイルの相対名または完全修飾名です。

  19. 初期ロードReplicatの実行が終了したら、オペレーティング・システムの標準的なファイル表示方法を使用してReplicatレポート・ファイルを表示し、結果を確認します。

  20. ターゲット・システムで、変更のレプリケーションを開始します。

    START REPLICAT group
    
  21. ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。

    INFO REPLICAT group
    
  22. 初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICATコマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。

  23. ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONSパラメータをオフにし、初期ロードのエラー処理を無効化します。

    SEND REPLICAT group, NOHANDLECOLLISIONS
    
  24. ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONSパラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONSが再度有効化されることを防止します。


    注意:

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

  25. パラメータ・ファイルを保存して閉じます。

    これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。

16.5 ファイルからデータベース・ユーティリティへのデータのロード

データベースのバルク・ロード・ユーティリティを使用するには、初期ロードExtractを使用してソース表からソース・レコードを抽出し、それらのレコードを外部ASCII形式で抽出ファイルに書き込みます。ファイルを読み取ることができるのは、Oracle SQL*Loader、Microsoft社のBCP、DTSまたはSQL Server Integration Services (SSIS)ユーティリティ、あるいはIBM社のロード・ユーティリティ(LOADUTIL)です。


注意:

この方法でロードされるオブジェクトとデータ型は、使用するデータベース用のOracle GoldenGateおよび使用するデータベース・ユーティリティでサポートされている必要があります。データベースに対してサポートされているアイテムについては、そのデータベースに対応するOracle GoldenGateのインストレーションおよび構成のドキュメントを参照してください。データベース・ユーティリティでサポートされているアイテムについては、そのデータベース・ベンダーのドキュメントを参照してください。

ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。ロード処理の一環として、Oracle GoldenGateで初期ロードReplicatを使用して、データベース・ユーティリティに必要な実行ファイルと制御ファイルを作成します。

制御ファイルは動的に生成され、変換ルールで事前構成できないため、すべてのデータ変換はソース・システムで初期ロードExtractによって実行される必要があります。

initsyncbulk.jpgの説明が続きます。
図initsyncbulk.jpgの説明

ファイルからデータベース・ユーティリティにデータをロードする手順

  1. 「初期ロードの前提条件」を満たしていることを確認します。

  2. ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。

    START MANAGER
    
  3. ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。

    EDIT PARAMS initial-load_Extract
    
  4. 表16-3にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからデータベース・ユーティリティにデータをロードするための初期ロードExtractパラメータ・ファイルの例を次に示します。

    SOURCEISTABLE
    SOURCEDB mydb, USERIDALIAS ogg
    RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey
    ENCRYPTTRAIL AES192
    FORMATASCII, SQLLOADER
    RMTFILE /ggs/dirdat/initld, MEGABYTES 2, PURGE
    TABLE hr.*;
    TABLE sales.*;
    

    表16-3 初期ロードExtractパラメータ

    パラメータ 説明
    SOURCEISTABLE
    

    Extractを、ソース表から直接レコードを抽出する初期ロード・プロセスとして指定します。

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

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

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

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    RMTHOSTOPTIONS hostname,
    MGRPORT portnumber
    [, ENCRYPT algorithm KEYNAME keyname]
    [, PARAMS - E -d defs_file]
    
    • -Eは、ASCIIをEBCDICに変換します。

    • -d defs_fileでは、ソース定義ファイルを指定します。

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

    PARAMS句は、IBM社のロード・ユーティリティでロードする場合に必要です(Oracle GoldenGateでソース定義ファイルを参照する必要があるため)。

    ENCRYPTTRAIL algorithm
    

    リモート・ファイルでデータを暗号化します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    FORMATASCII, {BCP | SQLLOADER}
    
    • BCPは、BCP、DTSまたはSSISに使用します。

    • SQLLOADERは、Oracle SQL*LoaderまたはIBM社のロード・ユーティリティに使用します。

    出力をデフォルトの正規形式ではなくASCIIテキストとしてフォーマットするように指定します。このパラメータは、RMTFILEの前にリストする必要があります。制約事項とオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    RMTFILE path,
    [MAXFILES number, MEGABYTES n]
    
    • pathは、ファイルの相対名または完全修飾名です。

    • MAXFILESでは、必要に応じてエージングされる一連のファイルを作成します。ファイルがオペレーティング・システムのファイル・サイズ制限を超える可能性がある場合に使用します。

    • MEGABYTESでは、各ファイルのサイズ(最大2MB)を指定します。

    ロード・データを書き込む抽出ファイルを指定します。Oracle GoldenGateでは、ロード中にこのファイルが作成されます。チェックポイントは、RMTFILEでは保持されません。

    TABLE [container.]owner.object;
    

    オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・コンテナ・データベースの場合は、SOURCECATALOGが使用されていないかぎり、オブジェクト名にコンテナの名前を含める必要があります。パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    TABLEEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  5. Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているExtractの適切なオプション・パラメータを入力します。

  6. パラメータ・ファイルを保存して閉じます。

  7. ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。

    EDIT PARAMS initial-load_Replicat
    
  8. 表16-4にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。ファイルからデータベース・ユーティリティにデータをロードするための初期ロードReplicatパラメータ・ファイルの例を次に示します。

    GENLOADFILES sqlldr.tpl
    USERIDALIAS ogg
    EXTFILE /ggs/dirdat/initld
    SOURCEDEFS /ggs/dirdef/source_defs
    MAP hr.*, TARGET hr.*;
    MAP sales.*, TARGET hr.*;
    

    表16-4 初期ロードReplicatパラメータ

    パラメータ 説明
    GENLOADFILES template
    

    データベース・ユーティリティの実行ファイルと制御ファイルを生成します。このパラメータの使用方法の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

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

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

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

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    EXTFILE path |
    EXTTRAIL path
    
    • pathは、ファイルの相対名または完全修飾名です。

    • EXTTRAILは、Extractのパラメータ・ファイルでRMTFILEパラメータのMAXFILESオプションを使用している場合にのみ使用します。

    ExtractパラメータのRMTFILEで指定されている抽出ファイルを指定します。

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

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

    データ定義の解釈方法を指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。

    SOURCECATALOG

    以降のMAP文に対して、マルチテナント・コンテナ・データベース内のデフォルトの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プロセスを使用してください。

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

    DEFオプションは、定義テンプレートを指定します。データ定義の詳細は、第13章「レプリケートされたデータとメタデータとの関連付け」を参照してください。MAPパラメータの詳細とオプションについては、Oracle GoldenGate リファレンスfor Windows and UNIXを参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    MAPEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  9. Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。

  10. パラメータ・ファイルを保存して閉じます。

  11. Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONSパラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。

  12. ソース・システムで、変更の抽出を開始します。

    START EXTRACT group
    
  13. (Oracleで順序をレプリケートする場合)update.Sequenceに対するEXECUTE権限を持つユーザーとしてDBLOGINコマンドを発行します。

    GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD password [encryption_options]
    
  14. (Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。

    FLUSH SEQUENCE owner.sequence
    
  15. ソース・システムのOracle GoldenGateがインストールされているディレクトリから、初期ロードExtractを起動します。

    UNIXおよびLinux:

    $ /GGS directory/extract paramfile dirprm/initial-load_Extract.prm reportfile path
    

    Windows:

    C:\> GGS directory\extract paramfile dirprm\initial-load_Extract.prm reportfile path
    

    説明:

    initial-load_Extractはパラメータ・ファイルの作成時に使用した初期ロードExtractの名前であり、pathはExtractレポート・ファイルの相対名または完全修飾名です。

  16. オペレーティング・システムの標準的なファイル表示方法を使用してExtractレポート・ファイルを表示し、初期抽出の進行状況および結果を確認します。

  17. 初期抽出が終了するまで待機します。

  18. ターゲット・システムで、初期ロードReplicatを起動します。

    UNIXおよびLinux:

    $ /GGS directory/replicat paramfile dirprm/initial-load_Replicat.prm reportfile path
    

    Windows:

    C:\> GGS directory\replicat paramfile dirprm\initial-load_Replicat.prm reportfile path
    

    説明:

    initial-load_Replicatはパラメータ・ファイルの作成時に使用した初期ロードReplicatの名前であり、pathはReplicatレポート・ファイルの相対名または完全修飾名です。

  19. 初期ロードReplicatの実行が終了したら、オペレーティング・システムの標準的なファイル表示方法を使用してReplicatレポート・ファイルを表示し、結果を確認します。

  20. ASCII形式の抽出ファイルと、初期ロードReplicatによって作成された実行ファイルおよび制御ファイルを使用して、データベース・ユーティリティでデータをロードします。

  21. ターゲット表へのロードが完了するまで待機します。

  22. ターゲット・システムで、変更のレプリケーションを開始します。

    START REPLICAT group
    
  23. ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。

    INFO REPLICAT group
    
  24. 初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICATコマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。

  25. ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONSパラメータをオフにし、初期ロードのエラー処理を無効化します。

    SEND REPLICAT group, NOHANDLECOLLISIONS
    
  26. ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONSパラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONSが再度有効化されることを防止します。


    注意:

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

  27. パラメータ・ファイルを保存して閉じます。

    これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。

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

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

initsync_dirload.jpgの説明が続きます。
図initsync_dirload.jpgの説明

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. 表16-5にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。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.*;
    

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

    パラメータ 説明
    EXTRACT initial-load_Extract
    

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

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

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

    SOURCEDBには、ソースのデータソース名(DSN)またはSQL/MXカタログを指定します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    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. | catalog.]owner.object;
    

    オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・データベースまたはSQL/MXデータベースの場合は、SOURCECATALOGが使用されていないかぎり、オブジェクト名にコンテナまたはカタログの名前を含める必要があります。パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    TABLEEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  6. Oracle GoldenGateリファレンスfor Windows and UNIXにリストされている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. 表16-6にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。Oracle GoldenGateダイレクト・ロード用の初期ロードReplicatパラメータ・ファイルの例を次に示します。

    REPLICAT initrep
    TARGETDB mydb, USERIDALIAS ogg
    SOURCEDEFS /ggs/dirdef/source_defs
    MAP hr.*, TARGET hr.*;
    MAP sales.*, TARGET hr.*;
    

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

    パラメータ 説明
    REPLICAT initial-load_Replicat
    

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

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

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

    TARGETDBには、ターゲットのデータソース名(DSN)、OracleコンテナまたはSQL/MXカタログを指定します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

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

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

    データ定義の解釈方法を指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。

    SOURCECATALOG

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

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

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

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

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

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

    DEFオプションは、定義テンプレートを指定します。データ定義の詳細は、第13章「レプリケートされたデータとメタデータとの関連付け」を参照してください。MAPパラメータの詳細とオプションについては、Oracle GoldenGate リファレンスfor Windows and UNIXを参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    MAPEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  11. Oracle GoldenGateリファレンスfor Windows and UNIXにリストされている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でデータ変更の同期が続けられます。

16.7 ダイレクト・バルク・ロードを使用したSQL*Loaderへのデータのロード

Oracle SQL*Loaderユーティリティを使用してターゲット・データを構築するには、Oracle GoldenGateの初期ロードExtractを実行してソース・レコードを抽出し、それらのレコードを初期ロードReplicatタスクに直接送信します。タスクは、Managerプロセスによって動的に起動されるプロセスであり、Collectorプロセスやファイルを使用する必要はありません。初期ロードReplicatタスクは、SQL*LoaderのAPIとのインタフェースになり、ダイレクト・パス・バルク・ロードとしてデータをロードします。データ・マッピングと変換は、初期ロードExtractまたは初期ロードReplicat、あるいはその両方で行えます。ロード中、変更同期グループは、増分変更を抽出してレプリケートします。その後、これらの変更は、ロードの結果に応じて調整されます。

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

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

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

initsync_dirbulk.jpgの説明が続きます。
図initsync_dirbulk.jpgの説明

ダイレクト・バルク・ロードを使用してSQL*Loaderにデータをロードする手順

  1. 「初期ロードの前提条件」の要件を満たしていることを確認します。

  2. LOCK ANY TABLEをターゲットOracleデータベースのReplicatデータベース・ユーザーに付与します。

  3. ソース・システムとターゲット・システムで、GGSCIを実行してManagerを起動します。

    START MANAGER
    
  4. ソース・システムで、次のコマンドを発行して初期ロードExtractを作成します。

    ADD EXTRACT initial-load_Extract, SOURCEISTABLE
    

    説明:

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

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

  5. ソース・システムで、次のコマンドを発行して初期ロードExtractのパラメータ・ファイルを作成します。

    EDIT PARAMS initial-load_Extract
    
  6. 表16-7にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。SQL*Loaderへのダイレクト・バルク・ロード用の初期ロードExtractパラメータ・ファイルの例を次に示します。

    EXTRACT initext
    SOURCEDB mydb, USERIDALIAS ogg
    RMTHOSTOPTIONS ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey
    RMTTASK REPLICAT, GROUP initrep
    TABLE hr.*;
    TABLE sales.*;
    

    表16-7 SQL*Loaderへのダイレクト・バルク・ロードのための初期ロードExtractのパラメータ

    パラメータ 説明
    EXTRACT initial-load_Extract
    

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

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

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

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    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が使用されていないかぎり、オブジェクト名にコンテナの名前を含める必要があります。パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    TABLEEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  7. 適切なオプション・パラメータを入力します。

  8. ファイルを保存して閉じます。

  9. ターゲット・システムで、次のコマンドを発行して初期ロードReplicatを作成します。

    ADD REPLICAT initial-load_Replicat, SPECIALRUN
    

    説明:

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

    • SPECIALRUNでは、初期ロードReplicatを、継続的プロセスではなく、ワンタイム・タスクとして識別します。

  10. ターゲット・システムで、次のコマンドを発行して初期ロードReplicatのパラメータ・ファイルを作成します。

    EDIT PARAMS initial-load_Replicat
    
  11. 表16-8にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。SQL*Loaderへのダイレクト・ロード用の初期ロードReplicatパラメータ・ファイルの例を次に示します。

    REPLICAT initrep
    USERIDALIAS ogg
    BULKLOAD
    SOURCEDEFS /ggs/dirdef/source_defs
    MAP hr.*, TARGET hr.*;
    MAP sales.*, TARGET hr.*;
    

    表16-8 SQL*Loaderへのダイレクト・ロードのための初期ロードReplicatのパラメータ

    パラメータ 説明
    REPLICAT initial-load_Replicat
    

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

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

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

    TARGETDBはターゲットOracleコンテナを指定します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    USERIDUSERIDALIASで、必要に応じてデータベース資格証明を指定します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。

    BULKLOAD
    

    Oracle SQL*Loaderインタフェースと直接対話するようReplicatに指示します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

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

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

    データ定義の解釈方法を指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。

    SOURCECATALOG

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

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

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

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

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

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

    DEFオプションは、定義テンプレートを指定します。データ定義ファイルの詳細は、第13章「メタデータへのレプリケートされたデータの関連付け」を参照してください。MAPパラメータの追加情報とオプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    CATALOGEXCLUDE

    SCHEMAEXCLUDE

    MAPEXCLUDE

    EXCLUDEWILDCARDOBJECTSONLY

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


  12. Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。

  13. パラメータ・ファイルを保存して閉じます。

  14. ソース・システムで、変更の抽出を開始します。

    START EXTRACT group
    
  15. Replicatのパラメータ・ファイルを表示して、HANDLECOLLISIONSパラメータがリストされていることを確認します。リストされていない場合は、このパラメータをファイルに追加します。

  16. (Oracleで順序をレプリケートする場合)update.Sequenceに対するEXECUTE権限を持つユーザーとしてDBLOGINコマンドを発行します。

    GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD password [encryption_options]
    
  17. (Oracleで順序をレプリケートする場合)次のコマンドを発行して各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。順序(所有者ではない)の名前は、任意の文字またはすべて文字をアスタリスク・ワイルドカードで表すことができます。

    FLUSH SEQUENCE owner.sequence
    
  18. ソース・システムで、初期ロードExtractを起動します。

    START EXTRACT initial-load_Extract
    

    注意:

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

  19. ターゲット・システムで、次のコマンドを発行してロードが終了したことを確認します。ロードが終了するまで待機してから、次の手順に進みます。

    VIEW REPORT initial-load_Extract
    
  20. ターゲット・システムで、変更のレプリケーションを開始します。

    START REPLICAT group
    
  21. ターゲット・システムで、次のコマンドを発行して変更のレプリケーションのステータスを確認します。

    INFO REPLICAT group
    
  22. 初期ロード中に生成されたすべての変更データがReplicatにより適用されたことを確認するまで、INFO REPLICATコマンドを発行し続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatによってその時刻までデータが適用されていることを確認します。

  23. ターゲット・システムで、次のコマンドを発行してHANDLECOLLISIONSパラメータをオフにし、初期ロードのエラー処理を無効化します。

    SEND REPLICAT group, NOHANDLECOLLISIONS
    
  24. ターゲット・システムで、Replicatのパラメータ・ファイルを編集してHANDLECOLLISIONSパラメータを削除します。これによって、次回Replicatが起動したときにHANDLECOLLISIONSが再度有効化されることを防止します。


    注意:

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

  25. パラメータ・ファイルを保存して閉じます。

    これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。

16.8 Teradataロード・ユーティリティを使用したデータのロード

2つのTeradataデータベースを同期する場合に推奨される方法は、任意のTeradataデータ・ロード・ユーティリティを使用することです。推奨ユーティリティは、MultiLoadです。

この手順では、ExtractおよびReplicatの変更同期グループが使用できる状態で、Teradataレプリケーション用に適切に構成されている必要があります。詳細は、第14章「オンライン変更同期の構成」を参照してください。

複数のExtractグループおよびReplicatグループを使用する場合、すべてのグループで必要に応じて各手順を実行してください。

Teradataロード・ユーティリティを使用してデータをロードする手順

  1. ユーティリティで必要とされるスクリプトを作成します。

  2. プライマリExtractグループを起動します。

    START EXTRACT group
    
  3. データ・ポンプを起動します(使用する場合)。

    START EXTRACT data_pump 
    
  4. Replicatのパラメータ・ファイルを編集のために開きます。


    注意:

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

  5. Replicatのパラメータ・ファイルに次のパラメータを追加します。

    END RUNTIME
    HANDLECOLLISIONS
    
    • END RUNTIMEでは、Replicatに対し、Replicatの起動時以降のタイムスタンプを持つOracle GoldenGateの証跡レコードを読み取った時点で正常に終了するように指示します。

    • HANDLECOLLISIONSでは、Replicatに対し、トランザクション変更とコピー結果のコリジョンによって発生するエラーを解決する手段として、重複レコードを上書きし、欠落レコードを無視するように指示します。

  6. Replicatのパラメータ・ファイルを保存して閉じます。

  7. ロード・ユーティリティを起動します。

  8. ターゲットでロードが完了したら、Replicatプロセスを起動します。

  9. 各Replicatプロセスが停止したら、パラメータ・ファイルからHANDLECOLLISIONSパラメータとEND RUNTIMEパラメータを削除します。

  10. Replicatプロセスを再起動します。これで2つのデータベースは同期し、Oracle GoldenGateのレプリケーションを通じて最新状態に維持されます。