この章では、Oracle GoldenGateをサポートするためのデータベースおよびシステムの準備について説明します。この章は、次の各項で構成されます。
次の表属性は、Oracle GoldenGate環境で処理する必要があります。
ターゲットのSybase表でトリガー、カスケード削除制約およびカスケード更新制約を無効にしたり、Oracle GoldenGateデータベースのユーザーによる変更を無視するためにそれらの制約を変更したりします。Oracle GoldenGateでは、トリガーまたはカスケード制約によって生じるDMLをレプリケートします。ターゲット表で同じトリガーまたは制約を有効にした場合、レプリケートされたバージョンのためにそのトリガーまたは制約が冗長になり、データベースによってエラーが返されます。ソース表がemp_src
およびsalary_src
、ターゲット表がemp_targ
およびsalary_targ
である場合の次の例を検討してください。
emp_src
に削除が発行されます。
これによって、削除がsalary_src
にカスケードされます。
Oracle GoldenGateによって、両方の削除がターゲットに送信されます。
親削除が最初に到達し、emp_targ
に適用されます。
親削除によって、削除がsalary_targ
にカスケードされます。
salary_src
からカスケードされた削除がsalary_targ
に適用されます。
行はすでに手順5で削除されたため、その行を見つけることはできません。
Oracle GoldenGateでは、レプリケートされた更新および削除の正しいターゲット行を検索するために、ソース表とターゲット表にいくつかの一意の行識別子が必要です。
TABLE
またはMAP
文にKEYCOLS
句が使用されている場合を除き、Oracle GoldenGateでは、次の優先順位に従って使用する行識別子が選択されます。
主キー
英数字の順で最初の一意のキー(タイムスタンプもマテリアライズされていない計算結果列も含まれません)。
前述のキー・タイプが存在しない場合(他のキー・タイプが表に定義されている可能性はあります)、Oracle GoldenGateでは、Oracle GoldenGateでキーにサポートされていないもの、またはOracle GoldenGate構成から除外されているものを除き、データベースで一意のキーに使用可能なすべての列の疑似列が作成されます。
注意: 使用できないその他のキーが表に存在する場合、または表にキーが1つも存在しない場合、Oracle GoldenGateでは、レポート・ファイルに適切なメッセージが記録されます。すべての列からキーを作成すると、ソース・システムでのOracle GoldenGateのパフォーマンスが低下します。ターゲットでは、このキーはReplicatであまり効率的でないより大きい |
表に前述のいずれのタイプの行識別子も存在しない場合、または前述の識別子を使用しない場合、表に常に一意の値が含まれる列が存在するときには、代替キーを定義できます。この代替キーは、ExtractのTABLE
パラメータおよびReplicatのMAP
パラメータにKEYCOLS
句を指定して定義します。指定されたキーが、Oracle GoldenGateにより検出される既存の主キーまたは一意のキーをオーバーライドします。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
レプリケーション・グループを作成するには、CreateGroupStmtFile
(Create Group文)ファイルを使用します。CreateGroupStmtFile
を使用することで、レプリケーション・グループの正しい識別子情報が自動的にtam.ini
ファイルに書き込まれます。詳細は、『Teradata Replication Services Using Oracle GoldenGate』のドキュメントを参照してください。
相互に依存関係があるすべてのオブジェクトは、同じレプリケーション・グループで指定する必要があります。同じレプリケーション・グループ内にトランザクション全体を含める必要があります。
Create Group文のファイルを作成する手順:
テキスト・エディタを使用してテキスト・ファイルを作成します。
次の行を入力します。
Teradataのコマンドcreate replication group
Teradataレプリケーション・グループの名前
レプリケーション・グループに関連付けられる表リスト。表は1つのレプリケーション・グループにのみ関連付けることができます。Oracle GoldenGateのExtractグループごとに使用可能なレプリケーション・グループは1つのみです。
そのファイルを接尾辞.sql
を付けて、Oracle GoldenGateのインストール・ディレクトリ内のディレクトリ(ルート・レベルまたはdirtam
などの作成するサブディレクトリ)に保存します。
TAM初期化ファイルでCreateGroupStmtFile
パラメータを使用して、このファイル名を指定します。詳細は、3.5項「TAM初期化ファイルの構成」を参照してください。
Teradata TAMからOracle GoldenGateに渡すDDLを指定するには、レプリケーション・グループにレプリケーションのルールセット文を作成します。ルールセット・ステートメントによって、1つ以上のDDLキャプチャ・ルールのセットが作成され、指定したレプリケーション・グループにそれらのルールが関連付けられます。DDL操作が実行されると、それらのルールがDDLステートメントのターゲット・オブジェクトの名前および型に適用され、ただちにそれらのオブジェクトがレプリケーションで使用可能になります。レプリケーション・グループのメンバーである表のDDL操作が自動的にキャプチャされます。
注意: TeradataのRSGは、適切に構成する必要があります。詳細は、『Teradata Replication Services Using Oracle GoldenGate』のドキュメント( |
Teradata TAMによるDDLキャプチャをアクティブにする手順:
REPLCONTROL
権限を持つユーザーとしてログインします。
レプリケーションのルールセットを作成します。
[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
使用に関する要件
レプリケーション・グループに表リストで明示的に定義されたメンバーを含めるか、レプリケーション・グループをレプリケーションのルールセットに関連付けられている空のグループにする必要があります。
文のCREATE
フォームを使用し、指定したレプリケーション・グループに同じルール・セット名のルール・セットがすでに存在する場合には、CREATE
文が失敗します。
文のREPLACE
フォームを使用し、指定したレプリケーション・グループに同じルール・セット名のルール・セットがすでに存在する場合には、既存のルールセットが新しいルール・セットに置き換えられます。
DEFAULT
オプションを使用した場合、ルール・セットにあるすべてのルールがデフォルトのルールとみなされます。他のルールがオブジェクトと一致しない場合、既定のルールが適用されます。
既定以外のルールは、別のレプリケーション・グループに関連付けられている既定以外のルールと同じオブジェクトと一致してはなりません。
既定のルールは、別のレプリケーション・グループに関連付けられている既定のルールと同じオブジェクトと一致してはなりません。
LIKE
句およびNOT LIKE
句を使用してパターン文字列を指定し、SQL文のオブジェクトの完全修飾名と照合します。パターン文字列には、ワイルドカード文字を含めることができます。パターンとオプションのESCAPE
文字は、LIKE
述語演算子と同じように一緒に使用します。
レプリケーション・グループおよびルールセットの作成の詳細は、『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同期の構成」を参照してください。
この項では、レプリケーション・グループを保持する場合または削除する場合のいずれかのケースで、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
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初期化パラメータについて説明します。
テキスト・エディタを使用してテキスト・ファイルを作成します。
次の必須パラメータをファイルに追加します。必要に応じて、一覧に記載されているオプション・パラメータも使用できます。
表3-1 TAM初期化ファイルの必須パラメータ
パラメータ | 説明 |
---|---|
Mode={Replication} |
必須 レプリケーション・モードをチェンジ・データ・キャプチャにすることを指定します。 |
DictOdbcConnString= |
必須 辞書表へのアクセス権限を持つユーザーのログオン文字列。 |
MgmtOdbcConnString=
|
必須 管理機能を実行する権限を持つユーザーのログオン文字列( |
CreateGroupStmtFile=
|
TAM12およびそれ以降のバージョンに必須 新しいグループの |
GroupID=
|
SecurityTokenを使用する場合に必須 TAMに関連付けられるレプリケーション・グループのID。 このコマンドを使用して、レプリケーション・グループのIDを表示できます。
HELP REPLICATION GROUP replication_group;
例: help replication group g1; IDは、グループの名の横にある |
SecurityToken=
|
Create Groupステートメントを使用してレプリケーション・グループを作成しなかった場合に必須 TAMに関連付けられるセキュリティ・トークン。Create Group文のファイルを使用してグループを作成し、 |
AltControlRSG= |
オプション プライマリ・サーバーが失敗した場合に中央のRSGとして継承できるサーバーのIPアドレスまたは名前を指定します。 |
CharacterSet= {ASCII | UTF16} |
必須 このレプリケーション・グループの文字セット。UTF16に関連するオーバーヘッドが多くなるため、必須の場合にのみUTF16を使用します。 |
ControlRSG= |
必須 RSGのノード・アドレス。これはノード名またはIPアドレスにすることができます。これにはオプションのポート番号を付加できます。中央のRSGはシステムのRSGで最上位の番号にする必要があります。 |
Encryption={None | Control | Data | All} |
必須 暗号化するメッセージのタイプ。データ・メッセージだけの暗号化とデータ・メッセージと制御メッセージの両方の暗号化では、オーバーヘッドに少し違いがあります。 |
RsgTimeoutSec= |
オプション データのRSGポーリング時のタイムアウト(秒)。デフォルトは1です。有効な範囲は0から60秒です。 |
RsgTimeoutMSec= |
オプション データのRSGポーリング時のタイムアウト(ミリ秒)。デフォルトは0です。有効な範囲は0から60000000ミリ秒です。 |
Tracing= {Debug |Performance |All |None} |
オプション デバッグ・トレースのレベル。 デフォルトは |
MaxProtTransCompleteThresh= |
オプション、最大保護モードに有効 保持できる未処理のトランザクション数で、これを超えると、Oracle GoldenGateのチェックポイントをリクエストする必要があります。これは、最大保護モードで動作する際に重要となります。高速でトランザクションを適用するセッションが大量にある場合には、このパラメータを10などの大きい値に設定できます。ただし、セッション数が少ない場合や送信速度が遅い場合、このパラメータを1から4などの小さい値に設定し、レイテンシを最小限に抑え、スループットを最大化することができます。デフォルトは0です。有効な範囲は0から24トランザクションです。 |
Bidirectional {TRUE | FALSE} |
オプション データの前イメージをOracle GoldenGateに送信するかどうかを指定します。Extractパラメータ |
そのファイルをtam.ini
という名前のASCIIファイルとして、Oracle GoldenGateのインストール・ディレクトリ内(ルート・レベルまたはdirtam
などの作成するサブディレクトリ)に保存します。
Extractパラメータ・ファイルでVAM
パラメータを使用して、このファイル名を指定します。