6 Veridata GoldenGate Parameter Processingの実行

Veridata GoldenGateパラメータ処理(VGPP)は、extractおよびreplicatのパラメータ・ファイルのマップおよび表パラメータを使用してOracle GoldenGate Veridataの構成を作成するコマンドライン・ツールです。

この章の内容は次のとおりです。

6.1 コマンドライン・インタフェースの概要

Oracle GoldenGate Veridataパラメータ・ファイルには、レプリケートされたデータの抽出または適用に必要なすべての情報が含まれています。データ伝播されたレプリケーションは、ExtractおよびReplicatパラメータ・ファイルの設定によって制御されます。通常、Extractパラメータ・ファイルでレプリケート対象の表を指定し、Replicatパラメータ・ファイルで列のマッピングを制御し、表を制限します。Veridata GoldenGate Parameter Processingコマンドライン・ユーティリティは、1つまたは2つのパラメータ・ファイルを入力として受け入れます。これらのファイルのうち1つは必ずReplicatパラメータ・ファイルに、もう1つのオプション・ファイルはExtractパラメータ・ファイルにする必要があります。

レプリケーションでは、データ変更の原因となったトランザクションに関する情報と実際の変更データを取得します。ただし、Oracle GoldenGate Veridataはソースおよびターゲット・データベースの現在の状態しか検出できないため、INSERTDELETESパラメータなど、トランザクション変更のパラメータはサポートできません。Veridata GoldenGate Parameter Processingは、REPLICATファイルからMAP文を使用して比較ペアを生成します。パラメータ・ファイル内の他の情報は、関連するMAP文の特定に使用されます。オプションで、EXTRACTパラメータからTABLE文を使用して、生成される比較ペアを制限することができます。

Oracle GoldenGate Veridataでは、単一列マッピングのみがサポートされているため、列マッピングではソース列とターゲット列の間の一対一マッピングを前提としています。

次のジョブを実行できます。

  • ReplicatおよびExtractの構成パラメータをOracle GoldenGate Veridataで再利用する。

  • 別のReplicatおよびExtractパラメータ・ファイルの作成を回避する。

6.2 Veridata GoldenGateパラメータ処理の実行

適切なオペレーティング・システム権限がある場合は、Veridata GoldenGate Parameter Processingプログラムを実行できます。

  1. 使用するパラメータ・ファイルが、Oracle GoldenGate Veridataのインストール先のシステム上にあることを確認します。別のシステムからファイルをコピーする必要がある場合は、CHARSETパラメータが有効な状態を維持できるよう、対象のファイルをバイナリ・ファイルとしてコピーする必要があります。
  2. オペレーティング・システムのコマンド・シェルを実行します。
  3. VERIDATA_DOMAIN_HOME/veridata/binディレクトリに移動します。
  4. Veridata GoldenGateパラメータ処理を実行します。

構文

veridata_param_process{.bat|.sh} required_parameter [optional_parameter] 

必須パラメータ

次は必須です。入力しないとエラーが返されます。

[-noscripting |
-create |
-replace|
-update ]
[-wlport port ] |
-wluser user_name |
[-p <propfile>]
[-o <outputFile>] 
[replicat_param_filename]

-wluserオプションに、サーバーに接続するためのOracle GoldenGate Veridataサーバー(サーバー)のユーザー名を指定します。このサーバー・ユーザーには、コマンドライン操作にアクセスして実行するためのveridataCommandLineUser権限が必要です。このユーザーには、ジョブを正常に実行し、インポート・ユーティリティとエクスポート・ユーティリティを使用するためのveridataAdministratorまたはveridataPowerUser権限も必要です。

オプション・パラメータ

オプションのパラメータは次のとおりです。
  • [extract_param_filename]: ExtractおよびReplicatファイル名を指定する場合、最初にExtractファイル名を指定してからReplicatファイル名を入力します。

表6-1 VGPPのランタイム引数

引数 説明

{ -noscripting | -create | -replace | -update}

生成された構成ファイルを使用してveridata_scriptingを実行しないことを指定します。-create-replaceおよび-updateの各オプションは、生成された構成ファイルを使用してveridata_scripting を実行することを示します。いずれの場合も、生成されたスクリプト構成ファイルをveridata_scriptingへの入力として使用できます。デフォルトのオプションは-createです。

