ヘッダーをスキップ
Oracle® GoldenGate TeradataのためのOracle GoldenGateのインストールおよび構成
12c (12.1.2)
E52452-01
  目次へ移動
目次

前
 
次
 

3 Oracle GoldenGateシステムの準備

この章では、Oracle GoldenGateをサポートするためのデータベースおよびシステムの準備について説明します。この章は、次の各項で構成されます。

3.1 処理に向けた表の準備

次の表属性は、Oracle GoldenGate環境で処理する必要があります。

3.1.1項「トリガーおよびカスケード制約の無効化」

3.1.2項「行識別子の割当て」

3.1.1 トリガーおよびカスケード制約の無効化

ターゲットのSybase表でトリガー、カスケード削除制約およびカスケード更新制約を無効にしたり、Oracle GoldenGateデータベースのユーザーによる変更を無視するためにそれらの制約を変更したりします。Oracle GoldenGateでは、トリガーまたはカスケード制約によって生じるDMLをレプリケートします。ターゲット表で同じトリガーまたは制約を有効にした場合、レプリケートされたバージョンのためにそのトリガーまたは制約が冗長になり、データベースによってエラーが返されます。ソース表がemp_srcおよびsalary_src、ターゲット表がemp_targおよびsalary_targである場合の次の例を検討してください。

  1. emp_srcに削除が発行されます。

  2. これによって、削除がsalary_srcにカスケードされます。

  3. Oracle GoldenGateによって、両方の削除がターゲットに送信されます。

  4. 親削除が最初に到達し、emp_targに適用されます。

  5. 親削除によって、削除がsalary_targにカスケードされます。

  6. salary_srcからカスケードされた削除がsalary_targに適用されます。

  7. 行はすでに手順5で削除されたため、その行を見つけることはできません。

3.1.2 行識別子の割当て

Oracle GoldenGateでは、レプリケートされた更新および削除の正しいターゲット行を検索するために、ソース表とターゲット表にいくつかの一意の行識別子が必要です。

3.1.2.1 使用する行識別子の種類を決定するOracle GoldenGateの仕組み

TABLEまたはMAP文にKEYCOLS句が使用されている場合を除き、Oracle GoldenGateでは、次の優先順位に従って使用する行識別子が選択されます。

  1. 主キー

  2. 英数字の順で最初の一意のキー(タイムスタンプもマテリアライズされていない計算結果列も含まれません)。

  3. 前述のキー・タイプが存在しない場合(他のキー・タイプが表に定義されている可能性はあります)、Oracle GoldenGateでは、Oracle GoldenGateでキーにサポートされていないもの、またはOracle GoldenGate構成から除外されているものを除き、データベースで一意のキーに使用可能なすべての列の疑似列が作成されます。


注意:

使用できないその他のキーが表に存在する場合、または表にキーが1つも存在しない場合、Oracle GoldenGateでは、レポート・ファイルに適切なメッセージが記録されます。すべての列からキーを作成すると、ソース・システムでのOracle GoldenGateのパフォーマンスが低下します。ターゲットでは、このキーはReplicatであまり効率的でないより大きいWHERE句が使用される原因となります。


3.1.2.2 KEYCOLSを使用したカスタム・キーの指定

表に前述のいずれのタイプの行識別子も存在しない場合、または前述の識別子を使用しない場合、表に常に一意の値が含まれる列が存在するときには、代替キーを定義できます。この代替キーは、ExtractのTABLEパラメータおよびReplicatのMAPパラメータにKEYCOLS句を指定して定義します。指定されたキーが、Oracle GoldenGateにより検出される既存の主キーまたは一意のキーをオーバーライドします。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3.2 Teradataのレプリケーション・グループの作成

レプリケーション・グループを作成するには、CreateGroupStmtFile (Create Group文)ファイルを使用します。CreateGroupStmtFileを使用することで、レプリケーション・グループの正しい識別子情報が自動的にtam.iniファイルに書き込まれます。詳細は、『Teradata Replication Services Using Oracle GoldenGate』のドキュメントを参照してください。

相互に依存関係があるすべてのオブジェクトは、同じレプリケーション・グループで指定する必要があります。同じレプリケーション・グループ内にトランザクション全体を含める必要があります。

Create Group文のファイルを作成する手順:

  1. テキスト・エディタを使用してテキスト・ファイルを作成します。

  2. 次の行を入力します。

    • Teradataのコマンドcreate replication group

    • Teradataレプリケーション・グループの名前

    • レプリケーション・グループに関連付けられる表リスト。表は1つのレプリケーション・グループにのみ関連付けることができます。Oracle GoldenGateのExtractグループごとに使用可能なレプリケーション・グループは1つのみです。

  3. そのファイルを接尾辞.sqlを付けて、Oracle GoldenGateのインストール・ディレクトリ内のディレクトリ(ルート・レベルまたはdirtamなどの作成するサブディレクトリ)に保存します。

  4. TAM初期化ファイルでCreateGroupStmtFileパラメータを使用して、このファイル名を指定します。詳細は、3.5項「TAM初期化ファイルの構成」を参照してください。

    例3-1 Create Group文のサンプル・ファイル

    Create Replication Group HRTRG1 (HR.EMPLOYEE, HR.EMP_INFO, HR.EMP_DEPT, HR.EMP_REVIEWS);
    

