この章では、Oracle GoldenGateがソースのTeradataデータベースのChange Data Capture (CDC)コンポーネントと連携して、最大保護モードまたは最大パフォーマンス・モードのいずれかのモードで動作する仕組みについて説明します。モードによって、使用されるコミット・プロトコルと、Oracle GoldenGateがTeradataのアプリケーションに影響を与えるかどうかが決定されます。この章は、次の各項で構成されます。
最大保護モードは、Teradataデータベースに推奨されるOracle GoldenGateの構成です。最大保護モードでは、ソース・サーバー上のCDCとレプリケーション・サーバー上のプライマリExtractプロセス間(TAM経由)で2フェーズ・コミット・プロトコルを使用することで、Oracle GoldenGateを本番システムに組み込みます。通信が中断したり、コンポーネントが失敗したりした場合にトランザクションが送信中に失われたり、重複したりしないように、2フェーズ・コミットでは、ソース・データベースだけでなく、Oracle GoldenGateにコミットされるソース・トランザクションも必要です。
このモードでは、すべてのデータを受信し、ディスク上のOracle GoldenGate VAM証跡に保存したことをプライマリExtractで認識されるまで、トランザクションは未決定です(コミットされません)。
一定のタイムアウト期間内にCDCで確認を受信した場合、アプリケーションへのコミット、データベースへのコミットおよびOracle GoldenGateによる伝播にトランザクションがCDCによって解放されます。
一定のタイムアウト期間内にCDCで確認を受信しなかった場合、CDCによってトランザクションがロールバックされ、エラー・メッセージがアプリケーションのユーザーに返されます。
VAM証跡は、トランザクション・ログと同様の一連のファイルです。これには、受信データが受信順に保存されますが、必ずしもトランザクション順であるとはかぎりません。VAMソートによるExtractとして知られているセカンダリExtractプロセスによって、データがトランザクション順にソートされ、ロールバックを受信した場合(2フェーズ・コミットが失敗したため)にはトランザクションが削除されるか、さらに処理するためにトランザクションが定期的な証跡に解放されます。
別々のレプリケーション・サーバーにExtractプロセスとReplicatプロセスをインストールし、Extractプロセスがインストールされているサーバー上でデータ・ポンプとローカル証跡を併用します。この構成では、プライマリExtractグループによってデータが取得され、VAMソートによるExtractによってソートされたデータがローカル・ディスクでの定期的なOracle GoldenGate証跡まで保持されます。データ・ポンプExtractによってこの証跡が読み取られ、そのデータがTCP/IP経由でReplicatレプリケーション・サーバー上の証跡に送信されますが、そのデータがReplicatプロセスによって再度読み取られ、ターゲットに適用されます。ExtractサーバーとReplicatサーバー間の通信が失敗した場合に影響を受けるのは、データ・ポンプだけです。機能停止が続いても、他の2つのExtractプロセスでは、メモリーが不足することなく作業を続行できます。
ソースのレプリケーション・サーバー上で次の手順を実行します。
Oracle GoldenGateの管理for Windows and UNIXの手順に従ってManagerプロセスを構成します。
Managerパラメータ・ファイルでは、PURGEOLDEXTRACTSパラメータを使用してローカル証跡からのファイルの削除を制御します。
GGSCIを実行します。
プライマリExtractグループを作成します。説明上、このグループをextと呼びます。
ADD EXTRACT ext, VAM
VAM証跡にするローカル証跡を作成します。
ADD EXTTRAILVAM_trail, EXTRACText
EXTRACT引数を使用して、この証跡をプライマリExtractグループにリンクします。そのExtractグループによってこの証跡がVAM証跡として作成されます。
EDIT PARAMSコマンドを使用して、プライマリExtractグループにパラメータ・ファイルを作成します。データベース環境に適用される他のパラメータに加え、例4-1に示されているパラメータを含めてください。
|
注意: データベース・パスワード、証跡内のデータおよびTCP/IP経由で送信されるデータの暗号化には、暗号化オプションがあります。セキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。 |
例4-1 プライマリExtractグループのパラメータ
-- Identify the Extract group: EXTRACT ext -- Specify database login information as needed for the database: [SOURCEDB dsn1,][USERID user[, PASSWORD pw]] -- Specify the VAM trail: EXTTRAIL VAM_trail -- Specify that this Extract creates and writes to a VAM trail: DSOPTIONS CREATETRANLOG RESTARTAPPEND, VAMCOMPATIBILITY 1 -- Specify library, TAM initialization file, and callback program for the TAM: VAM library, PARAMS (inifile,ini_file, callbackLib, extract.exe) -- Specify tables to be captured: TABLEowner.table;
VAMソートによるExtractグループを作成して、VAM証跡を読み取ります。説明上、このグループをextsortと呼びます。
ADD EXTRACT extsort, VAMTRAILSOURCE VAM_trail
ローカル証跡を追加して、ソートされたデータを受信します。
ADD EXTTRAIL local_trail, EXTRACT extsort
EXTRACT引数を使用して、この証跡をVAMソートによるExtractグループにリンクします。データ・ポンプ・グループによって、この証跡が読み取られます。
EDIT PARAMSコマンドを使用して、VAMソートによるExtractグループにパラメータ・ファイルを作成します。データベース環境に適用される他のパラメータに加え、例4-2に示されているパラメータを含めてください。
例4-2 VAMソートによるExtractグループのパラメータ
-- Identify the Extract group: EXTRACT extsort -- Specify database login information as needed for the database: [SOURCEDB dsn1,][USERID user[, PASSWORD pw]] -- Specify that this Extract reads a VAM trail and sorts the data: DSOPTIONS SORTTRANLOG -- Specify the local trail to receive the sorted data: EXTTRAIL local_trail -- Specify tables to be captured: TABLE owner.table;
データ・ポンプ・グループを作成して、ローカル証跡を読み取り、そのデータを次のいずれかにあるリモート証跡に送信します。
ターゲットのTeradataデータベースに対してReplicatを実行しているレプリケーション・サーバー。
Oracle GoldenGateでサポートされている別のデータベース・プラットフォームに対してReplicatを実行しているターゲット・サーバー。
ADD EXTRACT pump, EXTTRAILSOURCE local_trail
説明上、このグループをpumpと呼びます。
リモート証跡を追加します。
ADD RMTTRAIL remote_trail, EXTRACT pump
EXTRACT引数を使用して、リモート証跡をデータ・ポンプ・グループにリンクします。
データ・ポンプにパラメータ・ファイルを作成します。データベース環境に適用される他のパラメータに加え、例4-3に示されているパラメータを含めてください。
例4-3 データ・ポンプExtractグループのパラメータ
-- Identify the data pump group: EXTRACT pump -- Specify database login information as needed for the database: [SOURCEDB dsn1,][USERID user[, PASSWORD pw]] -- Specify the name or IP address of the remote system: RMTHOST target, MGRPORT portnumber -- Specify the remote trail: RMTTRAIL remote_trail -- Allow mapping, filtering, conversion or pass data through as-is: [PASSTHRU | NOPASSTHRU] -- Specify tables to be captured: TABLE owner.table;
|
注意:
|
最大保護モードに関して、Replicatには特別な構成は必要ありません。この項では、大多数のターゲット・データベース・タイプで必要とされる基本的なReplicatパラメータについて説明します。追加のパラメータが必要になる場合があります。ご使用のターゲット・データベース向けOracle GoldenGateのインストレーションと構成のドキュメント、およびOracle GoldenGateリファレンスfor Windows and UNIXも参照してください。
ターゲットのレプリケーション・サーバーまたはデータベース・システム上で次の手順を実行します。
Oracle GoldenGateの管理for Windows and UNIXの手順に従ってManagerプロセスを構成します。
Managerパラメータ・ファイルでは、PURGEOLDEXTRACTSパラメータを使用してローカル証跡からのファイルの削除を制御します。
Replicatチェックポイント表を作成します。この目的に複数のオプションがあります。手順は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
Replicatグループを作成します。説明上、このグループをrepと呼びます。
ADD REPLICAT rep, EXTTRAIL remote_trail
EXTTRAIL引数を使用して、Replicatグループをソース・サーバー上でデータ・ポンプに指定されているリモート証跡にリンクします。
EDIT PARAMSコマンドを使用して、Replicatグループにパラメータ・ファイルを作成します。データベース環境に適用される他のパラメータに加え、例4-4に示されているパラメータを含めてください。
例4-4 Replicatグループのパラメータ
-- Identify the Replicat group: REPLICAT rep -- State whether or not source and target definitions are identical: SOURCEDEFS {full_pathname | ASSUMETARGETDEFS} -- Specify database login information as needed for the database: [TARGETDB dsn2,] [USERID user id[, PASSWORD pw]] -- Specify error handling rules (See the NOTE following parameter file): REPERROR (error, response) -- Specify tables for delivery: MAP owner.table, TARGET owner.table[, DEF template name];
|
注意: TeradataのMultiloadは、最大保護モードの完全な2フェーズ・コミット・プロトコルに関与しません。復元の状況では、Replicatで一部の更新が2回適用された可能性があります。multiset表に影響する場合には、この結果、重複する行が作成される可能性があります。Replicatパラメータ・ファイルで |
最大パフォーマンス・モードは、最大保護モードよりも速く、かつ容易ですが、フォルト・トレランスが低下します。ソース・アプリケーションによってコミットが発行されると、CDCによってレプリケーション・サーバーへのデータ送信が開始され、そこでそのデータがバッファに格納され、Extractによってソートされます。データ転送が終了すると、CDCによってExtractがコミットに送信され、コミットのトランザクションがアプリケーションおよびデータベースに解放されます。
最大パフォーマンスの構成では、受信データがディスクに保存されず、CDCとExtract間にデータ損失を防止する確認システムもありません。プライマリExtractとTeradataのソース間の通信が中断した場合、あるいはコンポーネントが失敗した場合には、ソース・データとターゲット・データの同期が維持されません。
別々のレプリケーション・サーバーにExtractプロセスとReplicatプロセスをインストールし、Extractサーバー上でデータ・ポンプとローカル証跡を併用します。この構成では、プライマリExtractによってトランザクションがローカルのOracle GoldenGate証跡まで保持されます。データ・ポンプのExtractによってこの証跡が読み取られ、そのデータがTCP/IP経由でReplicatサーバー上の証跡に送信され、そのデータがReplicatによって再度読み取られてターゲットに適用されます。ExtractサーバーとReplicatレプリケーション・サーバー間の通信が失敗した場合に影響を受けるのは、データ・ポンプだけです。プライマリExtractでは、受信データをメモリーに保持するのではなく、そのデータをディスクに書き込み続けます。そうしないと、長期間の機能停止でメモリーを使い果す可能性があります。
ソースのレプリケーション・サーバー上で次の手順を実行します。
Oracle GoldenGateの管理for Windows and UNIXの手順に従ってManagerプロセスを構成します。
Managerパラメータ・ファイルでは、PURGEOLDEXTRACTSパラメータを使用してローカル証跡からのファイルの削除を制御します。
GGSCIを実行します。
プライマリExtractグループを作成します。説明上、このグループをextと呼びます。
ADD EXTRACT ext, VAM
ローカル証跡を追加します。
ADD EXTTRAIL local_trail, EXTRACT ext
EXTRACT引数を使用して、この証跡をプライマリExtractグループにリンクします。
EDIT PARAMSコマンドを使用して、プライマリExtractグループにパラメータ・ファイルを作成します。データベース環境に適用される他のパラメータに加え、例4-5に示されているパラメータを含めてください。
|
注意: データベース・パスワード、証跡内のデータおよびTCP/IP経由で送信されるデータの暗号化には、暗号化オプションがあります。セキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。 |
例4-5 プライマリExtractグループのパラメータ
EXTRACT ext
-- Identify the Extract group:
-- Specify database login information as needed for the database:
[SOURCEDB dsn1,][USERID user[, PASSWORD pw]]
-- Specify the local trail that this Extract writes to:
EXTTRAIL local_trail
-- Specify that this Extract is in maximum performance mode:
DSOPTIONS COMMITTEDTRANLOG RESTARTAPPEND, VAMCOMPATIBILITY 1
-- Specify library, TAM initialization file, and callback program for the TAM:
VAM library, PARAMS (inifile, ini_file, callbackLib, extract.exe)
-- Specify tables to be captured:
TABLE owner.table;
データ・ポンプ・グループを作成して、ローカル証跡を読み取り、そのデータを次のいずれかにあるリモート証跡に送信します。
ターゲットのTeradataデータベースに対してReplicatを実行しているレプリケーション・サーバー。
Oracle GoldenGateでサポートされている別のデータベース・プラットフォームに対してReplicatを実行しているターゲット・サーバー。
ADD EXTRACT pump, EXTTRAILSOURCE local_trail
説明上、このグループをpumpと呼びます。
リモート証跡を追加します。
ADD RMTTRAIL remote_trail, EXTRACT pump
EXTRACT引数を使用して、リモート証跡をデータ・ポンプ・グループにリンクします。
データ・ポンプにパラメータ・ファイルを作成します。データベース環境に適用される他のパラメータに加え、例4-6に示されているパラメータを含めてください。
例4-6 Extractデータ・ポンプのパラメータ
-- Identify the data pump group: EXTRACT pump -- Specify database login information as needed for the database: [SOURCEDB dsn1,][USERID user[, PASSWORD pw]] -- Specify the name or IP address of the remote system: RMTHOST target, MGRPORT portnumber -- Specify the remote trail: RMTTRAIL remote_trail -- Allow mapping, filtering, conversion or pass data through as-is: [PASSTHRU | NOPASSTHRU] -- Specify tables to be captured: TABLE owner.table
|
注意:
|
最大保護モードに関して、Replicatには特別な構成は必要ありません。この項では、大多数のターゲット・データベース・タイプで必要とされる基本的なReplicatパラメータについて説明します。追加のパラメータが必要になる場合があります。ご使用のターゲット・データベース向けOracle GoldenGateのドキュメント、およびOracle GoldenGateリファレンスfor Windows and UNIXも参照してください。
ターゲットのレプリケーション・サーバーまたはデータベース・システム上で次の手順を実行します。
Oracle GoldenGateの管理for Windows and UNIXの手順に従ってManagerプロセスを構成します。
Managerパラメータ・ファイルでは、PURGEOLDEXTRACTSパラメータを使用してローカル証跡からのファイルの削除を制御します。
Replicatチェックポイント表を作成します。この目的に複数のオプションがあります。手順は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
Replicatグループを作成します。説明上、このグループをrepと呼びます。
ADD REPLICAT rep, EXTTRAIL remote_trail
EXTTRAIL引数を使用して、Replicatグループをソース・サーバー上でデータ・ポンプに指定されているリモート証跡にリンクします。
EDIT PARAMSコマンドを使用して、Replicatグループにパラメータ・ファイルを作成します。データベース環境に適用される他のパラメータに加え、例4-7に示されているパラメータを含めてください。
例4-7 Replicatグループのパラメータ
-- Identify the Replicat group: REPLICAT rep -- State whether or not source and target definitions are identical: SOURCEDEFS full_pathname | ASSUMETARGETDEFS -- Specify database login information as needed for the database: [TARGETDB dsn2,] [USERID user id[, PASSWORD pw]] -- Specify error handling rules: REPERROR (error, response) -- Specify tables for delivery: MAP owner.table, TARGET owner.table[, DEF template name]; ;
Oracle GoldenGate環境をインストールして構成したら、次の内容を考慮してください。
Oracle GoldenGateでは、Teradata DDLのレプリケーションをサポートしています。詳細は、「TeradataデータベースへのDDL同期の構成」を参照してください。
大量の行数を更新または削除する操作によって、サブスクライバ・データベースの行ごとに個別の更新および削除が生成されます。これによって、Teradataのサブスクライバ・システムでロック・マネージャのオーバーフローが発生し、その結果、Replicatプロセスが終了する可能性があります。
それらのエラーを回避するには、次のいずれかの手順を実行します。
それらの操作のレプリケーションを一時停止してから、ソース・システムおよびターゲット・システムでそれらの操作を手動で実行します。レプリケーションを一時停止するには、そのセッションにのみレプリケーションを一時停止する次のコマンドを使用します。その表の他のセッションの操作は正常にレプリケートされます。
set session override replication on;
commit;
ReplicatパラメータMAXTRANSOPSを1000未満の値に設定します。このパラメータによって、大きいトランザクションが小さいトランザクションに分割されます。
既定では、ExtractプロセスとReplicatプロセスによって、カタログのクエリに新しい接続が作成されます。DBOPTIONSパラメータとNOCATALOGCONNECTオプションを併用することで、この余分な接続を回避できます。