プライマリ・コンテンツに移動
Fusion Middleware PostgreSQLのためのOracle GoldenGateのインストールおよび構成
12c (12.2.0.1)
E72562-01
  目次へ移動
目次

前
 
次
 

2 Oracle GoldenGateのためのシステムの準備

この章では、Oracle GoldenGateを使用するシステムを準備する方法について説明し、内容は次のとおりです。

2.1 Oracle GoldenGateディストリビューションの理解と入手

Oracle Fusion Middlewareソフトウェアの入手方法の詳細は、『Oracle Fusion Middlewareのインストールのプランニング』の製品の配布の理解と入手に関する項を参照してください。

Oracle WebLogic Server and Coherenceソフトウェアを開発または評価用にダウンロードするには、Oracle Technology Network (OTN)で次の場所を参照してください。

http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html">>http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html

Oracle Fusion Middleware製品の検索やダウンロードの詳細は、OTNで『Oracle Fusion Middlewareダウンロード、インストール、構成のREADMEファイル』を参照してください。

Oracle GoldenGateを入手するには、次の手順に従います。

  1. Oracle Technology Networkに移動します。

  2. Oracle GoldenGate 12c (12.2.0.1)リリースを探して、使用中のシステムにZIPファイルをダウンロードします。

2.2 UNIXおよびLinuxでのODBCの構成

UNIXおよびLinuxでODBCを構成するには、次の方法があります。

2.2.1 データベース・ライブラリへのパスを指定

ODBCドライバ・マネージャをデータベース・ライブラリにポイントするには、DSN情報を含むodbc.iniファイルを作成します。このファイルは、システムのどこにでも格納できます。「ODBCドライバ・ライブラリと初期化ファイルへのパスを設定」で、このファイルのパスを設定するよう指示されます。

このファイルは、冒頭に[ODBC Data Sources]セクションが必要で、それに続いてこのインストールのDSNのリストが続いている必要があります。各DSNは、それぞれのセクションに記述されており、各DSNセクションではDriverエントリが必須です。必須エントリの例を次に示します。

[ODBC Data Sources]
postgre=DataDirect 6.1 PostgreSQL Wire Protocol

[ODBC]
IANAAppCodePage=4
InstallDir=/home/fin/fin13004/postgres/v11201_120402

[postgre]
Driver=/home/fin/fin13004/postgres/v11201_120402/lib/GGpsql25.so
Description=DataDirect 6.1 PostgreSQL Wire Protocol
Database=fin
HostName=12.345.6.789
PortNumber=5432
LogonID=postgres
Password=postgre

2.2.2 ODBCドライバ・ライブラリと初期化ファイルへのパスを設定

Replicatによって使用される次のコンポーネントにパスを設定します。

  • odbc.iniファイルのパスに環境変数ODBCINIを設定します。これは、「データベース・ライブラリへのパスを指定」で作成したファイルで、データベース・ライブラリを検索する場所をODBCに指示します。

  • 共有ライブラリの環境変数を、Oracle GoldenGateインストール・ディレクトリのlibサブディレクトリのパスに設定します。このサブディレクトリは、ODBCドライバ(libodbc.so)とライセンス・ファイルが格納されており、Replicatがそれを検索する場所です。

Kornシェルで変数を設定する方法

PATH=<absolute path>:$PATH
export PATH <ODBCINI | shared libraries variable>=<absolute path>:
$<ODBCINI | shared libraries variable>
export <ODBCINI | shared libraries variable>

Bourneシェルで変数を設定する方法

export PATH=<absolute path>:$PATH
export <ODBCINI | shared libraries variable>=<absolute path>:
$<ODBCINI | shared libraries variable>

Cシェルで変数を設定する方法

setenv PATH <absolute path>:$PATH
setenv <ODBCINI | shared libraries variable> <absolute path>:
   $<ODBCINI | shared libraries variable>

説明:

  • <absolute path>は、どちらの変数を設定するかに応じて、odbc.iniファイルのフルパス、またはOracle GoldenGate libサブディレクトリのフルパスのどちらかです。

  • <shared libraries variable>は、次のいずれかです。

    プラットフォーム 環境変数

    IBM AIX

    LIBPATH

    HP-UX

    SHLIB_PATH

    Sun Solaris

    HP Tru64 (OSF/1)

    Linux

    LD_LIBRARY_PATH


例:

export LD_LIBRARY_PATH=/ggs/lib:$LD_LIBRARY_PATH

注意:

Oracle GoldenGateプロセスに必要なライブラリを確認するには、プロセスを起動する前にldd <process>シェル・コマンドを使用します。なんらかの不足があれば、このコマンドでエラー・メッセージも表示されます。

2.3 WindowsでのODBCの構成

WindowsでODBCを構成するには、次の方法があります。

2.3.1 ドライバ情報を使用してWindowsレジストリを更新

ODBCドライバのパスを、WindowsレジストリのHKEY_LOCAL_MACHINE\SOFTWARE\ODBC\にあるODBC.INIキーとODBCINST.INIキーに追加します。このプロセスは、Oracle GoldenGateで自動化されます。

  1. Windowsのコマンド・プロンプトで、Oracle GoldenGateインストール・ディレクトリのディレクトリを変更します。

  2. 次の入力を指定してinstallプログラムを実行します。

    install adddrivers
    

