Oracle GoldenGate Veridata Webユーザー・インタフェースに加えて、スクリプトを使用して構成の部分を定義できます。この章には次のトピックが含まれます:
スクリプトを使用すると、Oracle GoldenGate Veridataの構成に使用されるXMLドキュメントを作成できます。XMLドキュメントを管理するDTD (ドキュメント・タイプ定義)は、Oracle GoldenGate Veridataのインストール場所のweb/bin
ディレクトリに保存されます。DTDエントリは、ほとんどがOracle GoldenGate Veridata Webユーザー・インタフェースを反映しているため、入力の詳細はオンライン・ヘルプを参照してください。
このドキュメントでは、基本的なXMLとそのルールの知識がユーザーにあることを前提としています。
このスクリプトには、次の利点があります。
繰返しのタスクの定義に必要な時間を短縮できます
再利用可能な構成を作成できます。
テスト構成を本番に使用する構成に反映できます。
Oracle GoldenGate Veridataスクリプトでは、次の構成をサポートしています。
データベース接続
比較グループ(ジョブ、グループおよび比較ペア)
Oracle GoldenGate Veridataスクリプトでは、次の構成をサポートしていません。
プロファイル
接続でのデータ型形式の上書き
スクリプト・ユーティリティは、Oracle GoldenGate Veridataのインストールの場所のDOMAIN_HOME/
veridata/bin
ディレクトリから実行されます。Windowsバージョンの名前はveridata_scripting.bat
で、UNIXおよびLinuxはveridata_scripting.sh
です。
Windowsでスクリプトを実行する構文は次のとおりです。
veridata_scripting.bat [-create | -update | -delete] configuration.xml
これらのオプションの操作のいずれかを実行時にリクエストできます。
-create:
構成にリストされるすべての項目が新しくなっています。リストの項目がリポジトリに存在する場合は、何も追加されません。
-update:
新しい項目がリポジトリに追加され、既存の項目が変更されます。リポジトリに存在する項目および構成にリストされていない項目は削除されます。
-delete:
構成に存在する名前付きのすべての項目はリポジトリから削除されます。
configuration.xml:
構成を説明するために作成したスクリプトXML構成ファイルの名前。これは必須エントリです。
このスクリプト・ユーティリティは、成功した場合は終了ステータスの0を返し、エラーが発生した場合は、ゼロ以外を返します。エラーに関する詳細は、インストール場所にあるshared logs/scripting.log
ファイルで確認できます。
スクリプト・ユーティリティでは、最初にconfiguration.xml
ファイルを解析し、エラーで異常終了する前に、ファイル全体の完了を試みます。エラーが見つかった場合は、shared logs/scripting.log
に記録されます。エラーで異常終了しない場合は、2番目の解析が渡され、今度は構成が処理されます。
オブジェクト名の照合
カタログ、スキーマ、表、索引、列などのデータベース・オブジェクト名は、これらのルールに従って照合されます。
照合では、大文字と小文字は区別されません。
Enscribe DDLおよびSQL列の照合をサポートするために、ハイフン(-)はアンダースコア(_)と一致するとみなされます。
表名およびソース列名のワイルドカード式は、正式名で照合され、大文字バージョンの名前で照合されます。
キー列の決定
キー列は、次の順序で選択されます。
Explicitキー列定義(使用可能な場合)。この場合、source-pkey
およびtarget-pkey
compare-pair
要素属性が設定されていると、エラーが生成されます。
compare-pair
要素のsource-pkey
およびtarget-pkey
属性によって指定されている索引の列。列の数およびすべてのデータ型は一致する必要があり、データ型は互換性がある必要があります。
システム選択の主キーの列。
比較ペアの生成
比較ペアの生成には、次の特性があります。
ワイルドカードからの生成の動作は、正規表現が使用できる点を除き、ユーザー・インタフェースの生成と同じです。
比較ペアは、configuration.xml
ファイルで指定した順序で処理されます。
単一の比較ペア要素によって生成される比較ペアは、ソース表名のアルファベット順で生成されます。
複数の比較ペア要素で比較ペアが生成される場合は、最初の比較ペアが使用されます。
一般的に、比較ペア要素の順序は次のようになります。
ユーザー定義のキーなど、専用の構成要件を持つ比較ペア
一般的なパターンに一致する比較ペア
それ以外の場合に、一般的なパターンに一致する比較ペアの除外
構成は、最上位レベルのconfiguration
要素およびネストされた複数の要素で定義されます。これらの要素のほとんどには、configuration
要素のoperation
属性やconnection
要素のport
属性などの特性を定義する属性があります。
要素をブリッジヘッドに変更しますか?
メイン要素は、configuration
です。
次の要素は、configuration
要素内にネストできます。
表5-1 configuration要素
要素 | 説明 |
---|---|
connection |
1つ以上のOracle GoldenGate Veridata Webユーザー・インタフェースのデータベース接続の定義。 |
group |
1つ以上の比較グループ定義。 |
job |
1つ以上のジョブ定義。 |
次の属性では、configuration
要素について説明します。
表5-2 configuration属性
属性 | 説明 |
---|---|
validation |
構成に使用される検証のタイプを指定します。オプションは次のとおりです。 " " " |
operation |
データがリポジトリにどのように適用されるかを指定します。オプションは次のとおりです。 " " " コマンドライン・フラグを使用して、この属性に入力した値を上書きできます。 |
wildcard |
使用されるパターンの照合方法を指定します。オプションは次のとおりです。 " " |
例
次の例では、検証できる比較ペアを追加し、検証できない比較ペアを無視します。ワイルドカードには正規表現を使用し、"create"
デフォルトを使用して、すべての項目を新しい項目として追加し、項目がすでに存在する場合は、何も追加しません。
<configuration validation="omit-failures" wildcard="regex"> . . . </configuration>
column
要素では、比較ペアに含める、または比較ペアから除外する列のセットを定義します。column
要素には、ネストされた要素またはテキスト・データがありません。
次の属性では、column
要素について説明します。
表5-3
属性 | 説明 |
---|---|
source-name |
ソース列名のセットを定義する正規表現。この値は必須です。 |
target-name |
ターゲット列名のセットを定義する正規表現。 |
exclude |
一致した列を比較ペアから除外するかどうかを指定します。オプションは次のとおりです。
|
type |
列のタイプを指定します。オプションは次のとおりです。
|
format |
通常使用される比較形式を上書きする形式を指定します。質問: OK?値は、Oracle GoldenGate Veridataでサポートされている任意のデータ・タイプで指定できます。 |
scale |
比較のデフォルトのスケールを上書きするスケールを指定します。 |
precision |
比較に使用されるデフォルトの精度を上書きする精度を指定します。 |
timezone |
比較のデフォルトのタイムゾーンを上書きするタイムゾーンを指定します。 |
compare-pair
要素では、比較ペア項目のセットを指定します。Oracle GoldenGate Veridata Webユーザー・インタフェースと同様、比較ペアはシステムでマップされたキーと列にデフォルトで設定されます。
次の要素は、compare-pair
要素内にネストできます。
表5-4 compare-pair要素
要素 | 説明 |
---|---|
enscribe-info |
NonStop Enscribeファイルの比較時に使用される1つ以上の情報のセット。 |
partition |
表のサブセットの1つ以上の仕様。 |
column |
含めるか、または除外する列のセットの1つ以上の定義。 |
次の属性では、compare-pair
要素について説明します。
表5-5 compare-pair属性
属性 | 要素 |
---|---|
name |
比較ペアの名前を定義する式。この式には、 |
source-table |
比較する表を定義する正規表現。詳細は、この項で後述する「正規表現のグループ化」を参照してください。デフォルトでは、すべての表を照合します。 |
target-table |
比較のターゲット表を定義する正規表現。ソース表式で取得されるグループへの参照が含まれる場合があります。デフォルトは$0 (完全なソース表名)です。 |
source-schema |
比較ペアで参照されるソース表のデフォルト・スキーマの名前。質問: ソーススキーマのグループ定義用に以下を含める必要がありますか?デフォルトは、 |
target-schema |
比較ペアで参照されるターゲット表のデフォルト・スキーマの名前。デフォルトは、 |
source-catalog |
この比較ペアで参照されるソース表のデフォルト・カタログ。質問 (上記と同様) SQL/MPの場合は、SQLカタログのボリュームになります。これは、Oracle、DB2、EnscribeまたはTeradataでは使用されません。 |
target-catalog |
この比較ペアで参照されるソース表のデフォルト・カタログ。SQL/MPの場合は、SQLカタログのボリュームになります。これは、Oracle、DB2、EnscribeまたはTeradataでは使用されません。 |
exclude |
比較ペアを
|
source-file-pattern |
ソースのデフォルトのファイル・パターン(データ・ソースがEnscribeまたはSQL/MPの場合)。 |
target-file-pattern |
ターゲットのデフォルトのファイル・パターン(データ・ターゲットがEnscribeまたはSQL/MPの場合)。 |
source-pkey |
ユーザー指定の主キーのソース部分として使用する一意の索引の名前。デフォルトは、ユーザー指定以外の索引名です。 |
target-pkey |
ユーザー指定の主キーのターゲット部分として使用する一意の索引の名前。デフォルトは、 |
delta-processing |
この比較ペアに対してデルタ処理が有効かどうかを指定します。オプションは次のとおりです。
|
profile-name |
比較ペアの比較を実行する場合に使用するプロファイルの名前。 |
system-key |
比較ペアに列要素および指定したソース主キーがない場合、Oracle GoldenGate Veridataは、使用する最適な主キーまたは一意索引を選択します。オプションは次のとおりです。 "
|
system-columns |
タイプ属性が
|
wildcard |
使用されるパターンの照合方法を指定します。オプションは次のとおりです。 " "
|
正規表現のグループ化
正規表現のグループ化を使用すると、ターゲット表名の照合に使用するソース表名の部分を取得できます。照合されるグループは、$1
、$2
、$3
などとして参照されます。グループ$0
は、ソース表名全体と一致します。
グループの照合の例は、次のとおりです。
P(.*)
- Pで始まる表名と一致します。$1の変数部分を取得します。これは、表PROSPECTS.
と一致します。(質問: なぜ、ここでキャプチャされる変数部分と、3つ目の箇条書きの頭文字?)
[^PV].*
- PまたはVで始まらない表名と一致します。表PROSPECTS
ではなく、表REGIONS
と一致します。
([P-R](.*))
- P、QまたはRで始まる表名と一致し、グループ$1の最初の文字と、グループ$2の名前の残りを取得します。
取得されたグループ($
n
)は、ターゲット表を選択する式に使用されます。
例
質問: この例の定義方法は?サンプル・ファイルにない例にする必要がありますか?次の例では、key-only
比較ペアについて説明します。そのソース表はtest
スキーマ、ターゲット表はother
スキーマで定義されます。ソース列名がSで始まり、ターゲット列名がTで始まるペアが除外され、それ以外の場合は、ソース列名と一致します。
. . . <compare-pair name="key-only" source-schema=test target-schema=other source-table="S(.*)" target-table=T$1"> <column source-name="(.*)" target-name="$1" exclude="true"/> </compare-pair> . . .
connection
要素では、Oracle GoldenGate Veridataエージェント経由でのソースまたはターゲット比較データベースへの接続を定義します。
次の要素は、connection
要素内にネストできます。
次の属性では、connection
要素について説明します。
表5-7 connection属性
属性 | 説明 |
---|---|
name |
接続を識別する名前。これは必須エントリです。 |
host |
Oracle GoldenGate Veridataエージェントが実行されているシステムの名前。 |
port |
エージェントが実行されているシステムのポート番号。 |
user |
エージェントがデータベースへの接続に使用するユーザー名。 |
password |
エージェントがデータベースへの接続に使用するパスワード。 |
agent-timeout |
エージェントにリクエストを送信する場合に、タイムアウトまでOracle GoldenGate Veridataが待機する時間。これは削除する可能性があります。質問: これは正しいですか? 時間間隔は秒ですか? |
truncate-spaces |
文字列の最後から空白を削除するかどうかを |
fetch-size |
(Oracleのみ)各バッチでフェッチされる行の数。 |
例
次の例では、source
という名前の接続を識別します。
<configuration> <connection name="source" host="somehost" port="7850" user="somename" password="somepw"/> . . . </configuration>
description
要素は、含まれる要素の説明を付加するのに使用可能な自由形式のテキストです。関連付けられた属性はありません。
例
次の例では、source
という名前の接続の説明を指定します。
<configuration> <connection name="source" host="somehost" port="7850" user="somename" password="somepw" <description> <![CDATA[ This connection is used when the Veridata agent connects to the source. ]]> </description> </connection> . . . </configuration>
enscribe-info
要素では、NonStop Enscribeレコードをフィールド・レベルで比較するのに使用される追加情報を指定します。
次の要素は、enscribe-info
要素内にネストできます。
次の属性では、enscribe-info
要素について説明します。
enscribe-key
要素では、Enscribeファイルに使用されるキーを定義します。enscribe-key
要素には、ネストされた要素またはテキスト・データがありません。
次の属性では、enscribe-key
要素について説明します。
expandddl
要素では、DDLの適用時に使用されるルールを説明します。
次の属性では、expandddl
要素について説明します。
表5-11 expandddl属性
属性 | 説明 |
---|---|
expandGroupArrays |
グループ配列を展開するかどうか。オプションは次のとおりです。
|
redefined-columns |
再定義された列を含めるかどうか。オプションは次のとおりです。
|
resolvedups |
配列が展開された場合の重複を解決する方法を指定します。オプションは次のとおりです。
|
ddl-separator |
列への配列出力を定義する区切り文字。たとえば、FIELDX-3に使用されるダッシュがあります(配列内で3番目に出現する
|
zero-fill-length |
先頭にゼロを追加して、発生回数を調整します。値は、引用符で囲まれた桁数です。"0"がデフォルトです。 |
fix-long-names |
|
max-col-name-length |
列名に許可される最大長。エントリは、引用符内の数です。デフォルトは |
group
要素では、すべて同じソースおよびターゲット・データベース接続の比較ペアのセットを定義します。これらの比較ペアには、共通するその他のプロパティも含まれます。
次の要素は、group
要素内にネストできます。
表5-12 group要素
要素 | 説明 |
---|---|
description |
グループの説明を指定します。 |
partition |
グループ内のすべての比較ペアに適用されるOracle GoldenGate Veridataパーティションを定義します。パーティションにより、データのサブセットが指定されます。 |
compare-pair |
1つ以上の比較ペアを定義します。 |
次の属性では、group
要素について説明します。
表5-13 group属性
属性 | 説明 |
---|---|
name |
グループを識別する名前。この値は必須です。 |
source-conn |
ソース・データベースへの接続の名前。これは、GoldenGate Veridataリポジトリの既存の接続、またはこの構成で前に定義した接続を参照できます。この属性は、リポジトリの既存の接続を参照する場合に必要です。 |
target-conn |
ターゲット・データベースへの接続の名前。これは、GoldenGate Veridataリポジトリの既存の接続、またはこの構成で前に定義した接続を参照できます。この属性は、リポジトリの既存の接続を参照する場合に必要です。 |
source-schema |
グループを構成する比較ペアで参照されるソース表のデフォルトのスキーマの名前。 |
target-schema |
グループを構成する比較ペアで参照されるターゲット表のデフォルトのスキーマの名前。 |
|
このグループで参照されるソース表のデフォルトのカタログ。 |
|
このグループで参照されるターゲット表のデフォルトのカタログ。 |
|
構成に使用される検証のタイプを指定します。オプションは次のとおりです。 " " "
|
|
ソースのデフォルトのファイル・パターン(データ・ソースがEnscribeまたはSQL/MPの場合)。 |
|
ターゲットのデフォルトのファイル・パターン(データ・ターゲットがEnscribeまたはSQL/MPの場合)。 |
例
質問: グループに対して何を定義する必要がありますか?
<group name="weekly-tables" source-conn="source" target-conn"="target"> <description> . . . </description> <partition> . . . </partition> <compare-pair> . . . </compare-pair> </group>
job
要素では、Oracle GoldenGate Veridata比較ジョブを定義します。
次の要素は、job
要素内にネストできます。
次の属性では、job
要素について説明します。
表5-15 job属性
属性 | 説明 |
---|---|
name |
ジョブを識別する名前。これは必須の属性です。 |
source-conn |
ソース・データベースへの接続の名前。これは、GoldenGate Veridataリポジトリの既存の接続、またはこの構成で前に定義した接続を参照できます。この属性は、リポジトリの既存の接続を参照する場合に必要です。 ジョブ |
target-conn |
ターゲット・データベースへの接続の名前。これは、GoldenGate Veridataリポジトリの既存の接続、またはこの構成で前に定義した接続を参照できます。この属性は、ジョブに含まれるグループに指定したターゲット接続の上書きに使用されます。 |
profile |
ジョブを実行する場合に使用するデフォルト・プロファイル。 |
例
質問:
<job name="all-groups" profile="server-sort"> <group name="all-tables"/> <group name="selected-tables"/> </job>
partition
要素は、比較される表のサブセットを定義します。
次の要素は、partition
要素内にネストできます。
表5-16 partition要素
要素 | 説明 |
---|---|
|
ソースとターゲットの初期比較問合せに適用されたwhere句で使用されるブールSQL式。 |
|
ソースの初期比較問合せに適用されたwhere句で使用されるブールSQL式。 |
|
ターゲットの初期比較問合せに適用されたwhere句で使用されるブールSQL式。 |
|
Enscribeファイルの比較時に、ソースファイルとターゲットファイルに適用されるEnscribeキー値。 |
|
Enscribeファイルの比較時に、ソースファイルに適用されるEnscribeキー値。 |
|
Enscribeファイルの比較時に、ターゲットファイルに適用されるEnscribeキー値。 |
次に示すのは、partition
要素について説明する属性です。
表5-17 partition属性
属性 | 説明 |
---|---|
name |
パーティションを識別する名前。これは必須の属性です。 |
type |
使用される選択のタイプを示します。オプションは次のとおりです。
|
default |
これが、実行時に比較ペアに自動で適用される、デフォルトのパーティションかどうかを示します。これは、Oracle GoldenGate Veridata Webユーザー・インタフェースの"use at run time"オプションに対応します。オプションは次のとおりです。 "true" - これがデフォルトのパーティションです。 "false" - これはデフォルトのパーティションではありません。これは、デフォルト値です。 |
例
質問: この結果はどうなりますか?別の例が必要ですか?
<partition name="replicate" type="sql" default="true"> <source-query> "replicated" =apos;false' </source-query> <target-query> "replicated" =apos;true' </target-query> </partition>