28 Oracle GoldenGateシステムの準備

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

内容は次のとおりです。

処理のための表の準備

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

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

ターゲットのTeradata表で、トリガー、カスケード削除制約、およびカスケード更新制約を無効化します。Oracle GoldenGateでは、トリガーまたはカスケード制約の結果として生成されるDMLがレプリケートされます。同じトリガーや制約がターゲット表でアクティブになった場合、レプリケートされたバージョンのために重複となり、データベースでエラーが返されます。ソース表にemp_srcsalary_src、ターゲット表にemp_targsalary_targを使用している次の例について考えます。

  1. emp_srcに削除が発行されます。
  2. それによって、削除がsalary_srcにカスケードされます。
  3. Oracle GoldenGateが、両方の削除をターゲットに送信します。
  4. 親削除が最初に到達し、emp_targに適用されます。
  5. 親削除によって、削除がsalary_targにカスケードされます。
  6. salary_srcのカスケードされた削除が、salary_targに適用されます
  7. 行は、すでにステップ5で削除されているため、見つかりません。

行識別子の割当て

Oracle GoldenGateでは、レプリケートされた更新および削除に対して正しいターゲット行を見つけるために、ソース表とターゲット表に一意の行識別子が必要です。ソース表は、Oracle GoldenGateが使用する行識別子の種類を判別する方法に記載されている任意の種類のキーを持つことができます。固定長の列が存在する表に主キーが識別されない場合、それらの固定長列のいずれかの長さは3800バイト未満である必要があります。

Oracle GoldenGateで使用する行識別子の種類を判別する方法

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

  1. 主キー(Standard Editionインスタンスの表に必要)。
  2. タイムスタンプまたはマテリアライズされていない計算結果列を含まない英数字順で最初の一意キー。
  3. これらのキー・タイプのいずれも存在しない場合、Oracle GoldenGateは、データベースで一意キーでの使用を許可されているすべての列(キー内での使用がOracle GoldenGateでサポートされていない列やOracle GoldenGate構成から除外されている列は除く)で疑似キーを作成します。

    ノート:

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

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

該当するキーが表にない場合、あるいは識別子を使用しない場合、表に常に一意の値を含んだ列があれば、代替キーを定義できます。ExtractのTABLEパラメータおよびReplicatのMAPパラメータ内にKEYCOLS句を含めることで、この代替キーを定義します。指定されたキーは、Oracle GoldenGateが検出する既存の主キーまたは一意キーを上書きします。

TeradataのODBC構成

各ターゲット・システムで、データ・ソース名(DSN)の作成も含めてODBCを構成します。DSNにはデータベースへの接続方法が格納されます。詳細および設定ステップは、ODBC Driver for Teradata User Guideを参照してください。

https://docs.teradata.com/search/books?filters=prodname~%2522ODBC+Driver+for+Teradata%2522&content-lang=en-US

TeradataのOracle GoldenGateプロセス用データベース・ユーザー

Oracle GoldenGateプロセス用のデータベース・ユーザーでは次の要件に従います。

  • Oracle GoldenGate専用のデータベース・ユーザーを作成します。データベースに接続する必要のあるすべてのOracle GoldenGateプロセスに対して同じユーザーでもかまいません。

    • Replicat (ターゲット・データベース)

    • DEFGENユーティリティ(ターゲット・データベース)

  • データのセキュリティを維持したり、Oracle GoldenGateの処理を的確に監視したりするには、他のユーザー、アプリケーションまたはプロセスに対してOracle GoldenGateデータベース・ユーザーでのログインまたは操作を許可しないでください。

  • ターゲットのTeradataデータベースにレプリケートするOracle GoldenGateの場合は、Replicatデータベース・ユーザーに、すべてのターゲット表に対するSELECTINSERTUPDATEおよびDELETEを許可します。