2.3.2 データ・ソース名(DSN)を作成

DSNにはデータベースへの接続方法が格納されます。

  1. Windowsシステムで、「コントロール パネル」フォルダを開きます。

  2. 「管理ツール」フォルダを開きます。

  3. 「データ ソース(ODBC)」を開きます。「ODBCデータ ソース アドミニストレータ」ダイアログ・ボックスが表示されます。

  4. 「システムDSN」タブを選択し、「追加」をクリックします。

  5. 「データ ソースの新規作成」で、PostgreSQLドライバを選択します。

  6. 「完了」をクリックします。「データ ソースの新規作成」ウィザードが表示されます。

  7. 次を入力します。

    • 「クライアントDSN」に、クライアント名のDSNの名前を入力します。アンダースコアとダッシュ以外の特殊キーボード文字を除いた32文字までの英数字を使用できます。

    • (オプション)「説明」に、このDSNの説明を入力します。

    • このダイアログの他のフィールドに、PostgreSQLデータベースとそのホストの正しい情報を指定します。

  8. 「OK」をクリックしてダイアログを閉じます。

  9. Oracle GoldenGateがPostgreSQLとやり取りする他のシステムで、前述の手順を繰り返します。

2.4 Replicatパラメータ・ファイルでのDSNの指定

Replicatパラメータ・ファイルのTARGETDBパラメータでDSNを指定します。このパラメータの詳細は、『Oracle GoldenGate Windows and UNIXリファレンス・ガイド』を参照してください。

2.5 処理のための表の準備

次の表属性は、Oracle GoldenGate環境で処理する必要があります。

2.5.1 トリガーおよびカスケード制約の無効化

ターゲット表のトリガー、カスケード削除制約、カスケード更新制約を無効にするか、これらを変更してOracle GoldenGateデータベース・ユーザーによる変更が無視されるようにします。Oracle GoldenGateでは、トリガーまたはカスケード制約の結果として生成されるDMLがレプリケートされます。同じトリガーや制約がターゲット表でアクティブになった場合、レプリケートされたバージョンのために重複となり、データベースでエラーが返されます。次の例を検討してください。ソース表が"emp_src"と"salary_src"で、ターゲット表が"emp_targ"と"salary_targ"です。

  1. emp_srcに削除が発行されます。

  2. それによって、削除がsalary_srcにカスケードされます。

  3. Oracle GoldenGateが、両方の削除をターゲットに送信します。

  4. 親削除が先に届き、emp_targに適用されます。

  5. 親削除によって、削除がsalary_targにカスケードされます。

  6. salary_srcからカスケードされた削除が、salary_targに適用されます。

  7. 行は、すでに手順5で削除されているため、見つかりません。

2.5.2 行識別子の割当て

Oracle GoldenGateでは、レプリケートされた更新および削除に対して正しいターゲット行を見つけるために、ソース表とターゲット表にある形式の一意の行識別子が必要です。

2.5.2.1 使用するOracle GoldenGate行識別子の判別

KEYCOLS句がTABLE文またはMAP文内で使用されていない場合、Oracle GoldenGateは、使用する行識別子を次の優先順位で選択します。

  1. 主キー

  2. タイムスタンプまたは計算結果列を含まない英数字順で最初の一意キー。

  3. 前述のキー・タイプのいずれも存在しない場合(その他の種類のキーが表に定義されている場合でも)、Oracle GoldenGateは、データベースで一意キーでの使用を許可されているすべての列(キー内での使用がOracle GoldenGateでサポートされていない列やOracle GoldenGateのパラメータを使用して明示的に除外されている列は除く)で疑似キーを作成します。

表に使用可能な他のキーがない場合や、表にキーがまったくない場合、Oracle GoldenGateは該当するメッセージをレポート・ファイルに記録します。すべての列からキーを作成すると、ソース・システムのOracle GoldenGateのパフォーマンスが低下します。ターゲットでは、このキーはReplicatであまり効率的でないより大きいWHERE句が使用される原因となります。

2.5.2.2 KEYCOLSを使用したカスタム・キーの指定

前述のキー・タイプの行識別子が表に存在しないか、または、それらの識別子を使用しない場合は、常に一意の値が含まれている列が表にあれば、代替キーを定義できます。ExtractのTABLEパラメータとReplicatのMAPパラメータ内にKEYCOLS句を含めることで、この代替キーを定義します。指定したキーにより、Oracle GoldenGateで検出される既存の主キーまたは一意キーはオーバーライドされます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

2.6 キャラクタ・セット変換の制御

Replicatは、差異があるとき、ソース・データのキャラクタ・セットを、ターゲット・データのキャラクタ・セットに変換します。Replicatが間違いなくターゲット・データの正しいキャラクタ・セットを使用するように、PostgreSQLの環境変数PGCLIENTENCODINGを正しいキャラクタ・セットに設定してください。Replicatがキャラクタ・セットをその値に設定します。PGCLIENTENCODINGを設定しない場合、Replicatは適用されるデータのキャラクタ・セットを、ターゲット・サーバーのキャラクタ・セットに設定します。

Oracle GoldenGateがグローバル・サポートのキャラクタ・セット、ロケール、その他の機能を処理する方法の詳細は、WindowsとUNIXのOracle GoldenGate管理者ガイドを参照してください。