-wluser

サーバーを認証して接続するOracle WebLogicユーザー名を指定します。

-wlport

Oracle WebLogic Serverのポート番号を指定します。デフォルトのリスニング・ポートは8830です。

-p

構成に必要な追加情報が含まれているプロパティ・ファイルを指定します。

-o

生成されたスクリプト・ファイルが含まれている出力ファイルを指定します。デフォルトはreplicat_name_scripting.xmlです(replicat_nameREPLCATパラメータの値)。

オプションのextract_param_filenameパラメータでは、比較用のソース情報が含まれているEXTRACTパラメータ・ファイルを指定します。

replicat_param_filenameパラメータは、ターゲットの情報が含まれているREPLICATパラメータです。

6.2.1 プロパティ・ファイルの使用方法

VGPPプログラムの実行時に、オプションのプロパティ・ファイルを指定できます。このファイルにはOracle GoldenGateパラメータ・ファイルにない情報が含まれ、Veridataの有効な比較構成を生成するためには、このファイルが必要です。指定可能なプロパティ(情報)の一部を次に示します。

表6-2 オプション・パラメータ

プロパティ名 備考

source.connection.name

Veridataエージェント/マネージャ接続の名前。既存のVeridata接続の名前にすることができます。

デフォルトはExtract名です。これは既存の接続を参照する場合に必要な唯一のソース接続プロパティです。

source.connection.port

ソース・エージェントのポート。これは接続がまだ存在しない場合に必要です。

source.connection.host

ソース・エージェントを実行中のホスト名。これは接続が存在しない場合に必要です。

source.connection.user

このデフォルト設定は、Extractパラメータ・ファイル内のユーザー情報です。これは接続が存在しない場合に必要です。

source.connection.password

このデフォルト設定は、Extractパラメータ・ファイル内のユーザー情報です。これは接続がまだ存在しない場合に必要です。プロパティ名が値なしで指定されている場合、スクリプト構成がVeridataにロードされる際に、スクリプト・ユーティリティから値を入力するように要求されます。

source.catalog

これはSybase、SQL ServerおよびOracle統合データベースで有効です。

SybaseおよびSQL Serverの場合は、ソース表が含まれるデータベースになります。

Oracleの場合は、Extractパラメータの処理時に使用するOracle PDBを指定します。このPDBに関連付けられていない文は無視されます。デフォルト値はファイル内の最初のPDB参照です。参照はSOURCECATALOGパラメータか、TABLE文内の3つの部分からなる名前の最初の部分です。

extract.useansiquotes

Extractパラメータ・ファイルがANSIの引用符指定に準拠するかどうかを指定します。これはブール値です。デフォルト値はtrueです。GoldenGateコアのGLOBALSパラメータUSEANSISQLQUOTES | NOUSEANSISQLQUOTESと同じです。

extract.charset

Extractパラメータ・ファイルの文字セット。Extractパラメータ・ファイルに指定されているすべての文字セットを上書きします。

extract.trail

Extractパラメータ・ファイルに複数の証跡ファイルが指定されている場合に使用する証跡ファイル名。デフォルトは、Extractパラメータ・ファイルで最初に指定されている証跡ファイルです。Extractパラメータ・ファイルに同じ名前のrmttailエントリが複数含まれている場合、Veridataでは最初に出現したエントリが使用されます。

target.connection.name

Veridataエージェント/マネージャ接続の名前。既存のVeridata接続の名前にすることができます。

デフォルトはReplicat名です。これは既存の接続を参照する場合に必要な唯一のターゲット接続プロパティです。

target.connection.port

ターゲット・エージェントのポート。これは接続がまだ存在しない場合に必要です。

target.connection.host

ターゲット・エージェントを実行中のホスト名。これは接続が存在しない場合に必要です。

target.connection.user

このデフォルト設定は、パラメータ・ファイル内のユーザー情報です

target.connection.password

このデフォルト設定は、Extractパラメータ・ファイル内のユーザー情報です。プロパティ名が値なしで指定されている場合、スクリプト構成がVeridataにロードされる際に、スクリプト・ユーティリティから値を入力するように要求されます。

target.catalog

これはSybaseおよびSQL Serverで有効です。ターゲット表を含むデータベースになります。

replicat.useansiquotes

