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プログラムを実行できます。
- 使用するパラメータ・ファイルが、Oracle GoldenGate Veridataのインストール先のシステム上にあることを確認します。別のシステムからファイルをコピーする必要がある場合は、
CHARSET
パラメータが有効な状態を維持できるよう、対象のファイルをバイナリ・ファイルとしてコピーする必要があります。 - オペレーティング・システムのコマンド・シェルを実行します。
VERIDATA_DOMAIN_HOME
/veridata/bin
ディレクトリに移動します。- 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のランタイム引数
引数 | 説明 |
---|---|
|
生成された構成ファイルを使用して |
-wluser |
サーバーを認証して接続するOracle WebLogicユーザー名を指定します。 |
-wlport |
Oracle WebLogic Serverのポート番号を指定します。デフォルトのリスニング・ポートは8830です。 |
|
構成に必要な追加情報が含まれているプロパティ・ファイルを指定します。 |
|
生成されたスクリプト・ファイルが含まれている出力ファイルを指定します。デフォルトは オプションの
|
6.2.1 プロパティ・ファイルの使用方法
VGPPプログラムの実行時に、オプションのプロパティ・ファイルを指定できます。このファイルにはOracle GoldenGateパラメータ・ファイルにない情報が含まれ、Veridataの有効な比較構成を生成するためには、このファイルが必要です。指定可能なプロパティ(情報)の一部を次に示します。
表6-2 オプション・パラメータ
プロパティ名 | 備考 |
---|---|
|
Veridataエージェント/マネージャ接続の名前。既存のVeridata接続の名前にすることができます。 デフォルトはExtract名です。これは既存の接続を参照する場合に必要な唯一のソース接続プロパティです。 |
|
ソース・エージェントのポート。これは接続がまだ存在しない場合に必要です。 |
|
ソース・エージェントを実行中のホスト名。これは接続が存在しない場合に必要です。 |
|
このデフォルト設定は、Extractパラメータ・ファイル内のユーザー情報です。これは接続が存在しない場合に必要です。 |
|
このデフォルト設定は、Extractパラメータ・ファイル内のユーザー情報です。これは接続がまだ存在しない場合に必要です。プロパティ名が値なしで指定されている場合、スクリプト構成がVeridataにロードされる際に、スクリプト・ユーティリティから値を入力するように要求されます。 |
|
これはSybase、SQL ServerおよびOracle統合データベースで有効です。 SybaseおよびSQL Serverの場合は、ソース表が含まれるデータベースになります。 Oracleの場合は、Extractパラメータの処理時に使用するOracle PDBを指定します。このPDBに関連付けられていない文は無視されます。デフォルト値はファイル内の最初のPDB参照です。参照は |
|
Extractパラメータ・ファイルがANSIの引用符指定に準拠するかどうかを指定します。これはブール値です。デフォルト値はtrueです。GoldenGateコアの |
|
Extractパラメータ・ファイルの文字セット。Extractパラメータ・ファイルに指定されているすべての文字セットを上書きします。 |
|
Extractパラメータ・ファイルに複数の証跡ファイルが指定されている場合に使用する証跡ファイル名。デフォルトは、Extractパラメータ・ファイルで最初に指定されている証跡ファイルです。Extractパラメータ・ファイルに同じ名前の |
|
Veridataエージェント/マネージャ接続の名前。既存のVeridata接続の名前にすることができます。 デフォルトはReplicat名です。これは既存の接続を参照する場合に必要な唯一のターゲット接続プロパティです。 |
|
ターゲット・エージェントのポート。これは接続がまだ存在しない場合に必要です。 |
|
ターゲット・エージェントを実行中のホスト名。これは接続が存在しない場合に必要です。 |
|
このデフォルト設定は、パラメータ・ファイル内のユーザー情報です |
|
このデフォルト設定は、Extractパラメータ・ファイル内のユーザー情報です。プロパティ名が値なしで指定されている場合、スクリプト構成がVeridataにロードされる際に、スクリプト・ユーティリティから値を入力するように要求されます。 |
|
これはSybaseおよびSQL Serverで有効です。ターゲット表を含むデータベースになります。 |
|
Replicatパラメータ・ファイルがANSIの引用符指定に準拠するかどうかを指定します。これはブール値です。デフォルト値はtrueです。GoldenGateコアの |
|
Replicatパラメータ・ファイルの文字セット。Replicatパラメータ・ファイル内のすべての |
6.3 パラメータの処理
この項では、Oracle GoldenGate ExtractまたはReplicatのパラメータ・ファイルで使用可能なすべてのパラメータの処理について説明します。各キーワードはサポート対象、サポート対象外または無視のいずれかです。サポート対象パラメータは、Veridata構成の生成で使用されます。サポート対象外パラメータは、Veridata構成の生成を妨げます。サポート対象外パラメータ(INSERTDELETES
)が指定されると、後続のMAP
文は無視されます。無視パラメータは、Veridata構成の生成には適用できない機能を示します。
次の表に、既知のパラメータと予想される処理を示します。リストにないパラメータは無視パラメータです。
表6-3 パラメータの処理
GoldenGateパラメータ | Veridataのサポート |
---|---|
|
このパラメータは無視されます。Veridataでは、単一カタログの項目のみが処理されます。 |
|
サポート対象外。 |
|
サポート対象。このパラメータは、パラメータ・ファイルおよびINCLUDE/OBEYファイルでサポートされます。Veridataでは |
|
サポート対象。 |
|
サポート対象。 |
NSK ExtractおよびReplicatのサポート対象。 |
|
|
NSK ExtractおよびReplicatのサポート対象。 |
サポート対象。 |
|
|
サポート対象。 |
|
サポート対象。 |
|
NSK Extractのサポート対象。 |
|
サポート対象。指定されたパスでファイルが見つからない場合、VGPPはパラメータ・ファイルと同じディレクトリ内でそのファイル名を検索します。 |
|
サポート対象外。後続の |
|
サポート対象外 | サポート対象。 |
|
サポート対象外 | サポート対象: |
|
サポート対象。 |
|
サポート対象。 |
|
サポート対象。 |
|
サポート対象。 |
|
サポート対象。 |
|
サポート対象。 |
|
サポート対象。 |
|
サポート対象。 |
|
Oracle統合データベースでサポートされています。 |
|
サポート対象。 |
|
サポート対象。 |
|
サポート対象外 | サポート対象。 |
|
サポート対象外 | サポート対象。 |
|
サポート対象。 |
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のサポート |
---|---|
|
サポート対象。 |
|
サポート対象。ソース列からターゲット列への単純なマッピングのみがサポートされています。関数またはリテラルにマップされているターゲット列は比較構成から除外されます。
|
|
サポート対象。生成された比較ペア構成では、明示的な列リストになります。 |
|
サポート対象。明示的な列マッピングが存在しない場合は、システムでマップされた列と省略された列リストになります。 |
|
無視 |
|
無視。 |
|
NSKのサポート対象。 |
|
NSKのサポート対象。 |
|
NSKのサポート対象。 |
|
NSKのサポート対象。 |
|
無視。 |
|
サポート対象外。 |
|
無視。 |
|
無視 |
|
無視 |
|
無視 |
|
無視。 |
|
無視。 |
|
無視 |
|
サポート対象外。 |
|
無視 |
|
サポート対象。 |
|
無視。 |
PARTITION |
サポート対象。ワイルドカード記号あり、またはなしで表のパーティション名を定義し、比較ペアのこれらのパーティションのみを考慮します。 |
PARTITIONEXCLUDE |
サポート対象。ワイルドカード記号あり、またはなしで表の除外するパーティション名を定義します。ソース表パーティションとターゲット表パーティション間で一致する他のすべてのパーティションも考慮されます。 |
|
無視 |
|
無視。 |
|
無視 |
|
無視 |
|
無視。 |
|
無視。 |
|
無視。 |
|
サポート対象。 |
|
サポート対象。 |
|
無視。 |
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
: ワイルドカード記号あり、またはなしで表の除外するパーティション名を定義します。ソース表パーティションとターゲット表パーティション間で一致する他のすべてのパーティションも考慮されます。
サンプル出力:
CHARSET utf-8 EXTRACT sqlParamSrcConnection LOGALLSUPCOLS RMTHOST localhost, MGRPORT 7000 RMTTRAIL sqlParamSrcConnection_trail TABLE SOURCE.CHAR_*;
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 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*;
<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>
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
<?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>