3.3 Teradata TAMによるDDL取得のアクティブ化

Teradata TAMからOracle GoldenGateに渡すDDLを指定するには、レプリケーション・グループにレプリケーションのルールセット文を作成します。ルールセット・ステートメントによって、1つ以上のDDLキャプチャ・ルールのセットが作成され、指定したレプリケーション・グループにそれらのルールが関連付けられます。DDL操作が実行されると、それらのルールがDDLステートメントのターゲット・オブジェクトの名前および型に適用され、ただちにそれらのオブジェクトがレプリケーションで使用可能になります。レプリケーション・グループのメンバーである表のDDL操作が自動的にキャプチャされます。


注意:

TeradataのRSGは、適切に構成する必要があります。詳細は、『Teradata Replication Services Using Oracle GoldenGate』のドキュメント(http://www.info.teradata.com)を参照してください。


Teradata TAMによるDDLキャプチャをアクティブにする手順:

  1. REPLCONTROL権限を持つユーザーとしてログインします。

  2. レプリケーションのルールセットを作成します。

    [CREATE | REPLACE] REPLICATION RULESET ruleset
    
    [, DEFAULT]
    
    FOR replication_group 
    
    AS rule_specification [, rule_specification] 
    

    条件:

    • rule_specificationは次のようになります。

      object_kind LIKE string_literal [ESCAPE character_literal]
      [AND NOT LIKE string_literal [ESCAPE character_literal] ]
      
    • object_kindは次のようになります。

      TABLE | TEMPORARY TABLE | VIEW | MACRO | TRIGGER | INDEX
      

使用に関する要件

レプリケーション・グループおよびルールセットの作成の詳細は、『Teradata Replication Services Using Oracle GoldenGate』のドキュメント(http://www.info.teradata.com)を参照してください。

この例では、MyRepGroupという名前のレプリケーション・グループにSales1という名前のルール・セットを作成して、SalesDBいう名前のデータベースに作成されている表を取得し、さらにビュー名に接尾辞_sが付いていないSalesDBのビューに影響を与えるDDLも取得します。

CREATE REPLICATION GROUP MyRepGroup
CREATE REPLICATION RULESET Sales1 FOR MyRepGroup AS
TABLE LIKE 'SalesDB.%',
VIEW LIKE 'SalesDB.%' AND NOT LIKE '%z_s' ESCAPE 'z'

アンダースコア(_)がワイルドカードとして処理されないようにエスケープ文字を使用することに留意してください。

Oracle GoldenGateのDDLレプリケーションを構成するには、第5章「TeradataデータベースへのDDL同期の構成」を参照してください。

3.4 DDLの取得の無効化

この項では、レプリケーション・グループを保持する場合または削除する場合のいずれかのケースで、Teradata DDLの取得およびレプリケーションを無効化する手順を説明します。

どちらの場合にもREPLCONTROL権限が必要です。

DDLの取得を無効化し、レプリケーション・グループを保持する場合:

DROP REPLICATION RULESET ruleset FOR replication_group

例:

DROP REPLICATION RULESET Sales1 FOR MyRepGroup;

DDLの取得を無効化し、レプリケーション・グループを削除する場合:

DROP REPLICATION GROUP replication_group [ ( table [, ... ] )]

例:

DROP REPLICATION GROUP MyRepGroup

3.5 TAM初期化ファイルの構成

Teradata Access Module(TAM)によって、ExtractプロセスにTeradata環境へのリンクが提供されます。TAMを構成するには、初期化ファイルを作成します。

次に、TAM初期化ファイルの例を示します。

Mode=Replication
DictOdbcConnString=DSN=myDsn;uid=myUser;pwd=myPass
MgmtOdbcConnString=DSN=myDsn;uid=myUser;pwd=myPass
CreateGroupStmtFile=c:\GGS\Teradata\dirtam\hrtrg1.sql
CharacterSet=ASCII
ControlRSG=10.10.10.49:1152
DataRSG1=10.10.10.50:1153
DataRSG2=node3
DataRSG3=node4:1155
Encryption=All

表3-1では、必須のTAM初期化パラメータについて説明します。

  1. テキスト・エディタを使用してテキスト・ファイルを作成します。

  2. 次の必須パラメータをファイルに追加します。必要に応じて、一覧に記載されているオプション・パラメータも使用できます。

    表3-1 TAM初期化ファイルの必須パラメータ

    パラメータ 説明
    Mode={Replication}
    

    必須

    レプリケーション・モードをチェンジ・データ・キャプチャにすることを指定します。

    DictOdbcConnString=ODBC_connection_string_for_metadata
    

    必須

    辞書表へのアクセス権限を持つユーザーのログオン文字列。

    MgmtOdbcConnString=
    
    ODBC_connection_string for_management_functions
    

    必須

    管理機能を実行する権限を持つユーザーのログオン文字列(CREATE REPLICATION GROUPなど)。このログオンには、REPLCONTROL権限が必要です。

    CreateGroupStmtFile=
    

    name

    TAM12およびそれ以降のバージョンに必須

    新しいグループのCREATE REPLICATION GROUP文が含まれているCreate Group文のファイル名。Create Group文のファイルを使用してレプリケーション・グループを作成しなかった場合には、このパラメータを省略またはコメントアウトし、GroupIDパラメータとSecurityTokenパラメータを使用します。

    GroupID=
    ID
    

    SecurityTokenを使用する場合に必須

    TAMに関連付けられるレプリケーション・グループのID。GroupIDを使用する場合、SecurityTokenを使用する必要があります。

    このコマンドを使用して、レプリケーション・グループのIDを表示できます。

    HELP REPLICATION GROUP replication_group;
    

    例:

    help replication group g1;
    

    IDは、グループの名の横にあるIdentifier列にある数値IDです。

    SecurityToken=
    token
    

    Create Groupステートメントを使用してレプリケーション・グループを作成しなかった場合に必須

    TAMに関連付けられるセキュリティ・トークン。Create Group文のファイルを使用してグループを作成し、CreateGroupStmtFileパラメータを使用してそのファイルを指定した場合、SecurityTokenパラメータおよびGroupIDパラメータはランタイムで自動的に生成されるため、それらのパラメータを省略できます。

    AltControlRSG=
    IP_or_name
    

    オプション

    プライマリ・サーバーが失敗した場合に中央のRSGとして継承できるサーバーのIPアドレスまたは名前を指定します。

    CharacterSet=
    
    {ASCII | UTF16}
    

    必須

    このレプリケーション・グループの文字セット。UTF16に関連するオーバーヘッドが多くなるため、必須の場合にのみUTF16を使用します。

    ControlRSG=address[:port]DataRSG1=address[:port][DataRSG2=address[:port]] [...]
    

    必須

    RSGのノード・アドレス。これはノード名またはIPアドレスにすることができます。これにはオプションのポート番号を付加できます。中央のRSGはシステムのRSGで最上位の番号にする必要があります。

    Encryption={None | Control | Data | All}
    

    必須

    暗号化するメッセージのタイプ。データ・メッセージだけの暗号化とデータ・メッセージと制御メッセージの両方の暗号化では、オーバーヘッドに少し違いがあります。Allを使用して暗号化を指定するか、Noneを使用して暗号化なしを指定します。

    RsgTimeoutSec=seconds
    

    オプション

    データのRSGポーリング時のタイムアウト(秒)。デフォルトは1です。有効な範囲は0から60秒です。

    RsgTimeoutMSec=milliseconds
    

    オプション

    データのRSGポーリング時のタイムアウト(ミリ秒)。デフォルトは0です。有効な範囲は0から60000000ミリ秒です。

    Tracing= {Debug |Performance |All |None}
    

    オプション

    デバッグ・トレースのレベル。

    デフォルトはNoneです。

    MaxProtTransCompleteThresh=number_of_transactions
    

    オプション、最大保護モードに有効

    保持できる未処理のトランザクション数で、これを超えると、Oracle GoldenGateのチェックポイントをリクエストする必要があります。これは、最大保護モードで動作する際に重要となります。高速でトランザクションを適用するセッションが大量にある場合には、このパラメータを10などの大きい値に設定できます。ただし、セッション数が少ない場合や送信速度が遅い場合、このパラメータを1から4などの小さい値に設定し、レイテンシを最小限に抑え、スループットを最大化することができます。デフォルトは0です。有効な範囲は0から24トランザクションです。

    Bidirectional {TRUE | FALSE}
    

    オプション

    データの前イメージをOracle GoldenGateに送信するかどうかを指定します。ExtractパラメータGETUPDATEBEFORESを使用する場合には、TRUEにします。デフォルトはFALSEで、CDCオーバーヘッドおよび使用される通信帯域幅を減らすためにデータの後イメージのみが送信されます。


  3. そのファイルをtam.iniという名前のASCIIファイルとして、Oracle GoldenGateのインストール・ディレクトリ内(ルート・レベルまたはdirtamなどの作成するサブディレクトリ)に保存します。

  4. Extractパラメータ・ファイルでVAMパラメータを使用して、このファイル名を指定します。