Replicatパラメータ・ファイルがANSIの引用符指定に準拠するかどうかを指定します。これはブール値です。デフォルト値はtrueです。GoldenGateコアのGLOBALSパラメータUSEANSISQLQUOTES | NOUSEANSISQLQUOTESと同じです。

replicat.charset

Replicatパラメータ・ファイルの文字セット。Replicatパラメータ・ファイル内のすべてのCHARSET指定を上書きします。

6.3 パラメータの処理

この項では、Oracle GoldenGate ExtractまたはReplicatのパラメータ・ファイルで使用可能なすべてのパラメータの処理について説明します。各キーワードはサポート対象、サポート対象外または無視のいずれかです。サポート対象パラメータは、Veridata構成の生成で使用されます。サポート対象外パラメータは、Veridata構成の生成を妨げます。サポート対象外パラメータ(INSERTDELETES)が指定されると、後続のMAP文は無視されます。無視パラメータは、Veridata構成の生成には適用できない機能を示します。

次の表に、既知のパラメータと予想される処理を示します。リストにないパラメータは無視パラメータです。

表6-3 パラメータの処理

GoldenGateパラメータ Veridataのサポート

CATALOGEXCLUDE

このパラメータは無視されます。Veridataでは、単一カタログの項目のみが処理されます。

CHARMAP

サポート対象外。

CHARSET

サポート対象。このパラメータは、パラメータ・ファイルおよびINCLUDE/OBEYファイルでサポートされます。VeridataではGLOBALSファイルは処理されません。

COLMATCH

サポート対象。

COMMENT | --

サポート対象。

DICTIONARY

NSK ExtractおよびReplicatのサポート対象。

EXPANDDDL

NSK ExtractおよびReplicatのサポート対象。

EXCLUDEWILDCARDOBJECTSONLY

サポート対象。

EXTRACT

サポート対象。

EXTTRAIL

サポート対象。

FILE | TABLE

NSK Extractのサポート対象。

INCLUDE

サポート対象。指定されたパスでファイルが見つからない場合、VGPPはパラメータ・ファイルと同じディレクトリ内でそのファイル名を検索します。

INSERTALLRECORDS

サポート対象外。後続のMAP文をすべて無視。

INSERTDELETES | NOINSERTDELETES

サポート対象外 | サポート対象。INSERTDELETESコマンド以降、NOINSERTDELETESコマンドが検出されるまでのMAP文をすべて無視。

INSERTUPDATES | NOINSERTUPDATES

サポート対象外 | サポート対象: INSERTUPDATESNOINSERTUPDATESとの間のMAP文をすべて無視。

MACRO

サポート対象。

MACROCHAR

サポート対象。

MAP

サポート対象。

MAPEXCLUDE

サポート対象。

OBEY

サポート対象。INCLUDEと同じです。

REPLICAT

サポート対象。

RMTTRAIL

サポート対象。

SCHEMAEXCLUDE

サポート対象。

SOURCECATALOG

Oracle統合データベースでサポートされています。

TABLE | MAP

サポート対象。

TABLEEXCLUDE

サポート対象。

UPDATEDELETES | NOUPDATEDELETES

サポート対象外 | サポート対象。

UPDATEINSERTS | NOUPDATEINSERTS

サポート対象外 | サポート対象。

USEANSISQLQUOTES | NOUSEANSISQLQUOTES

サポート対象。

6.4 Map文とTable文の処理

Oracle GoldenGate Veridataでは、Replicatパラメータ・ファイル内の各Map文で、スクリプト構成ファイルの比較ペア要素が生成されます。生成されたスクリプト・ファイルには、最初に固有の表マッピング、次にワイルドカード・マッピング、そして最後に除外マッピングがリストされます。これは、固有のマッピングがワイルドカード・マッピングに優先するOracle GoldenGate Replicatの動作と一致します。

同じソース表指定とターゲット表指定が複数のMAP文に出現する場合、最初に出現した表指定が比較ペア指定に使用されます。このように複数回出現する可能性があるのは、MAP文でスレッド指定と範囲フィルタが使用されている場合です。

次の表に、MAP文とTABLE文のすべてのキーワードと、VGPPでのサポート・レベルを一覧で示します。サポート対象外のキーワードが含まれているMAP文では、Oracle GoldenGate Veridataの比較構成が生成されません。可能性ありとマークされた項目は、Oracle GoldenGate Veridataの値を特定するには追加情報が必要であることを示します。

