業界トップクラスのデータベースエキスパート集団

株式会社アクアシステムズ

Oracle GoldenGateによる高速データ連携
第2回「Oracle GoldenGate による片方向レプリケーション (DML)」

 Oracle GoldenGateによる高速データ連携

update:

第2回「Oracle GoldenGate による片方向レプリケーション (DML)」

著者:吉田 宗弘

1. Introduction

1.1 DML の片方向レプリケーション

前回の連載では既存環境にGoldenGate を導入して、レプリケーションを行う準備段階まで解説を行いました。今回は、実際にGoldenGate を使用してレプリケーション環境の構築を行います。今回はレプリケーションの中でも一番基本的な、「DML の片方向レプリケーション」について解説します。

1.2 GoldenGate による片方向レプリケーション (DML)

以下にシステムの概要図を示します。

システムの概要図


1.2.1 Manager プロセスの構成

Manager プロセスの構成

それでは、上図にある両環境のManager プロセスの設定を行います。
GSSCI を起動して、Manager プロセス用のパラメータ・ファイルを作成します。


上記設定で使用しているパラメータの説明

パラメータ 概要

PORT

動的サービスをリクエストするリモート・プロセス (通常は初期ロードのReplicat または Collector プロセス)とやり取りする Manager プロセス用の TCP/IP ポート番号を指定します。 (デフォルト:7809)

DYNAMICPORTLIST

ローカル Oracle GoldenGate プロセスがリモート Oracle GoldenGate プロセスとの通信のためにバインドできる、使用可能なポートのリストを指定します。

PURGEOLDEXTRACTS

Oracle GoldenGate がトレイル・ファイルの処理を完了したときにトレイル・ファイルをパージします。
./dirdat/tr* は、パージするトレイル名です。
USECHECKPOINTS を指定すると、デフォルト60分間隔で古いトレイル・ファイルをパージします。


パラメータの設定が完了したら、GSSCI からManager を起動します。

上記のように、Manager プロセスの起動情報が出力されていれば、Manager の起動は完了です。


【トレイル・ファイル名指定時の注意事項】
GoldenGate では、Capture, DataPump, Replicat の各プロセスに処理させるトレイル・ファイル名を対応付ける事で柔軟なデータ連携を行う事が可能になっています。 指定可能なトレイル・ファイル名は最大2文字です。 (実際には指定した2文字の後ろに6桁の順序番号が付加されます。 例:./dirdat/rt000001)


1.2.2 旧環境のExtract プロセスの構成

旧環境のExtractプロセスの構成

同様に旧環境のExtract プロセスの設定を行います。
新環境のCollector プロセスは、旧環境のExtract プロセス(DataPump) 起動時に自動で起動されるため、特に設定は必要ありませんがここに含めてあります。


1.2.2.1 Capture プロセスの設定

Manager プロセスの設定と同様に、EDIT PARAMS コマンドで設定を行います。



上記設定で使用しているパラメータの説明

パラメータ 概要

EXTRACT

Capture プロセスを所属させるグループ名を指定します。

SETENV

Capture プロセスに設定する環境変数を指定します。

USERID/PASSWORD

Capture プロセスがDB に接続する際に使用するユーザ名/パスワードを指定します。

EXTRAIL

Capture プロセスが出力するトレイル・ファイルを指定します。

TABLE

Capture プロセスによって抽出されるオブジェクトを指定します。


パラメータの設定が完了したら、GSSCI からExtract グループを追加します。



上記設定で使用しているパラメータの説明

パラメータ 概要

CAP01

Capture プロセスのパラメータ・ファイルで指定したグループ名です。

TRANLOG

データ・ソースとしてトランザクション・ログを指定します。
本パラメータ指定時は、BEGIN オプションを指定する必要があります。

BEGIN NOW

現在から取込み処理を開始します。
yyyy-mm-dd[:hh:mi:[ss[.cccccc]]] 書式で指定した時刻を指定する事も可能です。


Extract グループの追加が完了したら、ローカル・トレイルを追加します。




1.2.2.2 DataPump プロセスの設定

