この章では、オンライン変更同期を構成する方法について説明します。
この章の内容は次のとおりです。
オンライン変更同期では、データ変更を継続的に抽出およびレプリケートして、ほぼリアルタイムな状態にターゲット・データベースを維持します。必要なExtractおよびReplicatのプロセスおよび証跡の数は、デプロイするレプリケーション・トポロジと、使用しているプロセス・モードによって異なります。
特定のレプリケーション・トポロジのデプロイの詳細は、次のものを参照してください。
複数のカタログを含むOracleマルチテナント・コンテナ・データベース間またはSQL/MXデータベース間でレプリケートする場合、複数のReplicatプロセスを構成する必要がある場合があります。1つのReplicatプロセスは1つのコンテナまたはカタログにのみ適用できます。この場合、各ターゲット・コンテナまたはカタログに対してReplicatプロセスを構成する必要があります。その場合、各Replicatパラメータ・ファイルで、TARGETDB
パラメータを使用して適切なターゲット・コンテナまたはカタログを指定します。これらのデータベースに対して取得または適用を行う場合のガイドラインは、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成およびNonStop SQL/MXのためのOracle GoldenGateのインストールおよび構成を参照してください。
特定のパフォーマンス・レベルを達成するために、複数のプロセス・グループを構成する必要がある場合があります。たとえば、ラグを特定のしきい値未満に抑えたい場合などです。ラグとは、ソース・アプリケーション内で変更が発生した時点と、それらの変更がターゲット・データベースに適用される時点との間の時間差です。
Oracle GoldenGateは、Oracle GoldenGate Managerインスタンス当たり、最大で5,000の同時ExtractおよびReplicatグループをサポートします。サポートされているレベルで、INFO
、STATUS
などのGGSCIコマンドですべてのグループを完全に制御および表示できます。Oracle GoldenGateでは、環境を効果的に管理するために、ExtractおよびReplicatグループの数(合計)をデフォルト・レベルの300以下に保つことが推奨されます。
最高のパフォーマンスを得るためのOracle GoldenGate構成の詳細は、第19章「Oracle GoldenGateのパフォーマンスのチューニング」を参照してください。
この章の手順に従って変更同期グループおよび証跡を構成したら、第16章「初期ロードによるOracle GoldenGateのインスタンス化」を参照して同期用のターゲット表を準備します。初期ロードによって、ソース表全体がコピーされ、必要に応じてデータが変換され、トランザクション・データの移動が同期状態から開始されるようにデータがターゲット表に適用されます。変更同期を最初に開始するのは、初期同期プロセス中である必要があります。変更同期によって、ロードが適用されている間、進行中のトランザクション変更が追跡されます。
構成手順を開始する前に、Oracle GoldenGateのプロセスとファイルの一貫したネーミング規則を作成すると便利です。意味のある名前を選択すると、ディスプレイ、エラー・ログおよび外部監視プログラムで複数のプロセスやファイルを区別するのに役立ちます。また、環境の変更や拡張に応じて後でプロセスやファイルを追加する際の命名にも対応します。この項では、次の点について説明します。
プロセス名またはグループ名を指定する場合、次のルールに従います。
次のタイプのプロセスでは最大8文字を使用できます。アンダースコア(_)などの英数字以外の文字も含めることができます。
オンラインExtractグループ
初期ロードExtract
クラシック(未調整)モードで作成されたオンラインReplicatグループ
統合モードで作成されたオンラインReplicatグループ(Oracleのみ)
調整Replicatプロセス・グループでは最大5文字を使用できます。アンダースコア(_)などの英数字以外の文字も含めることができます。内部的には、ADD REPLICAT
コマンドのMAXTHREADS
オプションに基づいて作成される各スレッドのベース名に、3文字のスレッドIDが追加されます。作成される名前は、他のReplicatグループに対して重複させることはできません。たとえば、名前がfin
で、MAXTHREADS
が50スレッドである調整Replicatグループが作成された場合、作成されるスレッド名はfin000
からfin050
になります(MAP
文で指定されたIDであるとします)。この場合、fin000
からfin0050
までの名前を他のReplicatグループは使用できません。詳細は、次のルールを参照してください。
グループ名には数値を含めることができますが、数字で終わる名前はお薦めできません。レポート生成時に書込みプロセスによってグループ名の末尾に数値が追加されるため、グループ名の末尾に数値を使用すると(fin1
など)、レポート・ファイル名の重複やエラーの原因になります。また、Replicatを調整モードで実行している場合、数値で終わるグループ名はお薦めできません。内部的に数値のスレッドIDがグループ名に追加されるため、ベース・グループ名も数字で終わる場合、情報コマンドの出力の解析が困難になります。数字を付加した結果がワイルドカードに適合すると、スレッド名を他のReplicatグループの名前と混同する可能性があります。レポート・ファイル名の重複が起こる可能性もあります。グループ名の始めに数値を配置する方が(たとえば1_fin
、1fin
など)、より実際的です。
ローカル・オペレーティング・システムのキャラクタ・セットでサポートされ、オペレーティング・システムでファイル名での使用が許可されているかぎり、プロセスの名前には任意の文字を使用できます。この理由は、グループがその関連するチェックポイント・ファイルとパラメータ・ファイルで識別されるためです。
次の文字は、グループ名に使用できません。
{\ / : * ? " < > | }
HP UX、LinuxおよびSolarisでは、コロン(:)またはアスタリスク(*)を使用してファイル名を指定できますが、推奨はされません。
一般的に、Oracle GoldenGate内では、プロセス名とパラメータ・ファイル名の大/小文字は区別されません。たとえば、finance
、Finance
およびFINANCE
は、すべて同じであるとみなされます。ただし、Linuxでは、プロセス名(およびADD
コマンドで明示的に定義される場合はそのパラメータ・ファイル名)はすべて大文字またはすべて小文字である必要があります。プロセスおよびパラメータ・ファイルに指定された名前に大文字と小文字が混在していると、プロセスの起動時にエラーが発生します。
名前には、1語のみ使用してください。
プロセスまたはパラメータ・ファイルのフル・ネームにportという語は使用しないでください。ただし、名前の一部にportという文字列があってもかまいません。
キャプチャされたデータは、次のOracle GoldenGateプロセス・ダウンストリームによって処理されるための格納場所である、証跡と呼ばれる一連のファイルへと格納される必要があります。基本的な構成は次のとおりです。
ソース・システムのローカル証跡
ターゲット・システムのリモート証跡
実際の証跡名には、./dirdat/tr
のように2文字のみが含まれます。新規ファイルが作成される際、Oracle GoldenGateによってこの名前に6桁の順序番号が付加され、./dirdat/aa000002
のようになります。証跡はOracle GoldenGateプロセスにリンクされており、トラブルシューティングの目的で識別が必要になる場合があるので、そのネーミング規則を確立しておくことをお薦めします。
Windowsシステムでは、証跡パス名のディレクトリの名前が数字で始まる場合、パラメータ・ファイル内に証跡をリストするときに、そのパスをバックスラッシュでなくスラッシュで指定する必要があります。詳細は、4.5.1項「Windowsシステムでのパラメータ・ファイルでのファイルシステム・パス名の指定」を参照してください。
Oracle GoldenGate証跡の詳細は、1.2.4項「証跡の概要」を参照してください。
Replicatは、予期される停止または予期されない停止の後に処理を開始する基準となる証跡内の既知の位置を指定するチェックポイントを管理します。チェックポイントのレコードを格納するために、Replicatはターゲット・データベースのチェックポイント表を使用します。これにより、ReplicatのチェックポイントをReplicatトランザクション自体に含めることができるため、Replicatプロセスまたはデータベース・プロセスに障害が発生した場合でも、トランザクションは一度しか適用されません。不要になった行は削除されるため、チェックポイント表のサイズは小さく抑えられ、データベース・パフォーマンスには影響しません。チェックポイント表の詳細は、付録E「チェックポイントについて」を参照してください。
チェックポイント表は任意のスキーマに配置できます。可能であれば、Oracle GoldenGate専用のものを使用してください。
Oracle GoldenGateの複数のインスタンス(複数インストール)は同じチェックポイント表を使用できます。Oracle GoldenGateは、異なるインスタンスでReplicatグループの名前が同じであっても、チェックポイントを追跡します。
必要に応じて複数のチェックポイント表を使用できます。たとえば、Replicatグループごとに異なるものを使用できます。
チェックポイント表は次の方法でインストールできます。
GLOBALS
ファイルにデフォルトのチェックポイント表を指定できます。ADD REPLICAT
コマンドを使用して作成された新規Replicatグループは、特別な指示がなくてもこの表を自動的に使用します。手順は、「GLOBALSファイルにデフォルトのチェックポイント表を指定する手順」を参照してください。
任意のReplicatグループを作成する際に、ADD REPLICAT
コマンドで、次のように特定のチェックポイント表の指示を指定できます。
グループで特定のチェックポイント表を使用するには、ADD REPLICAT
のCHECKPOINTTABLE
引数を使用します。このチェックポイント表は、GLOBALS
ファイルのすべてのデフォルトの指定よりも優先されます。ただ1つのReplicatグループを使用する場合、このコマンドを使用して、GLOBALS
ファイルの作成を完全に省略できます。
グループでチェックポイント表の使用を省略するには、ADD REPLICAT
のNODBCHECKPOINT
引数を使用します。チェックポイント表がない場合でも、チェックポイントはReplicatによりディスク上のチェックポイント・ファイルに保持されますが、データの一貫性を失うリスクが生じます。
チェックポイント表の実装方法にかかわらず、ADD REPLICAT
コマンドを使用する前に、ターゲット・データベースにチェックポイント表を作成しておく必要があります。
ターゲット・データベースにチェックポイント表を追加する手順
GGSCIを通じてチェックポイント表を作成する次の手順は、かわりにchkpt_
db
_create.sql
スクリプト(db
はデータベース・タイプの略称)を実行することで省略できます。このスクリプトを使用することで、カスタム記憶域または他の属性を指定できます。この表の列の名前または属性は変更しないでください。
Oracle GoldenGateディレクトリから、GGSCIを実行してDBLOGIN
コマンドを発行し、データベースにログインします。このコマンドを発行するユーザーは、CREATE TABLE
権限を持っている必要があります。データベースで使用する正しい構文の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
GGSCIで、次のコマンドを発行してデータベースにチェックポイント表を追加します。
ADD CHECKPOINTTABLE [container
|catalog
]owner.table
説明:
owner
.table
は表の所有者と名前、container
はOracleにマルチテナント・コンテナ・データベースをインストールする場合のPDBの名前、catalog
はSQL/MXデータベースにインストールする場合のカタログの名前です。この表をデフォルトのチェックポイント表として使用し、GLOBALS
ファイルのCHECKPOINTTABLE
で指定する場合、所有者および名前は省略できます。この表の名前は、データベースでオブジェクト名に対して許容される最大長を超えてはなりません。チェックポイント表の名前には、引用符、バックスラッシュ、番号記号などの特殊文字を含めることはできません。
GLOBALSファイルにデフォルトのチェックポイント表を指定する手順
この手順は、Oracle GoldenGateインスタンスにおけるすべてのチェックポイント表のグローバル名を指定します。Replicatグループの作成時に異なるチェックポイント表を指定することによって、任意のReplicatグループに対してこの名前をオーバーライドできます。
GLOBALS
ファイルを作成します(または、既存のファイルがある場合はこれを編集します)。UNIXまたはLinuxシステムでは、ファイル名はすべて大文字とし、ファイル拡張子を付けずにOracle GoldenGateのルート・ディレクトリに配置する必要があります。ASCIIテキスト・エディタを使用して、前述のネーミング規則に従ってファイルを作成します。または、GGSCIを使用してファイルを作成すると、自動的に正しい名前と場所を使用して保存されます。GGSCIを使用する場合、次のコマンドを使用します(GLOBALS
は大文字で入力します)。
EDIT PARAMS ./GLOBALS
次のパラメータを入力します。
CHECKPOINTTABLE[container. | catalog.]owner
.table
説明:
[catalog. | container.]owner
.table
はデフォルト・チェックポイント表の完全修飾名です。データベースがOracleマルチテナント・コンテナ・データベース(CDB)の場合はコンテナの名前を、データベースがSQL/MXの場合はカタログの名前を含みます。
表の名前を書き留め、GLOBALS
ファイルを保存して閉じます。ファイルがOracle GoldenGateのルート・ディレクトリに作成されたことを確認します。ファイル拡張子がある場合は、拡張子を削除します。
チェックポイント表の作成対象のReplicatがOracle RAC構成で実行される場合、Replicatチェックポイント表のPCTFREE
属性をできるだけ高い値、可能なら90に増やすことをお薦めします。これにより、調整処理で必要になる、頻繁なチェックポイント化に対応できます。この変更は、Replicatグループを初めて開始する前に行う必要があります。調整Replicatに関する追加情報は、14.7項を参照してください。
オンラインExtractグループを作成するには、ソース・システムでGGSCIを実行し、ADD EXTRACT
コマンドを発行します。コマンド引数はすべてカンマで区切ります。構文には、次の2つの形態があります。
標準、パッシブまたはデータ・ポンプExtractグループを作成するための構文
ADD EXTRACTgroup
{,datasource
} {, BEGINstart_point
} | {position_point
} [, PASSIVE] [, THREADSn
] [, PARAMSpathname
] [, REPORTpathname
] [, DESC 'description
']
説明:
group
は、Extractグループの名前です。グループ名は必須です。ネーミング規則の詳細は、14.2.1項「プロセスのネーミング規則」を参照してください。
datasource
は、抽出するデータのソースを指定する場合に必要です。次のいずれかを使用します。
TRANLOG
では、データソースとしてトランザクション・ログを指定します。Teradata以外のすべてのデータベースで使用します。Oracle Enterprise Editionでこのオプションを使用する場合は、ADD EXTRACT
を使用する前に(かつ、DELETE EXTRACT
を発行してExtractグループを削除する前に)、Extractデータベース・ユーザー(または同じ権限を持つユーザー)としてDBLOGIN
コマンドを発行する必要があります。
z/OS上で稼働するDB2では、
bsdsオプションを使用して、トランザクション・ログのブートストラップ・データセットのファイル名を指定します。データベースで使用する正しい構文の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。
INTEGRATED TRANLOG
では、このExtractが統合キャプチャ・モードで動作して、Oracleデータベース・ログマイニング・サーバーから論理変更レコード(LCR)を受信することを指定します。このパラメータは、Oracleデータベースにのみ適用されます。その他のオプションと統合キャプチャの使用の詳細は、『Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成』を参照してください。
VAM
では、ベンダー・アクセス・モジュール(VAM)と呼ばれるExtract APIを指定します。Teradataの場合は、Teradata Access Module (TAM)とのインタフェースになります。InformixおよびTeradataデータベースで使用します。詳細は、『Oracle GoldenGate Oracle GoldenGate for Informixのインストールおよび構成』または『TeradataのためのOracle GoldenGateのインストールおよび構成』を参照してください。
VAMTRAILSOURCE
VAM trail name
では、VAM証跡を指定します。最大保護モードのTeradata抽出でVAMソートExtractグループを作成する場合に使用します。詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。
EXTTRAILSOURCE
trail name
では、ローカル証跡の相対名または完全修飾名を指定します。データ・ポンプを作成する場合に使用します。データ・ポンプは、Oracle GoldenGateの任意の抽出方法と組み合せて使用できます。
BEGIN
start_point
では、処理のための初期チェックポイントおよび開始ポイントを確定してオンラインExtractグループを定義します。このポイントより前に開始されたトランザクションは、破棄されます。次のいずれかを使用します。
NOW
は、グループを作成するためにADD EXTRACT
コマンドが実行された時点(統合モードのOracle Extractの場合は、REGISTER EXTRACT
コマンドでグループが登録された時点から)のタイムスタンプが指定された変更の抽出を開始します。ADD EXTRACT
文よりも前にOracle GoldenGateの証跡に取得されたデータを回避しない場合は、データ・ポンプExtractにNOW
を使用しないでください。
この開始ポイントはInformixでサポートされておらず、使用されている場合、ポジショニングはトランザクション・ログのEOFから開始するため、LSNポジショニングをInformix Extractに使用することをお薦めします。
YYYY-MM-DD HH:MM[:SS[.CCCCCC
]]
は、開始ポイントとして正確なタイムスタンプを指定するための書式です。レプリケーションまたはロギングが有効化された時点より後の開始ポイントを使用してください。
注意: TeradataソースにはBEGIN パラメータを使用しないでください。 |
position_point
では、特定のトランザクション・ログ・ファイル内で処理を開始する特定の位置を指定します。データベースで使用する特定の構文は、Oracle GoldenGateリファレンスfor Windows and UNIXのADD EXTRACTの説明を参照してください。
PASSIVE
では、グループがパッシブExtractであることを示します。PASSIVE
を使用する場合、別名Extractも使用する必要があります。詳細は、11項「Oracle GoldenGateのセキュリティの構成」を参照してください。このオプションは、他のADD EXTRACT
オプション内に任意の順序で配置できます。
THREADS
n
は、ExtractがOracle Real Application Cluster (RAC)におけるクラシック・キャプチャ・モードで動作している場合に必要です。クラスタで使用するREDOログ・スレッドの数を指定します。
PARAMS
pathname
は、このグループのパラメータ・ファイルをOracle GoldenGateディレクトリのdirprm
サブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。
REPORT
pathname
は、このグループのプロセス・レポートをOracle GoldenGateディレクトリのdirrpt
サブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。
別名Extractグループを作成するための構文
ADD EXTRACTgroup
, RMTHOST {host
|IP address
} , {MGRPORT port} | {PORT port} [, RMTNAME name] [, DESC 'description']
説明:
RMTHOST
では、このグループを別名Extractとして識別し、リモート・ホストのDNS名またはそのIPアドレスを指定します。
MGRPORT
では、Managerが稼働しているリモート・システムのポートを指定します。動的Collectorを使用する場合、このオプションを使用します。
PORT
では、静的Collectorのポートを指定します。静的Collectorを実行する場合にのみ、MGRPORT
のかわりに使用します。
RMTNAME
では、パッシブExtractの名前を指定します(別名Extractの名前と異なる場合)。
例14-1 ログベース取得のためのExtractグループの追加
この例では、finance
というExtractグループを作成します。抽出は、グループの作成時点に生成されたレコードから開始します。
ADD EXTRACT finance, TRANLOG, BEGIN NOW
例14-2 TeradataのためのプライマリExtractグループの追加
この例では、Teradata最大パフォーマンス・モードまたはTeradata最大保護モードで実行されるfinance
というExtractグループを作成します。Teradataソースには、BEGIN
ポイントを使用しません。
ADD EXTRACT finance, VAM
例14-3 TeradataのためのVAMソートExtractグループの追加
この例では、finance
というVAMソートExtractグループを作成します。プロセスは、VAM証跡の/ggs/dirdat/vt
から読取りを行います。
ADD EXTRACT finance, VAMTRAILSOURCE /ggs/dirdat/vt
例14-4 データ・ポンプExtractグループの追加
この例では、finance
というデータ・ポンプExtractグループを作成します。このグループは、Oracle GoldenGate証跡のc:\ggs\dirdat\lt
から読取りを行います。
ADD EXTRACT finance, EXTTRAILSOURCE c:\ggs\dirdat\lt
例14-5 パッシブExtractグループの追加
この例では、finance
というパッシブExtractグループを作成します。抽出は、グループの作成時点に生成されたレコードから開始します。このグループはパッシブとしてマークされるため、ターゲットの別名ExtractがこのExtractへの接続を開始します。
ADD EXTRACT finance, TRANLOG, BEGIN NOW, PASSIVE
例14-6 パッシブ・データ・ポンプExtractグループの追加
この例では、finance
というデータ・ポンプExtractグループを作成します。これは、Oracle GoldenGate証跡のc:\ggs\dirdat\lt
から読取りを行うパッシブ・データ・ポンプExtractです。このデータ・ポンプはパッシブとしてマークされるため、ターゲットの別名Extractがこのデータ・ポンプへの接続を開始します。
ADD EXTRACT finance, EXTTRAILSOURCE c:\ggs\dirdat\lt, PASSIVE
データを抽出したら、処理して1つ以上の証跡に格納する必要があります。証跡では、別のOracle GoldenGateプロセスによって処理するためにデータが格納されます。証跡は、必要に応じて作成およびエージングされる一連のファイルです。証跡を読み取るプロセスには、次のものがあります。
VAMソートExtract: VAM証跡として作成されたローカル証跡から抽出します(Teradataソース・データベース用)。詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。
データ・ポンプExtract: 後続の処理のために必要に応じてローカル証跡からデータを抽出し、そのデータをターゲット・システムに転送します。
Replicat: 証跡を読み取って変更データをターゲット・データベースに適用します。
複数の証跡を作成し、異なる表またはアプリケーションのデータを分けたり、カスケード・トポロジなどの特定のレプリケーション・トポロジの要件に適合させることができます。TABLE
文で指定した表を、Extractパラメータ・ファイルのEXTTRAIL
またはRMTTRAIL
パラメータ文で指定した証跡にリンクします。Oracle GoldenGate証跡の概念の詳細は、1.2.4項「証跡の概要」を参照してください。
通常の構成では、少なくともソース・システムに1つ、ターゲット・システムに1つの証跡があります。次の点を考慮に入れ、十分なディスク領域を割り当てます。
プライマリExtractプロセスは、ソース・データベースからトランザクション・データを取得し、ローカル証跡に書き込みます。データ・ポンプExtractは、その証跡を読み取り、データをネットワーク経由でターゲットのリモート証跡に転送します。ネットワークに障害があると、データ・ポンプは失敗しますが、プライマリExtractによるローカル証跡へのデータの処理は続けられます。累積していくデータを格納するのに十分なディスク領域がある必要があります。そうでないと、プライマリExtractが異常終了します。
ターゲットの場所にある証跡の場合、PURGEOLDEXTRACTS
パラメータで設定された消去ルールに従ってデータの累積を処理するのに十分なディスク領域を用意します。PURGEOLDEXTRACTS
を使用しても、ターゲット・データベースへの適用よりもネットワーク経由の転送の方が速いため、データはターゲットに常に累積します。
証跡アクティビティがビジネス・アプリケーションによって干渉されないようにするには、別個のディスクまたはファイル・システムを割り当てて証跡ファイルを含めます。証跡ファイルは、Oracle GoldenGateインストールのローカル・ドライブに配置することも、NASまたはSANデバイスに配置することもできます。Oracleクラスタでは、ASMまたはDBFS記憶域に配置できます。
Oracle GoldenGate証跡データの格納に必要になるディスク領域を見積もるためのガイドラインを次に示します。
ネットワークが使用できない可能性のある最長の時間を見積もります。考えられる最長の停止時間に対応するのに十分なデータを格納するよう計画します。そうしないと、停止時間がディスク容量より長くなった場合にソースとターゲットのデータを再同期化する必要があります。
ビジネス・アプリケーションで1時間に生成されるトランザクション・ログのボリュームを見積もります。
次の式を使用して、必要なディスク領域を計算します。
[1時間当たりのログ・ボリューム] x [停止時間] x .4 = 証跡のディスク領域
Oracle GoldenGateで必要なトランザクション・ログのデータは40パーセントのみのため、この式では40パーセントという乗数を使用します。
注意: この式は控えめな見積りです。Oracle GoldenGateの構成後、テストを実行し、必要な領域を正確に割り出します。 |
証跡を作成または追加する際、ディスクにファイルを物理的に作成しません。ファイルはExtractプロセスによって自動的に作成されます。証跡の名前を指定し、その証跡に書き込むExtractグループに割り当てます。
証跡を追加するには、ソース・システムのGGSCIで、次のコマンドを発行します。
ADD {RMTTRAIL | EXTTRAIL}pathname
, EXTRACTgroup
[, MEGABYTESn
]
説明:
RMTTRAIL
では、リモート・システムの証跡を指定します。
EXTTRAIL
では、ローカル・システムの証跡を指定します。
EXTTRAIL
は、PASSIVE
モードのExtractには使用できません。
EXTTRAIL
は、データ・ポンプによって読み取られるローカル証跡を指定する場合、またはTeradataアクセス・モジュール(TAM)と相互作用するプライマリExtractにリンクされたVAM証跡を指定する場合に使用する必要があります。Teradata構成の詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。
pathname
は、2文字の名前(任意の2つの英数字)を含む証跡の相対名または完全修飾名です(c:\ggs\dirdat\rt
など)。Oracle GoldenGateでは、処理時の作成順に、各証跡ファイルにシリアル番号が追加されます。通常、証跡は、Oracle GoldenGateディレクトリのdirdat
サブディレクトリに格納されます。
EXTRACT
group
は、この証跡に書込みを行うExtractグループの名前です。1つのExtractグループのみが、証跡に書き込むことができます。
例14-9 VAM証跡
この例では、Extractグループのextvam
に対して/ggs/dirdat/vt
というVAM証跡を作成します。
ADD EXTTRAIL /ggs/dirdat/vt, EXTRACT extvam
次の手順に従って、オンラインExtractグループのパラメータ・ファイルを作成します。パラメータ・ファイルは、別名Extractグループには必要ありません。別名Extractグループの使用方法の詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。
ソース・システムのGGSCIで、次のコマンドを発行します。
EDIT PARAMS name
説明:
name
は、ADD EXTRACT
コマンドで作成したExtractグループの名前です。または、グループの作成時に代替の場所を定義した場合は、パラメータ・ファイルの完全修飾名です。
表14-1にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。一部のパラメータは、特定の構成にのみ適用されます。
パラメータ | 説明 |
---|---|
EXTRACT
|
Extractは、チェックポイント付きのオンライン・プロセスとして構成します。 |
[SOURCEDB |
データベース接続情報を指定します。
データベース接続は、グループがデータベースの存在しない中間システム上のデータ・ポンプである場合には省略できます。この場合、列マッピングまたは変換は実行されません。 |
RMTHOSTOPTIONS |
ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。IPを通じてリモート・システムにデータを送信する場合にのみ必要です( Teradataアクセス・モジュールとのインタフェースになり、VAM証跡に書込みを行うプライマリExtractグループには無効です。詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。 パッシブExtractグループにも無効です。 |
ENCRYPTTRAIL |
このエントリの後に指定した証跡がすべて暗号化されます。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。 |
|
(データ・ポンプの場合)入力証跡のデータを復号化します。出力証跡へ書き込む前にデータ・ポンプがデータを処理する必要がある場合にのみ使用します。セキュリティ・オプションの詳細は、第11章「Oracle GoldenGateのセキュリティの構成」を参照してください。 |
RMTTRAIL
|
証跡を指定します。複数の証跡を指定する場合、適切な
証跡またはファイルのバージョンが異なる場合、 |
DSOPTIONS { COMMITTEDTRANLOG, RESTARTAPPEND | CREATETRANLOG | SORTTRANLOG } |
Teradata抽出にのみ有効です。
Teradata構成の詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。 |
|
Oracleターゲットに対して統合Replicatを使用する場合、または競合検出および解決(CDR)のサポートを使用する場合に使用します。スケジューリング列のビフォア・イメージを証跡に書き込みます。(スケジューリング列は、主キー、一意索引および外部キー列です。)統合Replicatの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。LOGALLSUPCOLSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIX |
VAM |
Teradataアクセス・モジュールとのインタフェースになるExtractグループにのみ有効です。Oracle GoldenGate APIに渡す必要のあるライブラリの名前およびパラメータを指定します。たとえば、TAM初期化ファイルの名前や、コールバック・ライブラリとして使用するライブラリとのインタフェースになるプログラムなどです。 例: VAM vam.dll, PARAMS ('inifile', 'vamerge1.ini', 'callbacklib', 'extract.exe') Teradata VAMおよびTAMの詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。 |
PASSTHRU | NOPASSTHU |
(データ・ポンプの場合)後続の |
|
以降の |
SEQUENCE [ |
取得するOracleシーケンスの完全修飾名を指定します。データベースがマルチテナント・コンテナ・データベース(CDB)の場合は、コンテナ名を含めます。 |
TABLE [ |
オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。データベースがOracleマルチテナント・コンテナ・データベースまたはSQL/MXである場合は、 |
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているExtractの適切なオプション・パラメータを入力します。
パラメータ・ファイルを保存して閉じます。
Replicatグループを作成する前に、クラシック・モード(Oracle環境では非統合モードとも呼ばれます)、調整モードおよび統合モードのうち、どのReplicatモードが使用環境に適切かを評価する必要があります。
クラシック・モードでは、Replicatは標準SQLを使用してデータをターゲット表に適用する単一スレッド・プロセスです。このモードでは、Replicatは次のように動作します。
Oracle GoldenGate証跡を読み取ります。
データのフィルタリング、マッピング、および変換を実行します。
ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。
指定のターゲット・データベース(たとえばODBCまたはネイティブのデータベース・インタフェース)に対してサポートされているSQLインタフェースを介して、SQLをターゲットに適用します。
図14-1に示すように、クラシックReplicatを使用してトランザクションをパラレルに適用できますが、複数のReplicatプロセスにわたってワークロードをパーティション化する必要があります。各Replicatに対してパラメータ・ファイルを作成する必要があります。
任意のオブジェクトに対してクラシック・モードを使用すべきか判断するためには、1つのReplicatグループのオブジェクトが他のいずれかのReplicatグループのオブジェクトに対して、トランザクショナルまたはそれ以外の依存関係を持つことがあるかどうかを判断する必要があります。すべてのワークロードが、複数のReplicatグループにパーティション化されても元のトランザクション原子性を維持できるというわけではありません。たとえば、ワークロードが主キーを定期的に更新する表は、この方法で簡単にパーティション化することはできません。このモードでは、DDLレプリケーション(データベースに対してサポートされている場合)も、アクションが特定のレコードに基づいているような一部のSQLEXEC
またはEVENTACTIONS
機能の使用も、有効ではありません。
表に外部キーへの依存関係や、主キーに対する更新がない場合は、クラシック・モードが適切である可能性があります。クラシック・モードには、調整モードより少ないオーバーヘッドしか必要ありません。
パラレルReplicatグループの仕様の詳細は、第19章「Oracle GoldenGateのパフォーマンスのチューニング」を参照してください。
調整モードでは、Replicatは次のように動作します。
Oracle GoldenGate証跡を読み取ります。
データのフィルタリング、マッピング、および変換を実行します。
ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。
指定のターゲット・データベース(たとえばODBCまたはネイティブのデータベース・インタフェース)に対してサポートされているSQLインタフェースを介して、SQLをターゲットに適用します。
クラシック・モードと調整モードの相違点は、調整モードではReplicatがマルチスレッドである点です。単一のReplicatインスタンス内で複数のスレッドが独立に証跡を読み取り、パラレルにトランザクションを適用します。各スレッドは、フィルタリング、マッピング、変換、SQL作成およびエラー処理のすべてを、割り当てられたワークロードについて処理します。coordinatorスレッドは、トランザクションをスレッド間で調整して、スレッド間の依存関係を処理します。
調整Replicatでは、ワークロードのユーザー定義のパーティション化が可能で、大量のトランザクションを同時に適用できます。また、DDLやTHREADRANGE
パーティション化を使用した主キー更新などの調整の必要なトランザクションの実行が自動的に調整されます。そのようなトランザクションは、ターゲットでは1つのトランザクションとして完全に同期化されて実行されます。まず、それより前のトランザクションがすべて適用されるのを待機し、このバリア・トランザクションより後のトランザクションはすべて、このバリア・トランザクションが適用されるまで待機します。
1つの調整Replicatに必要なパラメータ・ファイルは、スレッドの数に関係なく1つのみです。MAP
文でTHREAD
またはTHREADRANGE
オプションを使用して、それらのオブジェクトのトランザクションをどのスレッドが処理するかを指定し、Replicatグループを作成するときに、スレッド数の最大値を指定します。
バリア・トランザクションは、調整Replicat構成で自動的に管理されます。バリア・トランザクションは、スレッド間での調整を必要とするトランザクションです。たとえば、DDL文、主キーに対する更新を含むトランザクションおよび一部のEVENTACTIONS
アクションなどです。
オプションで、MAP
文でCOORDINATED
キーワードを使用することで、他のトランザクションを強制的にバリア・トランザクションのように処理できます。この使用例の1つは、SQLEXEC
を、強制的にシリアル実行に類似した方法で実行する場合です。これは、ターゲットの状態がすべてのトランザクションにわたって整合的でないと結果が一意にならない可能性がある場合に有益です。
バリア・トランザクションの開始時点で、すべてのスレッドが収束し、待機します。他のスレッドが開始位置に達するまで、バリア・トランザクションは一時停止されます。いずれかのスレッドがバリア・トランザクションの一部をすでに処理中であった場合、それらのスレッドはロールバックを実行します。グループ化トランザクション(BATCHSQL
またはGROUPTRANSOPS
パラメータによって制御されているものなど)も、バリア・トランザクションの開始位置に到達するまでロールバックされ、再適用されます。
バリア・トランザクションの後も、すべてのスレッドが収束し、次のトランザクションの開始を待機します。バリア・トランザクションの前と後の2つの同期ポイントにより、メタデータ操作とEVENTACTIONS
アクションがすべて、データ操作に関連する適切な順序で行われることが保証されます。
バリア・トランザクションの開始時点でスレッドが同期すると、バリア・トランザクションは、MAP
文で指定されたすべてのスレッドのうちで最も低いスレッドIDを持つスレッドによってシリアルに処理され、複数スレッドにわたるパラレル処理が再開されます。Replicatパラメータ・ファイルでUSEDEDICATEDCOORDINATIONTHREAD
パラメータを指定することによって、バリア・トランザクションが特定のスレッド(常にスレッド0)を介して処理されるように強制することができます。
調整Replicatが正常に停止すると、すべてのスレッドが、グローバル水位標と呼ばれる証跡内の同じトランザクション境界で停止することが保証されます。これは、その位置の前のすべてのレコードがそれぞれのスレッドすべてによりコミットまたは無視される、同期ポイントとして定義されます。正常に停止しない場合は、SYNCHRONIZE REPLICAT
コマンドを使用すると、すべてのスレッドを、最後のチェックポイントを作成したスレッドの位置に戻すことができます。調整Replicatグループのリカバリの詳細は、20.12.3項「異常停止後のスレッドの同期」を参照してください。
注意: 調整Replicatは、オンライン・プロセスでしかありません。初期ロードを実行するためには使用しないでください。 |
Replicatは、リリース11.2.0.4以降のOracleデータベースで利用できる統合モードでは、ターゲットOracleデータベース内で利用できる適用処理機能を活用します。このモードでは、Replicatは、証跡を読み取り、ソースのDMLまたはDDLトランザクションを表す論理変更レコードを作成し、それらのレコードをOracleターゲット・データベースのインバウンド・サーバーに送信します。インバウンド・サーバーは、データをターゲット・データベースに適用します。
統合Replicatの使用方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
注意: 統合Replicatは、オンライン・プロセスでしかありません。初期ロードを実行するためには使用しないでください。 |
Replicat構成におけるオブジェクト指定の変更は、すでに適用されたトランザクションではなく、未適用のものにのみ影響が及びます。これは調整Replicatや統合Replicatを使用する場合の重要な考慮事項です。
クラシック・モードのReplicatでは、トランザクションがシリアルに適用されるため、適用済トランザクションと未適用のトランザクションの境界は明瞭です。しかし調整Replicatや統合Replicatでは、トランザクションが非同期でパラレルに適用されるため、証跡内に、適用済トランザクションと未適用のトランザクションを分ける単一のポイントが存在しません。
調整モードや統合モードには、最低水位標(それを下回るトランザクションはすべて適用されます)と、最高水位標(それを上回るトランザクションは適用されません)があります。それらの境界の間に、個々のスレッドの進捗に応じて、適用されている可能性もされていない可能性もあるトランザクションが存在します。その結果、Replicatが強制される場合、Replicatの構成におけるオブジェクト指定の変更が、Replicatの再開後、ターゲット上に不均等に反映される場合があります。これが適用されるパラメータ変更の例は、MAP
マッピング、FILTER
句およびEXCLUDE
のパラメータに対する変更です。
Replicatの構成は、Replicatが異常終了または強制終了された後には変更しないでください。Replicatは、起動の後、最後のチェックポイントにリカバリできるようにしておきます。調整Replicatの場合は、20.12項「調整Replicat構成の管理」の管理手順に従うことができます。リカバリが完了するとSTOP REPLICAT
コマンドでReplicatを正常に停止できるため、その後でオブジェクト指定を変更できます。
オンラインReplicatグループを作成するには、ターゲット・システムでGGSCIを実行し、ADD REPLICAT
コマンドを発行します。コマンド引数はすべてカンマで区切ります。
ADD REPLICATgroup
, EXTTRAILpath
[, {INTEGRATED | COORDINATED [MAXTHREADSnumber
]}] [, BEGINstart_point
| , EXTSEQNOseqno
, EXTRBArba
] [, CHECKPOINTTABLEowner
.table
] [, NODBCHECKPOINT] [, PARAMSpath
] [, REPORTpath
]
説明:
group
は、Replicatグループの名前です。グループ名は必須です。Oracle GoldenGateのネーミング規則の詳細は、14.2.1項「プロセスのネーミング規則」を参照してください。
INTEGRATED
は、このReplicatグループが統合モードで動作することを示しています。このモードは、Oracleデータベースにのみ有効です。統合モードでのReplicatの使用方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
COORDINATED
は、このReplicatグループが調整モードで動作することを示しています。MAXTHREADS
は、このグループで許容されるスレッドの最大数を指定します。有効な値は1から500です。MAXTHREADS
はオプションです。MAXTHREADS
がない場合のデフォルトのスレッド数は25です。
注意: 各Replicatスレッドは、MAXGROUPS パラメータのコンテキストでは1つのReplicatグループとみなされます。MAXGROUPSでは、Oracle GoldenGateのインスタンスで許容されるプロセス・グループの最大数が制御されます。MAXTHREADS にOracle GoldenGateインスタンス内の他のプロセス・グループの数を加えた値は、MAXGROUPS で設定された値(デフォルトは1000)を超えることはできません。 |
BEGIN
start_point
では、処理のための初期チェックポイントおよび開始ポイントを確定してオンラインReplicatグループを定義します。次のいずれかを使用します。
NOW
では、グループを作成するためにADD REPLICAT
コマンドが実行された時点のタイムスタンプが指定された変更からレプリケートを開始します。
YYYY
-
MM
-
DD
HH
:
MM
[:
SS
[.
CCCCCC
]]
は、開始ポイントの正確なタイムスタンプを指定する形式です。
EXTSEQNO
seqno
, EXTRBA
rba
では、データの読取りを開始する証跡内のファイルの順序番号と、そのファイル内の相対バイト・アドレスを指定します。このオプションを使用しない場合、処理はデフォルトで証跡の最初から開始されます。順序番号には数値を指定しますが、埋込み用の0(ゼロ)は使用しません。たとえば、証跡ファイルがc:\ggs\dirdat\aa000026
の場合は、EXTSEQNO 26
と指定します。このオプションを使用する前に、Oracleサポートに連絡してください。
CHECKPOINTTABLE
owner
.table
では、GLOBALS
ファイルで指定されたデフォルト以外のチェックポイント表の所有者および名前を指定します。この引数を使用するには、ADD
CHECKPOINTTABLE
コマンドを使用してデータベースにチェックポイント表を追加する必要があります(14.3項「チェックポイント表の作成」を参照)。
PARAMS
path
は、このグループのパラメータ・ファイルをOracle GoldenGateディレクトリのdirprm
サブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。
REPORT
path
は、このグループのプロセス・レポートをOracle GoldenGateディレクトリのdirrpt
サブディレクトリ以外の場所に格納する場合に必要です。完全修飾名を指定します。デフォルトの場所をお薦めします。
次の手順に従って、オンラインReplicatグループのパラメータ・ファイルを作成します。
ターゲット・システムのGGSCIで、次のコマンドを発行します。
EDIT PARAMS name
説明:
name
は、ADD REPLICAT
コマンドで作成したReplicatグループの名前です。または、グループの作成時に代替の場所を定義した場合は、パラメータ・ファイルの完全修飾名です。
表14-2にリストされている順序でパラメータを入力します。パラメータ文ごとに新規行を開始します。
パラメータ | 説明 |
---|---|
REPLICAT
|
Replicatは、チェックポイント付きのオンライン・プロセスとして構成します。 |
{SOURCEDEFS
|
データ定義の解釈方法を指定します。 マルチバイト・キャラクタ・セットを使用するOracle Databaseでは、ソースのセマンティクス設定がバイトでターゲットの設定が文字の場合、(DEFGENで生成された定義ファイルとともに) |
[DEFERAPPLYINTERVAL
|
|
[TARGETDB |
データベース接続情報を指定します。
|
|
コリジョン処理の指定。開始しているオンライン処理と同時に初期ロードを実行しており、ロード中にソース・データベースがアクティブな状態にとどまる場合にのみ使用します。 |
|
以降の |
MAP [ |
単一または複数のソース・オブジェクトと、単一または複数のターゲット・オブジェクトの関係を指定します。 ソース・オブジェクトに対して、オブジェクトの完全修飾名(複数オブジェクトの場合は完全修飾ワイルドカード表記)を指定します。Oracleマルチテナント・コンテナ・データベースまたはSQL/MXデータベースの場合、 ターゲット・オブジェクトに対しては、データベースのタイプに関係なく、名前の パラメータ・ファイル内のオブジェクト名指定のガイドラインは、4.5項「Oracle GoldenGateの入力におけるオブジェクト名の指定」を参照してください。 調整モードでは、
|
|
関連付けられた |
Oracle GoldenGateリファレンスfor Windows and UNIXにリストされているReplicatの適切なオプション・パラメータを入力します。
ファイルを保存して閉じます。
注意: Oracleに対して統合Replicatを使用する場合は、処理開始後のReplicatへの構成変更に関する重要情報を、14.7.4項「パラメータ変更との関係で見たReplicat処理の理解」で確認してください。 |