表6-4 Map文とTable文の処理

キーワード Veridataのサポート

TARGET

サポート対象。

COLMAP

サポート対象。ソース列からターゲット列への単純なマッピングのみがサポートされています。関数またはリテラルにマップされているターゲット列は比較構成から除外されます。

USEDEFAULTSキーワードはサポート対象です。

BINARYINPUTキーワードは無視されます。

COLS

サポート対象。生成された比較ペア構成では、明示的な列リストになります。

COLSEXCEPT

サポート対象。明示的な列マッピングが存在しない場合は、システムでマップされた列と省略された列リストになります。

COMPARECOLS

無視

COORDINATED

無視。

DICTIONARY

NSKのサポート対象。

TARGETDICT

NSKのサポート対象。

DEF

NSKのサポート対象。

TARGETDEF

NSKのサポート対象。

EVENTACTIONS

無視。

EXCEPTIONSONLY

サポート対象外。

EXITPARAM

無視。

FETCHBEFOREFILTER

無視

FETCHCOLS|FETCHCOLSEXCEPT

無視

FETCHMODCOLS|FETCHMODCOLSEXCEPT

無視

FILTER

無視。

GETBEFORECOLS

無視。

HANDLECOLLISIONS | NOHANDLECOLLISIONS

無視

INSERTALLRECORDS

サポート対象外。

INSERTAPPEND | NOINSERTAPPEND

無視

KEYCOLS

サポート対象。

MAPEXCEPTION

無視。

PARTITION サポート対象。ワイルドカード記号あり、またはなしで表のパーティション名を定義し、比較ペアのこれらのパーティションのみを考慮します。
PARTITIONEXCLUDE サポート対象。ワイルドカード記号あり、またはなしで表の除外するパーティション名を定義します。ソース表パーティションとターゲット表パーティション間で一致する他のすべてのパーティションも考慮されます。

REPERROR

無視

RESOLVECONFLICT

無視。

SQLEXEC

無視

SQLPREDICATE

無視

THREAD

無視。

THREADRANGE

無視。

TOKENS

無視。

TRIMSPACES | NOTRIMSPACES

サポート対象。

TRIMVARSPACES | NOTRIMVARSPACES

サポート対象。

WHERE

無視。

6.5 VGPPの例

この例では、簡単なExtractファイル、Replicatファイル、プロパティ・ファイルを使用するVGPPユーティリティの使用方法を示しています。

./veridata_param_process.sh -noscripting -wluser veridata -wlport 8830 /scratch/ggcore/dirprm/extract.prm /scratch/ggcore/dirprm/replicat.prm -p properties.txt -o output.xml

次に、ReplicatファイルにPARTITIONおよびPARTITIONEXCLUDEパラメータを含める例を示します。

Replicat oraclesource
--SETENV (ORACLE_SID=ORA1110A)
USERID qatarget, PASSWORD qatarget
assumetargetdefs
discardfile ./dirrpt/robey.dsc, purge
map qasource.tcustmer, target qatarget.tcustmer;
MAP sales.order, TARGET rpt.*;
PARTITION sales.tab.part1;
PARTITION sales.order.part2;
PARTITION rpt.order.pa*;
PARTITIONEXCLUDE rpt.order.ts*;

ここで、extract.prm: 抽出パラメータ・ファイル。これはオプションです。

replicat.prm: Replicatパラメータ・ファイル。これは必須です。

PARTITION sales.tab.part1: 表tabおよびスキーマsalesのパーティションpart1が含まれます。

PARTITIONEXCLUDE rpt.order.ts*: tsで始まるすべてのパーティションを、表orderおよびスキーマrpから除外します。

ExtractとReplicatの両方のファイルを指定する場合、ExtractファイルをReplicatファイルより先に指定する必要があります。

properties.txt - このファイルには、Veridataエージェントに関連するプロパティが含まれます。

output.xml - これは生成されたxmlファイルで、Veridataスクリプト・インポート・ツールで使用できます。

PARTITION - ワイルドカード記号あり、またはなしで表のパーティション名を定義し、比較ペアのこれらのパーティションのみを考慮します。