Capture プロセスの設定と同様に、EDIT PARAMS コマンドで設定を行います。



上記設定で使用しているパラメータの説明

パラメータ 概要

EXTRACT

DataPump プロセスを所属させるグループ名を指定します。

PASSTHRU

DB への接続を行わずにトレイル・ファイルから変更データを転送します。
旧環境と新環境で、データの変換やマッピングを行わない場合に指定します。

SETENV

DataPump プロセスに設定する環境変数を指定します。

USERID/PASSWORD

DataPumpプロセスがDB に接続する際に使用するユーザ名/パスワードを指定します。

RMHOST/MGRPORT

接続先のホスト名(IP) とManager が実行されているリモート・システムのポート番号を指定します。

RMTRAIL

リモート・システムのトレイル・ファイルを指定します。

TABLE

DataPump プロセスによって伝播されるオブジェクトを指定します。


パラメータの設定が完了したら、GSSCI からExtract グループを追加します。



上記設定で使用しているパラメータの説明

パラメータ 概要

DP01

DataPump プロセスのパラメータ・ファイルで指定したグループ名です。

EXTTRAILSOURCE

データ・ソースとしてトレイルを指定します。


Extract グループの追加が完了したら、ローカル・トレイルを追加します。




1.2.2.3 旧環境で、Capture, DataPump プロセスの起動

GSSCI から、先程設定したCapture, DataPump プロセスを起動します。

全プロセスのStatus がRUNNING となっていれば、旧環境側の作業は完了です。
万一、ABENDED となっているプロセスがあった場合は、ggserr.log と言うファイルにエラー内容が記録されているので、内容を確認して適宜対処を行って下さい。


1.2.3 新環境のReplicat プロセスの構成

新環境のReplicat プロセスの構成

Replicat の設定を行う前に、Replicat プロセスが使用するチェックポイントテーブルを作成します。チェックポイントテーブルの名前は、GLOBALS パラメータで指定します。

※ ./GLOBALS は、GoldenGate 全体の設定を行うための設定ファイルです。


上記設定で使用しているパラメータの説明

パラメータ 概要

CHECKPOINTTABLE

GoldenGate インスタンス内の全てのReplicat プロセスが使用できるデフォルトのチェックポイントテーブル名を指定します。


チェックポイントテーブルの名前を指定したら、再度GGSCI を起動してManager の起動, チェックポイントテーブルの作成を行います。

これまでと同様の手順で、Replicat プロセスのパラメータ設定を行います。



上記設定で使用しているパラメータの説明

パラメータ 概要

REPLICAT

Replicat プロセスを所属させるグループ名を指定します

SETENV

Replicat プロセスに設定する環境変数を指定します

USERID/PASSWORD

Replicat プロセスがDB に接続する際に使用するユーザ名/パスワードを指定します。

ASSUMETARGETDEFS

ソース表とターゲット表が同一構成とみなす場合に指定します。

DISCARDFILE

破棄レコードを記録するファイルを指定します。

MAP/TARGET

ソース表とターゲット表のマッピングを指定します。


パラメータの設定が完了したら、GSSCI からReplicat グループを追加します。


Replicat グループの登録が完了したら、Replicat プロセスを起動します。

Manager, Replicat プロセスのStatus がRUNNING になっていれば、GoldenGate の設定は完了です。


1.2.4 動作確認

SQL*Plus から伝播対象のテーブルを更新し、確認を行います。

これで、GoldenGate による片方向レプリケーションの確認ができました。
同期Replication ではないので、旧環境でデータを更新してから新環境側に反映されるまでに数秒のタイムラグがありますが、GoldenGateによってデータがきちんと伝播されている事が確認できました。
今回確認した内容は最も単純なものなので、引続きもう少し複雑な内容を確認してみたいと思います。
今後は、GoldenGate プロセスのパラメータについては引続き記述していきますが、設定手順の詳細については省略させて頂きます。

業界トップクラスのデータベースエキスパート集団
アクアシステムズ

データベースに関するすべての課題、トラブル、お悩みを解決します。
高難易度、複雑、他社対応不可案件など、お気軽にご相談ください。