内容は次のとおりです。
データの取得対象の表はすべて、明示的に、あるいはデフォルトである同じライブラリ内のQSQJRN
ジャーナルを使用して、ジャーナル処理される必要があります。データの整合性を保つには、システムに出現した時間順にデータ・ジャーナル・エントリをExtractプロセスに送信する必要があります。この項では、Extractプロセスによる取得をサポートするようジャーナルを構成するためのガイドラインを示します。
1つのExtractプロセスで最大30個のジャーナルを処理できます。それより多くのジャーナルを使用する場合、追加のExtractプロセスを使用して超過分のジャーナルを処理します。必要に応じて、追加のExtractプロセスを使用して取得のパフォーマンスを向上させることもできます。
注意:
トランザクションの整合性を保証するには、特定のトランザクションに対応するすべてのジャーナルを同一のExtractグループで読み取る必要があります。複数のExtractプロセスの使用の詳細は、Oracle GoldenGateの管理のOracle GoldenGateのパフォーマンスのチューニングを参照してください。
親トピック: Extractによるデータ取得のためのジャーナルの準備
Extractプロセスによるデータの取得をサポートするには、少なくとも次のジャーナル・パラメータの設定が必要です。
レシーバの管理(MNGRCV): *SYSTEM
レシーバの削除(DLTRCV): *NO
レシーバ・サイズ・オプション(RCVSIZOPT): *MAXOPT2
(*MAXOPT3
が推奨)
ジャーナルの状態(JRNSTATE): *ACTIVE
項目固有のデータの最小化(MINENTDTA): *NONE
固定長データ(FIXLENDTA): *USR *SYSSEQ
次の例に、これらの属性をライブラリLIB1
のジャーナルJRN1
に設定するコマンドを示します。
CHGJRN JRN(LIB1/JRN1) MNGRCV(*SYSTEM) DLTRCV(*NO) RCVSIZOPT(*MAXOPT2) JRNSTATE(*ACTIVE) MINENTDTA(*NONE) FIXLENDTA(*USR *SYSSEQ)
注意:
ジャーナルの属性を確認するには、コマンドWRKJRNA JRN(LIB1/JRN1) DETAIL(*CURATR)
を使用します。
ジャーナルのパラメータが、推奨された設定値に設定されている場合、ジャーナルの項目に、Oracle GoldenGateの処理が行われるのに必要な情報がすべて含まれることが保証されます。これらの設定で、システムによって、ジャーナル・レシーバが自動的に削除されず、Extractが古いデータを処理する必要が生じた場合に備えて保持されることも保証されます。
親トピック: Extractによるデータ取得のためのジャーナルの準備
Extractのお薦めの構成ではDLTRCV
パラメータはNO
に設定されますが(ジャーナル・パラメータの設定を参照)、Extractによる取得の完了後に古いジャーナル・レシーバを削除できます。
Oracle GoldenGateが読み取るジャーナルを使用する別のアプリケーションを使用している場合は、設定可能なジャーナル・レシーバの自動クリーンアップに関して考慮する必要があります。Oracle GoldenGateは、ジャーナル・レシーバがデタッチまたは削除される前に読み取ることができる必要があります。
ジャーナル・レシーバを削除する手順
親トピック: Extractによるデータ取得のためのジャーナルの準備
Oracle GoldenGateのコマンドおよびパラメータでは、SQL名形式、library_name/file_name(member_name)
の形式のネイティブ名、両者の混在がサポートされます。ネイティブ・ファイル・システム名にメンバー名が含まれない場合、すべてのメンバーがOracle GoldenGateプロセスによって暗黙的に選択されます。SQL名の場合は、最初のメンバーのみが使用されます。
二重引用符で囲まれたオブジェクト名の大/小文字の区別をサポートするには、Oracle GoldenGateパラメータ・ファイルでそれらの名前を二重引用符で囲んで指定します。これは、SQL名でもネイティブ・ファイル・システム名でも同様です。
DB2 for i以外のプラットフォームでMAP
文にネイティブ表名を指定するときは、Oracle GoldenGateがセパレータ文字として正しく解釈するように、名前を二重引用符で囲む必要があります。
他のOracle GoldenGateの管理ドキュメントやリファレンス内の用語との一貫性を保つため、ここに示すように、SQLの用語「スキーマ」および「表」をDB2 for iデータのコンテナの意で使用します。
表5-1 ネイティブとSQLのオブジェクト名の関係
ネイティブ | SQL | 注意 |
---|---|---|
ライブラリ (最大長10) |
スキーマ (最大長128) |
オペレーティング・システムによって、SQLで作成されたスキーマに対応するネイティブ名が作成されます。 |
ファイル (最大長10) |
表 (最大長128) |
オペレーティング・システムによって、SQLで作成された表に対応するネイティブ名が作成されます。 |
メンバー |
適用外 |
実際のデータが含まれます。 |
親トピック: Oracle GoldenGateシステムの準備
次の表属性は、Oracle GoldenGate環境で処理する必要があります。
親トピック: Oracle GoldenGateシステムの準備
Oracle GoldenGateでは、レプリケートされた更新および削除に対して正しいターゲット行を見つけるために、ソース表とターゲット表にある形式の一意の行識別子が必要です。
TABLE
またはMAP
文でKEYCOLS
句が使用されないかぎり、Oracle GoldenGateは、使用する行識別子を次の優先順位に従って選択します。
主キー
タイムスタンプまたはマテリアライズされていない計算結果列を含まない英数字順で最初の一意キー。
前述のキー・タイプのいずれも存在しない場合(その他の種類のキーが表に定義されている場合でも)、Oracle GoldenGateは、データベースで一意キーでの使用を許可されているすべての列(キー内での使用がOracle GoldenGateでサポートされていない列やOracle GoldenGate構成から除外されている列は除く)で疑似キーを作成します。
注意:
表に使用可能な他のキーがない場合や、表にキーがまったくない場合、Oracle GoldenGateは該当するメッセージをレポート・ファイルに記録します。すべての列からキーを作成すると、ソース・システムのOracle GoldenGateのパフォーマンスが低下します。ターゲットでは、このキーはReplicatであまり効率的でないより大きいWHERE
句が使用される原因となります。
親トピック: 行識別子の割当て
KEYCOLS
を使用したカスタム・キーの指定前述のキー・タイプの行識別子が表に存在しないか、または、それらの識別子を使用しない場合は、常に一意の値が含まれている列が表にあれば、代替キーを定義できます。ExtractのTABLE
パラメータおよびReplicatのMAP
パラメータ内にKEYCOLS
句を含めることで、この代替キーを定義します。指定したキーにより、Oracle GoldenGateで検出される既存の主キーまたは一意キーはオーバーライドされます。
親トピック: 行識別子の割当て
Oracle GoldenGateがジャーナル・データの処理を開始した後に、Extractによって表の行識別子として使用されるキー(主キー、一意キー、KEYCOLS
キーまたはすべての列キー)に列を追加する必要がある場合、次の手順に従って変更します。
親トピック: 処理のための表の準備
ターゲット表で、トリガーおよびカスケード制約を無効にするか、Replicatによる変更を無視するよう構成する必要があります。Oracle GoldenGateでは、トリガーまたはカスケード制約によって生じたDMLがレプリケートされるため、制約を無効にする必要があります。同じトリガーや制約がターゲット表でアクティブになった場合、レプリケートされたバージョンのために重複となり、データベースでエラーが返されます。ソース表にemp_src
とsalary_src
、ターゲット表にemp_targ
とsalary_targ
を使用している次の例について考えます。
emp_src
に削除が発行されます。salary_src
にカスケードされます。emp_targ
に適用されます。salary_targ
にカスケードされます。salary_src
のカスケードされた削除が、salary_targ
に適用されます。親トピック: 処理のための表の準備
表に対する変更をジャーナルに取得するには、OS/400コマンドラインでSTRJRNPF
コマンドを実行するか、GGSCIからADD TRANDATA
コマンドを実行します。ADD TRANDATA
コマンドはSTRJRNPF
を呼び出す、表のジャーナル処理を開始する推奨メソッドです。STRJRNPF
コマンドでRecord Images (IMAGES): *BOTH
の必要なジャーナル・イメージ属性が確実に設定されるためです。
ADD TRANDATA
を実行する手順
ADD TRANDATA
コマンドで複数の表またはファイルに対してデフォルト・ジャーナルを指定するには、JOURNAL
キーワードを指定するかわりに、ADD TRANDATA
を発行する前に次のGGSCIコマンドを使用します。
DEFAULTJOURNAL library/journal
ジャーナルを指定せずに使用されたADD TRANDATA
では、DEFAULTJOURNAL
のジャーナルが想定されます。
DEFAULTJOURNAL
の現在の設定を表示するには、引数なしでコマンドを発行します。
親トピック: 変更の取得の有効化
デフォルト・ジャーナルの使用を削除するには、次のGGSCIコマンドを使用します。
DEFAULTJOURNAL CLEAR
親トピック: 変更の取得の有効化
ソースとターゲットのマテリアライズ問合せ表(MQT)間の同等性を維持するには、ベース表をレプリケートしますが、MQTはレプリケートしません。ターゲット・データベースでは、Replicatがベース表に適用する変更に基づいてMQTが整備されます。
これらの表を構成するためのルールを次に示します。
ベース表をTABLE
およびMAP
文に含めます。
MQTはTABLE
およびMAP
文に含めないでください。
MQT名が通常の表名とともに解決される可能性はありますが、TABLE
およびMAP
文でワイルドカードを使用できます。Oracle GoldenGateは、ワイルドカードを使用した表リストからMQTを自動的に除外します。ただし、ExtractのTABLE
文でMQTを名前によって明示的にリストすると、Extractが異常終了する原因となります。
親トピック: 処理のための表の準備
Oracle GoldenGateを起動するには、ggos400install
スクリプトの実行時にDB2 for i用Oracle GoldenGateライブラリの名前を指定します。これによって、そのライブラリにリストアされたOGGPRCJRN *SRVPGM
(サービス・プログラム)オブジェクトへのリンクが作成されます。oggprcjrn
サービス・プログラムへのリンクが削除された場合、ggos400install
シェル・スクリプトを再度実行して同じライブラリを指定するか、コマンド"ln -s /qsys.lib/
OGG_library
.lib/oggprcjrn.srvpgm oggprcjrn.srvpgm
"を使用します。このリンクが正しくない場合や見つからない場合、Extractは異常終了します。
親トピック: 処理のための表の準備
システム・クロックをUTC(協定世界時)時間に設定し、DB2 for iシステム値でタイムゾーン・オフセットを使用して正しいローカル時間を表すことをお薦めします。この設定が正しく行われている場合、レプリケーションに悪影響を及ぼすことなく、ローカルの夏時間の調整が自動的に行われます。
親トピック: Oracle GoldenGateシステムの準備
この項は、WindowsまたはLinuxシステムにReplicatをインストールしてDB2 for iターゲットからリモート操作する場合にのみ該当します。この構成では、ReplicatはODBCに指定されたデータベース接続によりターゲット・システムに接続する必要があります。次の手順に、ODBCをインストールして構成し、DB2 for iターゲット・システムに接続する方法を示します。
ODBCの構成には、Linuxディストリビューションに付属している、ODBC構成ユーティリティを実行するグラフィカル・ユーザー・インタフェースを使用できます。あるいは、次の手順に示す設定でodbc.ini
ファイルを編集して構成することもできます。(次の手順では、Linux用ODBCConfig
グラフィカル・インタフェース・ユーティリティから起動されるODBC管理ツールを示します。)
親トピック: ODBCドライバの構成