PARTITIONEXCLUDE: ワイルドカード記号あり、またはなしで表の除外するパーティション名を定義します。ソース表パーティションとターゲット表パーティション間で一致する他のすべてのパーティションも考慮されます。

サンプル出力:

extract.prm
CHARSET utf-8
EXTRACT sqlParamSrcConnection
LOGALLSUPCOLS
RMTHOST localhost, MGRPORT 7000
RMTTRAIL sqlParamSrcConnection_trail
TABLE SOURCE.CHAR_*;
replicat.prm
CHARSET US-ASCII
REPLICAT sqlParamTrgConnection
ASSUMETARGETDEFS
MAP SOURCE.CHAR_TYPES, TARGET TARGET.CHAR_TYPES_NOTNULL, COLMAP ( USEDEFAULTS, NCHAR_COL = NVARCHAR_COL, NVARCHAR_COL = NCHAR_COL, KEY_COL = CHAR_COL, CHAR_COL = KEY_COL ),KEYCOLS (KEY_COL, CHAR_COL);
replicat.prm
Replicat oraclesource--SETENV (ORACLE_SID=ORA1110A)USERID
    qatarget, PASSWORD qatargetassumetargetdefsdiscardfile ./dirrpt/robey.dsc,
    purgemap qasource.tcustmer, target qatarget.tcustmer;MAP sales.order, TARGET
    rpt.*;PARTITION sales.tab.part1;PARTITION sales.order.part2;PARTITION rpt.order.pa*;PARTITIONEXCLUDE rpt.order.ts*;
replicat.prm (表パーティションとともに比較ペアが生成されています):
<configuration wildcard="ggs" operation="create" validation="required">
<group name="oraclesource" source-conn="default_source_connection" target-conn="oraclesource">
<compare-pair source-schema="qasource" source-table="tcustmer" target-schema="qatarget" target-table="tcustmer"></compare-pair>
<compare-pair source-schema="sales" source-table="order" target-schema="rpt" target-table="*">
<table-partition name="part2" default="true" side="source"></table-partition>
<table-partition name="pa*" default="true" side="target"></table-partition>
<table-partition name="ts*" default="true" side="target" exclude="true"></table-partition>
</compare-pair>
</group>
<job name="oraclesource">
<group name="oraclesource"></group>
</job>
</configuration>
properties.txt
source.connection.host=localhost
source.connection.name=sqlParamSrcConnection
source.connection.port=7860
source.connection.user=source
source.connection.password=source

target.connection.host=localhost
target.connection.name=sqlParamTrgConnection
target.connection.port=7861
target.connection.user=target
target.connection.password=target                                                                                                                                                                           
生成されたoutput.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration SYSTEM "configuration.dtd">
<!--
Hostname : localhost
OGGV-30003: Extract filename : /scratch/ggcore/dirprm/extract.prm
OGGV-30002: Replicat filename : /scratch/ggcore/dirprm/replicat.prm 
January 3, 2017 4:33:40 AM PST
-->
<configuration wildcard="ggs" operation="create" validation="required">  
 <connection name="sqlParamSrcConnection" host="localhost" port="7860" user="source" password="source"></connection> 
 <connection name="sqlParamTrgConnection" host="localhost" port="7861" user="target" password="target"></connection>  
 <group name="sqlParamSrcConnection_sqlParamTrgConnection" source-conn="sqlParamSrcConnection" target-conn="sqlParamTrgConnection">   
  <filter type="include" schema="SOURCE" table="CHAR_*"></filter>    
  <compare-pair source-schema="SOURCE" source-table="CHAR_TYPES" target-schema="TARGET" target-table="CHAR_TYPES_NOTNULL">    
  <key-column target-name="KEY_COL" source-name="CHAR_COL"></key-column>      
  <key-column target-name="CHAR_COL" source-name="KEY_COL"></key-column>     
  <column source-name="*" type="hash"></column>     
  <column target-name="NCHAR_COL" source-name="NVARCHAR_COL" type="hash"></column>      
  <column target-name="NVARCHAR_COL" source-name="NCHAR_COL" type="hash"></column>   
 </compare-pair> 
</group>
<job name="sqlParamSrcConnection_sqlParamTrgConnection">    
 <group name="sqlParamSrcConnection_sqlParamTrgConnection"></group> 
 </job>
</configuration>