Oracle® Fusion Middleware DB2 for iのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E79717-01 |
|
前 |
次 |
この章では、Oracle GoldenGateをサポートするためのDB2 for iシステムの準備に関するガイドラインを示します。
この章は次の項で構成されています:
データの取得対象の表はすべて、明示的に、あるいはデフォルトである同じライブラリ内のQSQJRN
ジャーナルを使用して、ジャーナル処理される必要があります。データの整合性を保つには、システムに出現した時間順にデータ・ジャーナル項目をExtractに送信する必要があります。この項では、Extractによる取得をサポートするようジャーナルを構成する場合のガイドラインを示します。
1つのExtractプロセスで最大30個のジャーナルを処理できます。それより多くのジャーナルを使用する場合、追加のExtractプロセスを使用して超過分のジャーナルを処理します。必要に応じて、追加のExtractプロセスを使用して取得のパフォーマンスを向上させることもできます。
注意: トランザクションの整合性を保証するには、特定のトランザクションに対応するすべてのジャーナルを同一のExtractグループで読み取る必要があります。複数のExtractプロセスの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。 |
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の推奨構成ではDLTRCV
パラメータはNO
に設定されます(「ジャーナル・パラメータの設定」を参照)が、Extractによる取得の完了後、古いジャーナル・レシーバを削除できます。
Oracle GoldenGateが読み取るジャーナルを使用する別のアプリケーションを使用している場合は、設定可能なジャーナル・レシーバの自動クリーンアップに関して考慮する必要があります。Oracle GoldenGateは、ジャーナル・レシーバがデタッチまたは削除される前に読み取ることができる必要があります。
ジャーナル・レシーバを削除する手順
GGSCIを実行します。
GGSCIで次のコマンドを発行し、Extractが現在の処理位置としているジャーナルの位置とそのジャーナル・レシーバを確認します。
INFO EXTRACT group
次のDB2 for iコマンドを使用して、INFO EXTRACT
コマンドで表示されたジャーナル・レシーバより前に生成されたジャーナル・レシーバを削除します。
DLTJRNRCV JRNRCV(library
/journal_receiver
)
説明:
library
およびjournal_receiver
は、ライブラリおよび削除するジャーナル・レシーバの実際の名前です。このコマンドの詳細は、DB2 for iインフォメーション・センターを参照してください。
Oracle GoldenGateのコマンドおよびパラメータでは、SQL名形式、library_name/file_name(member_name)
の形式のネイティブ名、両者の混在がサポートされます。ネイティブ・ファイル・システム名にメンバー名が含まれない場合、すべてのメンバーがOracle GoldenGateプロセスによって暗黙的に選択されます。SQL名の場合は、最初のメンバーのみが使用されます。
二重引用符で囲まれたオブジェクト名の大/小文字の区別をサポートするには、Oracle GoldenGateパラメータ・ファイルでそれらの名前を二重引用符で囲んで指定します。これは、SQL名でもネイティブ・ファイル・システム名でも同様です。
DB2 for i以外のプラットフォームでMAP
文にネイティブ表名を指定するときは、Oracle GoldenGateがセパレータ文字として正しく解釈するように、名前を二重引用符で囲む必要があります。
他のOracle GoldenGateの管理ドキュメントやリファレンス内の用語との一貫性を保つため、表3-1に示すように、SQLの用語「スキーマ」および「表」をDB2 for iデータのコンテナの意で使用します。
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リファレンスfor Windows and UNIXを参照してください。
注意: レコードのRRNを表のキーとして使用する場合は、処理される各レコードのRRNが格納されるGGHEADER Oracle GoldenGate環境変数のAUDITRBA にアクセスします。 |
Oracle GoldenGateがジャーナル・データの処理を開始した後に、Extractによって表の行識別子として使用されるキー(主キー、一意キー、KEYCOLS
キーまたはすべての列キー)に列を追加する必要がある場合、次の手順に従って変更します。
Extractを停止します。
STOP EXTRACT group
既存のジャーナル・データがすべて処理されたことを表すEOF
が返されるまで、次のコマンドを発行します。
INFO EXTRACT group
キーに変更を加えます。
Extractを開始します。
START EXTRACT group
ターゲット表で、トリガーおよびカスケード制約を無効にするか、Replicatによる変更を無視するよう構成する必要があります。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ですでに削除されているため検出できません。
表に対する変更をジャーナルに取得するには、OS/400コマンドラインでSTRJRNPF
コマンドを実行するか、GGSCIからADD TRANDATA
コマンドを実行します。ADD TRANDATA
コマンドはSTRJRNPF
を呼び出す、表のジャーナル処理を開始する推奨メソッドです。STRJRNPF
コマンドでRecord Images (IMAGES): *BOTH
の必要なジャーナル・イメージ属性が確実に設定されるためです。
ADD TRANDATA
を実行する手順
ソース・システムでGGSCIを実行します。
DBLOGIN
コマンドを発行します。
DBLOGIN SOURCEDB
database
USERIDuser
, PASSWORD password [encryption_options
]
説明: SOURCEDB
ではデフォルトのDB 2 for iデータベースを、USERID
では、Extractユーザー・プロファイルを、PASSWORD
ではそのプロファイルのパスワードを指定します。DBLOGIN
のパスワード暗号化オプションは、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
注意: DB2 for iシステムに対しては、BLOWFISH 暗号化のみサポートされています。 |
ADD TRANDATA
コマンドを発行します。
ADD TRANDATA table_specification
説明: table_specification
は次のいずれかです。
schema.table
[JOURNAL
library/journal
]
library/file
[JOURNAL
library/journal]
(「デフォルト・ジャーナルの指定」を参照)
ADD TRANDATA
コマンドで複数の表またはファイルに対してデフォルト・ジャーナルを指定するには、JOURNAL
キーワードを指定するかわりに、ADD TRANDATA
を発行する前に次のGGSCIコマンドを使用します。
DEFAULTJOURNAL library/journal
ジャーナルを指定せずに使用されたADD TRANDATA
では、DEFAULTJOURNAL
のジャーナルが想定されます。
DEFAULTJOURNAL
の現在の設定を表示するには、引数なしでコマンドを発行します。
ソースとターゲットのマテリアライズ問合せ表(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システム値でタイムゾーン・オフセットを使用して正しいローカル時間を表すことをお薦めします。この設定が正しく行われている場合、レプリケーションに悪影響を及ぼすことなく、ローカルの夏時間の調整が自動的に行われます。
この項は、WindowsまたはLinuxシステムにReplicatをインストールしてDB2 for iターゲットからリモート操作する場合にのみ該当します。この構成では、ReplicatはODBCに指定されたデータベース接続によりターゲット・システムに接続する必要があります。次の手順に、ODBCをインストールして構成し、DB2 for iターゲット・システムに接続する方法を示します。
ODBCの構成には、Linuxディストリビューションに付属している、ODBC構成ユーティリティを実行するグラフィカル・ユーザー・インタフェースを使用できます。あるいは、次の手順に示す設定でodbc.ini
ファイルを編集して構成することもできます。(次の手順では、Linux用ODBCConfig
グラフィカル・インタフェース・ユーティリティから起動されるODBC管理ツールを示します。)
ベンダーのドキュメントに従って、リモートLinuxシステムに32ビットまたは64ビットのiSeries Access ODBCドライバをダウンロードし、インストールします。iSeries ODBCドライバは、iSeries Accessのコンポーネントとして無償で提供されます。
使用するドライバに応じて、次のいずれかのコマンドを発行します。
32ビット・ドライバ:
rpm -ivh iSeriesAccess-7.1.0-1.0.i386.rpm
64ビット・ドライバ:
rpm -ivh iSeriesAccess-7.1.0-1.0.x86_64.rpm
ユーザーDSN(作成したユーザーのみが使用できる接続)を作成することも、システムDSN(システムのすべてのユーザーが使用できる接続)を作成することもできます。ユーザーDSNを作成するには、Replicatプロセスに使用するユーザーとしてシステムにログオンします。
ODBC構成ユーティリティを実行します。
ODBC構成ツールの初期ページで、「User DSN」タブを選択してユーザーDSNを作成するか、「System DSN」タブを選択してシステムDSNを作成します。(この手順ではユーザーDSNを作成します。システムDSNの作成も同様です。)
選択したタブで、「Add」をクリックします。
適切なiSeries Access ODBCドライバを選択して「OK」をクリックし、この手順のステップ8に進みます。適切なドライバが「Select the DRIVER」リストに表示されない場合、「Add...」ボタンをクリックして、図3-3に示されたフィールドを完成させます。
図3-3のフィールドを完成させる方法は、次のとおりです。
「Name」をドライバの名前に設定します。
「Driver」をドライバがインストールされているパスに設定します。
「Setup」を、ドライバ・インストール・ディレクトリにあるlibcwbodbci.so
ファイルに設定します。
他の設定をデフォルトのままにします。
「Name」フィールドの上にあるチェック・マークをクリックし、設定を保存します。
「Data Source Properties」ダイアログの「Name」フィールドに、1語から成るデータ・ソースの名前を指定します。「System」フィールドに、ターゲットDB2 for iシステムの完全修飾名(sysname.company.com
など)を入力します。「UserID」および「Password」フィールドを空白のままにし、データベースへの接続時にReplicatが資格証明を指定できるようにします。残りのフィールドをデフォルトの設定のままにし、「Name」フィールドの上にあるチェック・マークをクリックし、設定を保存します。
「ODBC Data Source Administrator」ダイアログに戻ります。「OK」をクリックして、ODBC構成ユーティリティを終了します。
GRAPHIC
型、VARGRAPHIC
型およびDBCLOB
型をサポートするには、.odbc.ini
ファイルを編集し、次の行を追加します。
GRAPHIC = 1
注意: ユーザー・データ・ソース名を作成した場合、このファイルは、作成したユーザーのホーム・ディレクトリにあります。システムDSNを作成した場合、このファイルは/etc/odbc.ini または/usr/local/etc/odbc.ini にあります。 |
ターゲットのOracle GoldenGateディレクトリからGGSCIを実行し、DBLOGIN
コマンドを発行してターゲット・データベースにログインします。構文の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
DBLOGIN SOURCEDBdatabase
, USERIDdb_user
[, PASSWORDpw
[encryption options
]]
説明:
SOURCEDB
database
には、新規データ・ソース名を指定します。
USERID
db_user
, PASSWORD
pw
は、Replicatデータベース・ユーザー・プロファイルおよびパスワードです。
encryption options
は、オプションのパスワード暗号化です。
注意: DB2 for iシステムに対しては、BLOWFISH 暗号化のみサポートされています。 |
Windowsでは、ODBC管理ツールは、「管理ツール」フォルダにある「データ ソース(ODBC)」です。
ベンダーのドキュメントに従って、リモートWindowsシステムにDB2 for iSeries Accessパッケージから32ビットまたは64ビットのiSeries Access ODBCドライバをダウンロードし、インストールします。iSeries ODBCドライバは、iSeries Accessのコンポーネントとして無償で提供されます。
ユーザーDSN(作成したユーザーのみが使用できる接続)を作成することも、システムDSN(システムのすべてのユーザーが使用できる接続)を作成することもできます。ユーザーDSNを作成するには、Replicatプロセスに使用するユーザーとしてシステムにログオンします。
Windowsのコントロール パネルから、「管理ツール」、「データ ソース(ODBC)」の順に選択します。
ODBC構成ツールの最初ページで、「ユーザーDSN」タブを選択してユーザーDSNを作成するか、「システムDSN」タブを選択してシステムDSNを作成します。(この手順ではユーザーDSNを作成します。システムDSNの作成も同様です。)
選択したタブで、「追加」をクリックします。
適切なiSeries Access ODBC Driverをドライバのリストから選択し、「完了」をクリックします。
「DB2 for i Access for Windows ODBCセットアップ」ダイアログの「一般」タブで、「データ・ソース名」フィールドに名前(空白なし)を指定し、「記述」フィールドにオプションの説明を追加して、「システム」選択リストからシステム名を選択します。
「サーバー」タブで、「命名規則」を「SQL Naming Convention (*SQL)
」に設定します。他のフィールドをデフォルトの設定のままにします。
「データ型」タブの「2バイト文字セット(DBCS)グラフィック・データ型」で、「サポートどおりにレポート」チェック・ボックスを選択します。
「変換」タブで「バイナリ・データ(CCSID 65535)をテキストに変換」チェック・ボックスを選択解除します。
「適用」、「OK」の順にクリックします。「ODBC Data Source Administrator」ダイアログに戻ります。
新しいデータ・ソース名が「ユーザー データ ソース」に表示されていることを確認します。
「OK」をクリックして、ODBC構成ユーティリティを終了します。
ターゲットのOracle GoldenGateディレクトリからGGSCIを実行し、DBLOGIN
コマンドを発行してターゲット・データベースにログインします。構文の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
DBLOGIN SOURCEDBdatabase
, USERIDdb_user
[, PASSWORDpw
[encryption_options
]]
説明:
SOURCEDB
database
には、新規データ・ソース名を指定します。
USERID
db_user
, PASSWORD
pw
は、Replicatデータベース・ユーザー・プロファイルおよびパスワードです。
encryption_options
は、オプションのパスワード暗号化です。
注意: DB2 for iシステムに対しては、BLOWFISH 暗号化のみサポートされています。 |