36 Oracle GoldenGateシステムの準備
内容は次のとおりです。
- Oracle TimesTen接続タイプの選択
- 環境変数の設定
- TimesTen ODBC接続の構成
- 処理のための表の準備
- Oracle GoldenGateの構成
Oracle TimesTenデータベースのためにOracle GoldenGate Replicatを構成する場合の前提条件とタスクについて説明します。
Oracle TimesTen接続タイプの選択
Oracle TimesTenでは、ツール、ユーティリティおよびアプリケーションに対して、ダイレクト・モードおよびクライアントサーバー・モードという2つの個別の接続タイプがサポートされます。
- ダイレクト・モード
-
ダイレクト・モードは、アプリケーションとデータベースの間のプロセス間通信(IPC)を排除する、非常に最適化されたローカル接続メカニズムです。これにより、オーバーヘッドが低減することで、低レイテンシと高スループットが実現します。ダイレクト・モードでは、クライアント・アプリケーションとデータベースは同じホスト内に存在する必要があります。
- クライアントサーバー・モード
-
クライアントサーバー・モードは、従来のTCP/IPベースの接続メカニズムです。このモードでは、クライアント・アプリケーションはデータベースと同じホスト内に存在する可能性がありますが、より一般的には、別のホストで実行され、ネットワーク経由で接続されます。クライアントサーバー・モードでは、オーバーヘッドおよびネットワーク・ラウンド・トリップが増加するため、ダイレクト・モードよりもパフォーマンスが低くなります。
Oracle GoldenGateでは、Oracle TimesTenに対して両方のタイプの接続がサポートされるため、要件に基づいて最も適切な接続を使用できます。
親トピック: Oracle GoldenGateシステムの準備
環境変数の設定
続行する前に、必要なシステム環境変数が導出されていることを確認します。Oracle TimesTenと対話するすべてのセッションまたはプロセスには、正しい環境設定が必要です。すべてのOracle TimesTenインスタンス(サーバーおよびクライアント)には、必要な環境変数を設定するためのスクリプトが含まれています。このスクリプトはinstance_home_dir/bin
にあり、ttenv.[c]sh
という名前です。これは、常にドット形式またはソース形式にする必要があり、直接実行されることはありません。
/instancepath/tt181
でホストされているTimesTenインスタンスのbashシェル環境の設定例は、次のとおりです。source /instancepath/tt181/bin/ttenv.sh
-
必要なすべての環境変数(複数存在します)が正しく設定されていることを確認します。
-
将来のOracle TimesTenリリースで新しい変数を導入できないようにします。
親トピック: Oracle GoldenGateシステムの準備
TimesTen ODBC接続の構成
Oracle GoldenGate for TimesTenは、ODBC API (TimesTenのネイティブAPI)を使用してTimesTenに接続します。ODBC接続では、データ・ソース名(DSN)の概念を定義します。DSNは、アプリケーションでターゲット・データベースへの接続に使用されるパラメータを指定するために使用する論理名です。
DBLOGIN
コマンドのSOURCEDB
句など、様々なOracle GoldenGate構成設定で、ターゲットTimesTenデータベースのDSNを指定します。たとえば:DBLOGIN SOURCEDB database, USERIDALIAS useralias
ここで、database
に指定された値は、ターゲットTimesTenデータベースのDSNになります。
ダイレクト・モード接続を使用する場合、接続では、データベースをホストするOracle TimesTenインスタンス(サーバー・インスタンス)のsys.odbc.ini
ファイルで定義されたserver DSN
を参照する必要があります。
クライアントサーバー・モードを使用する場合、接続では、データベースを管理するOracle TimesTenインスタンス(サーバー・インスタンス)のsys.odbc.ini
ファイル、またはより一般的にはOracle TimesTenクライアント・インスタンス(Oracle GoldenGateハブ・サーバーなど)のsys.odbc.ini
ファイルで定義された、client DSN
を参照する必要があります。
Oracle TimesTenサーバーおよびクライアントDSNの定義の詳細は、TimesTen In-Memory Databaseオペレーション・ガイドを参照してください。
tthost1.mydomain.com
にあるサーバーDSN myttdb
で識別されるデータベースに接続する、クライアントDSN (myttdbcs
)を定義するsys.odbc.ini
エントリの例を示します。そのホスト上のTimesTenサーバーのデフォルト・リスナー・ポートは6625です。[ODBC Data Sources]
myttdbcs=TimesTen 18.1 Client Driver
[myttdbcs]
TTC_SERVER=tthost1.mydomain.com/6625
TTC_SERVER_DSN=myttdb
ConnectionCharacterSet=AL32UTF8
親トピック: Oracle GoldenGateシステムの準備
処理のための表の準備
この項では、TimesTenのあるOracle GoldenGate環境で対処する必要がある表属性について説明します。
内容は次のとおりです。
ON DELETE CASCADE制約の削除
Oracle TimesTenのターゲット表に、ON DELETE CASCADE
句を指定する外部キーが含まれており、その外部キーのターゲットである表がOracle GoldenGateレプリケーションのターゲットでもある場合は、エラーを回避するために、外部キー定義からON DELETE CASCADE
句を削除する必要があります。
emp_src
とsalary_src
、ターゲット表にemp_targ
とsalary_targ
を使用している次の例について考えます。
-
emp_src
に削除が発行されます -
それによって、削除が
salary_src
にカスケードされます。 -
Oracle GoldenGateが、両方の削除をターゲットに送信します。
-
親削除が最初に到達し、
emp_targ
に適用されます。 -
親削除によって、削除が
salary_targ
にカスケードされます。 -
salary_src
からカスケードされた削除がsalary_targ
に適用されます。 -
行は、すでにステップ5で削除されているため、見つかりません。
Oracle TimesTenでは、外部キー制約またはカスケード削除制約の無効化はサポートされていません。ON DELETE CASCADE
を削除するには、表を削除してON DELETE CASCADE
句を使用せずに表を再作成するか、ALTER TABLE
を使用して外部キー制約を削除し、ON DELETE CASCADE
句を使用せずに制約を再作成する必要があります。
親トピック: 処理のための表の準備
表における行の一意性の保証
Oracle GoldenGateでは、レプリケートされた更新および削除に対して正しいターゲット行を見つけるために、ソース表とターゲット表にある形式の一意の行識別子が必要です。
TABLE
またはMAP
文でKEYCOLS
句が使用されないかぎり、Oracle GoldenGateは、使用する行識別子を次の優先順位に従って選択します。
-
主キー
-
タイムスタンプまたはマテリアライズされていない計算結果列を含まない英数字順で最初の一意キー。
-
前述のキー・タイプのいずれも存在しない場合(その他の種類のキーが表に定義されている場合でも)、Oracle GoldenGateは、データベースで一意キーでの使用を許可されているすべての列(キー内での使用がOracle GoldenGateでサポートされていない列やOracle GoldenGate構成から除外されている列は除く)で疑似キーを作成します。
ノート:
表に使用可能な他のキーがない場合や、表にキーがまったくない場合、Oracle GoldenGateは該当するメッセージをレポート・ファイルに記録します。すべての列からキーを作成すると、ソース・システムのOracle GoldenGateのパフォーマンスが低下します。ターゲットでは、このキーはReplicatであまり効率的でないより大きいWHERE
句が使用される原因となります。 -
表に適切なキーがない場合、あるいは既存のキーを使用しない場合は、表に一意の値が常に含まれる列があれば、代替キーを定義できます。Extractの
TABLE
パラメータおよびReplicatのMAP
パラメータ内にKEYCOLS句を含めることで、この代替キーを定義します。指定したキーにより、Oracle GoldenGateで検出される既存の主キーまたは一意キーはオーバーライドされます。Oracle GoldenGateリファレンスのTABLE | MAPを参照してください。
親トピック: 処理のための表の準備
Oracle GoldenGateの構成
内容は次のとおりです。
Oracle GoldenGate Replicatの構成
この項では、大多数のターゲット・データベース・タイプで必要とされるReplicatパラメータについて説明します。追加のパラメータが必要な場合があります。ご使用のターゲット・データベース向けOracle GoldenGateのインストレーションと構成のドキュメント、およびOracle GoldenGateリファレンスを参照してください。
ターゲットのレプリケーション・サーバーまたはデータベース上で次のステップを実行します。
例36-1 Replicatグループのパラメータ
REPLICAT reptt
-- Specify database login information as needed for the database:
TARGETDB myttdbcs, USERIDALIAS useralias
-- Specify tables for delivery:
MAP owner.sourcetable, TARGET owner.targettable;
親トピック: Oracle GoldenGateの構成
Oracle GoldenGateのその他の構成ガイドライン
Oracle GoldenGate環境をインストールして構成したら、次の内容を考慮してください。
初期同期の実行
初期ロードを構成するためにOracle GoldenGateを使用してトランザクションの変更を初めて送信する前に、ソース・データおよびターゲット・データの初期同期を実行します。Oracle GoldenGateの管理の初期同期を参照してください。
親トピック: Oracle GoldenGateの構成