ヘッダーをスキップ
Oracle® GoldenGate Oracle GoldenGateの管理for Windows and UNIX
12c (12.1.2)
E49846-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 Oracle GoldenGateプロセス・インタフェースのスタート・ガイド

この章では、Oracle GoldenGateユーザーが、GGSCI(Oracle GoldenGateソフトウェア・コマンド・インタフェース)、バッチ・スクリプトとシェル・スクリプトおよびパラメータ・ファイル経由で、プロセスに指示を送る方法について説明します。

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

4.1 GGSCIコマンドライン・インタフェースの使用

GGSCIは、Oracle GoldenGateのコマンドライン・インタフェースです。GGSCIを使用して、Oracle GoldenGateを構成、制御および監視する全種類のコマンドを発行できます。

GGSCIを起動するには、ディレクトリをOracle GoldenGateインストール・ディレクトリに変更してから、ggsci実行可能ファイルを実行します。

Oracle GoldenGateコマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.1.1 コマンド引数でのワイルドカードの使用

一部のOracle GoldenGateコマンドでワイルドカードを使用して、複数のExtractグループおよびReplicatグループを1つの単位として制御できます。Oracle GoldenGateでサポートされるワイルドカード記号は、アスタリスク(*)です。アスタリスクは、任意の数の文字を表します。たとえば、名前に文字Xを含むすべてのExtractグループを起動するには、次のコマンドを発行します。

START EXTRACT *X*

4.1.2 コマンド・インタフェースのグローバリゼーション・サポート

コマンド入力と関連のコンソール出力はすべて、ローカル・オペレーティング・システムのデフォルト・キャラクタ・セットで表示されます。ローカル・オペレーティング・システムのキャラクタ・セットと互換性のない文字を指定するには、Unicode表記法を使用します。たとえば、次のUnicode表記は、名前にユーロ記号が含まれている表名に相当します。

ADD TRANDATA \u20AC1

Unicode表記の使用方法の詳細は、12.5.3項を参照してください。


注意:

Oracle GoldenGateのグループ名は大/小文字が区別されません。

4.1.3 コマンド履歴の使用

次のツールを使用すると、複数のコマンドを簡単に実行できます。

  • 以前実行したコマンドのリストを表示するには、HISTORYコマンドを使用します。

  • 以前のコマンドを編集せずに再実行するには、!コマンドを使用します。

  • 以前のコマンドを編集してから再実行するには、FCコマンドを使用します。

4.1.4 よく使用するコマンド・シーケンスの保存と呼出し

よく使用する一連のコマンドは、OBEYファイルおよびOBEYコマンドを使用して自動化できます。OBEYファイルでは、ローカル・オペレーティング・システムのキャラクタ・セットが認識されます。そのキャラクタ・セットと互換性のない文字を指定するには、Unicode表記法を使用します。Unicode表記法の使用方法の詳細は、12.5.3項を参照してください。

OBEYを使用する手順

  1. 1行に1つのコマンドを含むテキスト・ファイルを作成して保存します。これがユーザーのOBEYファイルになります。オペレーティング・システムでサポートされる任意の名前を指定します。OBEYファイル内に他のOBEYファイルをネストできます。

  2. GGSCIを実行します。

  3. (オプション)ネストしたOBEYファイルを含むOBEYファイルを使用する場合、次のコマンドを発行します。このコマンドによって、GGSCIの現在のセッションでネストしたOBEYファイルを使用できるようになります。ネストしたOBEYファイルを使用する場合、常にこのコマンドが必要です。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

    ALLOWNESTED
    
  4. GGSCIで、OBEYコマンドを使用してOBEYファイルを呼び出します。

    OBEY file_name
    

    説明:

    file_nameは、OBEYファイルの相対名または完全修飾名です。

次の例は、OBEYコマンドと組み合せて使用するOBEYコマンド・ファイルを示しています。これによって、ExtractグループおよびReplicatグループが作成されて起動され、処理情報が取得されます。

例4-1 OBEYコマンド・ファイル

ADD EXTRACT myext, TRANLOG, BEGIN now
START EXTRACT myext

ADD REPLICAT myrep, EXTTRAIL /ggs/dirdat/aa
START REPLICAT myrep

INFO EXTRACT myext, DETAIL
INFO REPLICAT myrep, DETAIL

OBEYコマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.2 Oracle GoldenGateプロセスの制御

Oracle GoldenGateプロセスを制御する標準の方法は、GGSCIインタフェースを介する方法です。通常、Oracle GoldenGateプロセスが本番設定で初めて起動されるのは、初期同期プロセス(インスタンス化プロセスとも呼ばれる)時です。ただし、メンテナンス、アップグレード、トラブルシューティングなどの各種タスクを実行する場合は、必要に応じてプロセスを停止したり再起動する必要があります。

ここでは基本的な構文について説明しています。その他の使用可能な構文については、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.2.1 Managerの制御

レプリケーション処理を停止する場合を除き、Managerを停止しないでください。

Managerを停止する手順

  1. Oracle GoldenGateディレクトリからGGSCIを実行します。

  2. GGSCIで、次のコマンドを発行します。

    {START | STOP [!]} MANAGER

    説明:

    !では、Managerを停止するかどうかを確認するプロンプトを回避します。


注意:

Windows Server 2008でユーザー・アカウント制御を有効にした状態でコマンドラインまたはGGSCIからManagerを起動すると、プログラム実行の許可または拒否を求めるUACプロンプトが表示されます。

4.2.2 ExtractおよびReplicatの制御

この項では、ExtractプロセスとReplicatプロセスを制御する基本的な方法について説明します。その他のコマンド・オプションは、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

ExtractまたはReplicatを起動する手順

START {EXTRACT | REPLICAT} group_name

説明:

group_nameは、ExtractまたはReplicatグループの名前か、またはグループのワイルドカード・セット(*fin*など)です。

ExtractまたはReplicatを正常に停止する手順

STOP {EXTRACT | REPLICAT} group_name

説明:

group_nameは、ExtractまたはReplicatグループの名前か、またはグループのワイルドカード・セット(*fin*など)です。

Replicatを強制的に停止する手順

STOP REPLICAT group_name !

現在のトランザクションは中断され、プロセスは即座に停止されます。Extractを強制的に停止することはできません。

STOPで停止できないプロセスを強制終了する手順

KILL {EXTRACT | REPLICAT} group_name

プロセスを強制終了すると正常な停止は行われず、チェックポイント情報が失われる可能性があります。

複数のプロセスを同時に制御する手順

command ER wildcard specification

説明:

  • commandは、KILLSTARTまたはSTOPです。

  • wildcard specificationは、コマンドを適用するプロセス・グループの名前のワイルドカード指定です。コマンドは、ワイルドカードに適合するすべてのExtractおよびReplicatグループに適用されます。Oracle GoldenGateでは、最大100,000個のワイルドカード・エントリがサポートされます。

4.2.3 ExtractおよびReplicatの削除

この項では、ExtractプロセスとReplicatプロセスを削除する基本的な方法について説明します。その他のコマンド・オプションは、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

Extractグループを削除する手順

  1. GGSCIを実行します。

  2. Extractデータベース・ユーザー(または同じ権限を持つユーザー)としてDBLOGINコマンドを発行します。ローカル資格証明ストアの有無に応じて、次のいずれかのコマンドを使用できます。

    DBLOGIN [SOURCEDB dsn] {USERID user, PASSWORD password [encryption_options] | USERIDALIAS alias [DOMAIN domain]}
    
  3. Extractプロセスを停止します。

    STOP EXTRACT group_name

  4. 次のコマンドを発行します。

    DELETE EXTRACT group_name

  5. (Oracle)Extractグループをデータベースから登録解除します。

    UNREGISTER EXTRACT group_name{DATABASE [CONTAINER (container[, ...])] | LOGRETENTION}
    

Replicatグループを削除する手順

  1. Replicatプロセスを停止します。

    STOP REPLICAT group_name

  2. GGSCIで次のいずれかのコマンドを発行して、データベースにログインします。

    DBLOGIN [SOURCEDB dsn] {USERID user, PASSWORD password [encryption_options] | USERIDALIAS alias [DOMAIN domain]}
    

    説明:

    • SOURCEDB dsnでは、データソース名を指定します(接続情報の一部として必要な場合)。

    • USERID userPASSWORD passwordでは、データベース・ログイン資格証明を明示的に指定します。

    • USERIDALIAS alias [DOMAIN domain]では、ローカル資格証明ストアに格納されている資格証明の別名と(オプションで)ドメインを指定します。

    • encryption_optionsでは、パスワードを暗号化するオプションの1つを指定します。

  3. 次のコマンドを発行してグループを削除します。

    DELETE REPLICAT group_name

Replicatグループを削除しても、チェックポイント表のチェックポイントは保持されます(使用されている場合)。プロセス・グループを削除しても、パラメータ・ファイルは失われません。同じパラメータ・ファイルを使用して同じグループを再作成できます。また、パラメータ・ファイルを削除して、グループの構成を完全に削除することもできます。

4.3 コマンドの自動化

Oracle GoldenGateは、スクリプトまたはジョブを介したコマンドの発行をサポートしています。この項では、UNIXベースまたはLinuxベースのプラットフォームおよびIBMiプラットフォームでのこれらのオプションについて説明します。

UNIXシステムまたはLinuxシステム、あるいはUNIXまたはLinuxアプリケーションをサポートするランタイム環境では、GGSCIを実行して入力ファイルを呼び出すことで、起動スクリプト、停止スクリプト、フェイルオーバー・スクリプトなどのスクリプトからOracle GoldenGateコマンドを発行できます。スクリプト・ファイルは、オペレーティング・システムのキャラクタ・セットでエンコードされている必要があります。オペレーティング・システムのキャラクタ・セットがサポートしていない文字には、Unicode表記法を使用できます。スクリプトを作成する前に、4.1.2項「コマンド・インタフェースのグローバリゼーション・サポート」を参照してください。

スクリプトを入力する手順

オペレーティング・システムのコマンドラインから次の構文を使用します。

ggsci < input_file

説明:

  • 山カッコ(<)文字によりファイルがGGSCIプログラムに渡されます。

  • input_fileは、発行するコマンドが発行順に含まれた、OBEYファイルと呼ばれるテキスト・ファイルです。

Oracle GoldenGateコマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。


注意:

バッチ・ファイルからManagerプロセスを停止するには、必ずSTOP MANAGERコマンドの最後に!引数を追加してください。そうしないと、GGSCIによってレスポンスを要求するプロンプトが発行され、プロセスがループに陥ります。Managerを停止する方法の詳細は、3.8項を参照してください。

4.3.1 IBM i CLIを介したコマンドの発行

Oracle GoldenGate for IBM DB2 for iには、ごく一般的なOracle GoldenGateプログラムの操作をIBM iコマンドライン・インタフェース(CLI)から操作できるようにする一連のネイティブIBM iコマンドが組み込まれています。これらのコマンドはネイティブであるため、PASE環境から実行する必要はありません。このサポートにより、コマンドを対話型で発行することも、一般的なジョブ発行ツール(SBMJOBなど)を使用してOracle GoldenGateを非対話型で操作することもできます。

コマンドは次のとおりで、同名のOracle GoldenGateプログラムに対応しています。これらはOracle GoldenGateインストール・ライブラリ内にあります。

DEFGEN

EXTRACT

GGSCI

KEYGEN

LOGDUMP

MGR

REPLICAT

これらのコマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.4 Oracle GoldenGateパラメータ・ファイルの使用

ほとんどのOracle GoldenGate機能は、パラメータ・ファイルに指定されたパラメータによって制御されます。パラメータ・ファイルは、関連するOracle GoldenGateプロセスによって読み取られるプレーン・テキスト・ファイルです。Oracle GoldenGateでは、GLOBALSファイルとランタイム・パラメータ・ファイルという2種類のパラメータ・ファイルが使用されます。

4.4.1 パラメータ・ファイルのグローバリゼーション・サポート

Oracle GoldenGateでは、ローカル・オペレーティング・システムのデフォルト・キャラクタ・セットでパラメータ・ファイルが作成されます。ローカル・プラットフォームで、必要なキャラクタ・セットがオペレーティング・システムのデフォルトとしてサポートされていない場合は、CHARSETパラメータをグローバルに、またはプロセス単位で使用して、パラメータ・ファイルのキャラクタ・セットを指定できます。

キャラクタ・セットの非互換性による問題を回避するため、パラメータ・ファイルは、関連プロセスが実行されるサーバーで作成または編集します。あるシステム(Windowsラップトップなど)で作成したファイルを、Oracle GoldenGateがインストールされている、オペレーティング・システムのキャラクタ・セットが異なるUNIXサーバーに転送するのは避けてください。Oracle GoldenGateには、パラメータ・ファイルを別のシステムで作成する必要がある場合に、キャラクタ・セットの非互換性の問題を解決するためのツールがいくつか用意されています。

  • CHARSETパラメータを使用すると、互換性のあるキャラクタ・セットをパラメータ・ファイルに指定できます。このパラメータは、指定したキャラクタ・セットでファイルを記述できるようにするもので、パラメータ・ファイルの1行目に置く必要があります。ファイルを別のシステムに転送したら、そのシステムでは編集しないでください。

  • ファイルが使用されるオペレーティング・システムのキャラクタ・セットと互換性のない文字には、Unicode表記法を代用できます。Unicode表記法の詳細は、12.5.3項を参照してください。

CHARSETパラメータの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.4.2 GLOBALSファイルの操作

GLOBALSファイルには、Oracle GoldenGateインスタンス全体に関連するパラメータが格納されます。これは、Extractなどの特定のプロセスと関連付けられているランタイム・パラメータとは対照的です。GLOBALSファイルのパラメータは、Oracle GoldenGateインスタンスのすべてのプロセスに適用されますが、特定のプロセスのパラメータによって上書きされることがあります。GLOBALSパラメータ・ファイルは、Oracle GoldenGate環境に必要な場合と必要でない場合があります。

GLOBALSを使用する場合、GGSCIなどのOracle GoldenGateプロセスを起動する前にこのファイルが存在している必要があります。GGSCIプログラムは、GLOBALSファイルを読み取って、各パラメータを適切なプロセスに渡します。

GLOBALSファイルを作成する手順

  1. Oracle GoldenGateのインストール場所から、GGSCIを実行して次のコマンドを入力するか、テキスト・エディタでファイルを開きます。

    EDIT PARAMS ./GLOBALS
    

    注意:

    GLOBALSファイルはOracle GoldenGateインストール・ファイルのルートにあるため、このコマンドの./の部分を使用する必要があります。

  2. ファイルにGLOBALSパラメータを1行に1つずつ入力します。

  3. ファイルを保存します。テキスト・エディタを使用した場合、Oracle GoldenGateのインストール・ディレクトリのルートにGLOBALS(大文字、ファイル拡張子なし)という名前でファイルを保存します。GGSCIで正しく作成すると、ファイルは自動的にこの形式で保存されます。このファイルは移動しないでください。

  4. GGSCIを終了します。コマンドを発行する前に、またはGLOBALSファイルを参照するプロセスを起動する前に、新規GGSCIセッションを開始する必要があります。

4.4.3 ランタイム・パラメータの操作

ランタイム・パラメータによって、次のようなOracle GoldenGateの同期の様々な機能を制御します。

  • データの選択、マッピング、変換およびレプリケーション

  • DDLおよび順序の選択、マッピングおよびレプリケーション(サポートされる場合)

  • エラーの解決

  • ロギング

  • ステータスおよびエラーのレポート

  • システム・リソースの使用方法

  • 起動時および実行時の動作

Managerプロセスまたは1つのExtract (あるいはReplicat)グループに対するアクティブなパラメータ・ファイルは1つのみです。ただし、OBEYパラメータを使用することで、他のファイルのパラメータを使用できます。パラメータ・ファイルの使用を簡略化する方法の詳細は、4.4.8項を参照してください。

パラメータには、次のようにグローバル・パラメータ(GLOBALSパラメータとは異なります)とオブジェクト固有パラメータの2種類があります。

  • グローバル・パラメータは、パラメータ・ファイルに指定されているすべてのデータベース・オブジェクトに適用されます。たとえば、プロセスの動作に影響するパラメータや、メモリー使用率などの機能に影響するパラメータがあります。例4-2および例4-3USERIDALIASは、グローバル・パラメータの例です。ほとんどの場合、グローバル・パラメータは、ファイル内でデータベース・オブジェクトを指定するパラメータ(たとえば、例4-2および例4-3TABLE文やMAP文)より前の任意の場所に指定できます。グローバル・パラメータは、ファイル内で1回のみリストされる必要があります。複数回リストされると、最後のインスタンスのみがアクティブになり、他のすべてのインスタンスは無視されます。

  • オブジェクト固有パラメータでは、データベース・オブジェクトの異なるセットに対して異なる処理ルールを適用できます。例4-3GETINSERTSおよびIGNOREINSERTSは、オブジェクト固有パラメータの例です。どちらのパラメータも、影響を受けるオブジェクトを指定するMAP文の前にあります。オブジェクト固有パラメータは、ファイルにリストされている順序で有効になります。

例4-2例4-3に、ExtractおよびReplicatの基本パラメータ・ファイルの例を示します。コメントの先頭にはハイフンが2つ付いています。

例4-2 Extractのサンプル・パラメータ・ファイル

-- Extract group name
EXTRACT capt
-- Extract database user login, with alias to credentials in the credential store.
USERIDALIAS ogg1
-- Remote host to where captured data is sent in encrypted format:
RMTHOSTOPTIONS sysb, MGRPORT 7809, ENCRYPT AES192 KEYNAME mykey
-- Encryption specification for trail data
ENCRYPTTRAIL AES192
-- Remote trail on the remote host
RMTTRAIL /ggs/dirdat/aa
-- TABLE statements that identify data to capture.
TABLE FIN.*;
TABLE SALES.*;

前述の例は、大/小文字が区別されないOracleデータベースを反映したもので、オブジェクト名がTABLE文に大文字で指定されています。大/小文字が区別されないOracleデータベースの場合、パラメータ・ファイルに名前をどのように入力しても(大文字でも、小文字でも、大文字と小文字が混在していても)違いは生じません。他のデータベースの場合は、オブジェクト名の大/小文字が問題になることがあります。オブジェクト名の指定の詳細は、4.5項を参照してください。

例4-3 Replicatのサンプル・パラメータ・ファイル

-- Replicat group name
REPLICAT deliv
-- Replicat database user login, with alias to credentials in the credential store
USERIDALIAS ogg2
-- File containing definitions of source objects
SOURCEDEFS /ggs/dirdef/defs
-- Error handling rules
REPERROR DEFAULT, ABEND
-- Ignore INSERT operations
IGNOREINSERTS
-- MAP statement to map source objects to target objects and
-- specify column mapping
MAP "fin"."accTAB", TARGET "fin"."accTAB",
COLMAP ("Account" = "Acct",
"Balance" = "Bal",
"Branch" = "Branch");
-- Get INSERT operations
GETINSERTS
-- MAP statement to map source objects to target objects and
-- filter to apply only the 'NY' branch data.
MAP "fin"."teller", TARGET "fin"."tellTAB",
WHERE ("Branch" = 'NY');

例4-3に示したReplicatのサンプルでの一重引用符と二重引用符の使用方法に注意してください。オブジェクト名の大/小文字を区別するには引用符が必要になるデータベース(Oracleなど)の場合、大/小文字が区別されるオブジェクト名はパラメータ・ファイルでも二重引用符で囲む必要があります。大/小文字が区別されるその他のデータベースでは、データベースに保存されているとおりに名前を指定します。名前およびリテラルの指定方法の詳細は、4.5項を参照してください。

4.4.4 パラメータ・ファイルの作成

パラメータ・ファイルをオペレーティング・システムのキャラクタ・セットで記述する場合はGGSCIの使用をお薦めしますが、CHARSETパラメータを使用して別のキャラクタ・セットでファイルを記述する場合は、GGSCIのかわりにテキスト・エディタを使用してください。CHARSETパラメータの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.4.4.1項「GGSCIでパラメータ・ファイルを作成する方法」

4.4.4.2項「テキスト・エディタでパラメータ・ファイルを作成する方法」

4.4.4.1 GGSCIでパラメータ・ファイルを作成する方法

パラメータ・ファイルを作成するには、GGSCIユーザー・インタフェース内でEDIT PARAMSコマンドを使用するか、テキスト・エディタを直接使用します。GGSCIを使用する場合、標準のテキスト・エディタを使用しますが、パラメータ・ファイルは正しいファイル名で適切なディレクトリに自動的に保存されます。

GGSCIのEDIT PARAMSを使用してパラメータ・ファイルを作成すると、Oracle GoldenGateディレクトリのdirprmサブディレクトリに保存されます。dirprm以外のディレクトリにパラメータ・ファイルを作成することは可能ですが、プロセス・グループの作成時にもADD EXTRACTまたはADD REPLICATコマンドのPARAMSオプションでそのフルパス名を指定する必要があります。パラメータ・ファイルは、ExtractグループまたはReplicatグループに一度関連付けたら、処理の開始後にOracle GoldenGateを適切に動作させるため、元の場所から移動しないでください。

EDIT PARAMSコマンドによって、GGSCIインタフェース内で次のテキスト・エディタが起動されます。

  • Microsoft Windowsシステムの場合、メモ帳

  • UNIXおよびLinuxシステムの場合、viエディタSSHまたはxtermに接続されている場合、DB2 for iはviのみをサポートします。詳細は、4.4.4.2項を参照してください。


    注意:

    GGSCIインタフェースを通じてデフォルト・エディタを変更するには、SET EDITORコマンドを使用します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

  1. Oracle GoldenGateがインストールされているディレクトリからGGSCIを実行します。

  2. GGSCIで、次のコマンドを発行してデフォルトのテキスト・エディタを起動します。

    EDIT PARAMS group_name
    

    説明:

    group_nameは、mgr(Managerプロセスの場合)か、ファイルを作成するExtractグループまたはReplicatグループの名前です。ExtractまたはReplicatのパラメータ・ファイルの名前は、プロセス・グループの名前と同じである必要があります。

    次のコマンドでは、extoraという名前のExtractグループのパラメータ・ファイルを作成または編集します。

    EDIT PARAMS extora
    

    次のコマンドでは、Managerプロセスのパラメータ・ファイルを作成または編集します。

    EDIT PARAMS MGR
    
  3. テキスト・エディタの編集機能を使用して、このファイルを説明するコメント行を必要な数だけ入力します(各コメント行の先頭には必ず2つのハイフン(--)を挿入してください)。

  4. コメント以外の行に、Oracle GoldenGateのパラメータを入力します(パラメータ文ごとに新しい行を開始します)。

    Oracle GoldenGateのパラメータの構文は次のとおりです。

    PARAMETER_NAME argument [, option] [&]
    

    説明:

    • PARAMETER_NAMEは、パラメータの名前です。

    • argumentは、パラメータの必須引数です。一部のパラメータには引数がありますが、その他のパラメータにはありません。引数間のカンマはオプションです。

      EXTRACT myext
      USERIDALIAS ogg1
      RMTHOSTOPTIONS sysb, MGRPORT 8040, ENCRYPT AES192 KEYNAME mykey
      ENCRYPTTRAIL AES 192
      RMTTRAIL /home/ggs/dirdat/c1, PURGE
      CUSEREXIT userexit.dll MyUserExit, INCLUDEUPDATEBEFORES, PASSTHRU, &
        PARAMS "init.properties"
      TABLE myschema.mytable;
      
    • [, option]は、オプション引数です。

    • [&]は、前述の例のCUSEREXITパラメータ文のように、複数行にわたるパラメータ文の各行の最後に必要です。ただし、次のものはセミコロンで終わるため、アンパサンドの指定は可能ですが必須ではなく、例外となります。

      • MAP

      • TABLE

      • SEQUENCE

      • FILE

      • QUERY


    注意:

    RMTHOSTおよびRMTHOSTOPTIONSパラメータを一緒に指定できます。動的IP割当てが適切に構成されている場合、RMTHOSTパラメータはRMTHOSTOPTIONSに必要ではありませんRMTHOSTOPTIONSが使用されている場合、MGRPORTオプションは無視されます。

  5. ファイルを保存して閉じます。

4.4.4.2 テキスト・エディタでパラメータ・ファイルを作成する方法

テキスト・エディタを使用してGGSCIの外部でパラメータ・ファイルを作成できますが、次の点に注意してください。

  • パラメータ・ファイルは、そのファイルを所有するExtractグループまたはReplicatグループの名前で保存するか、そのファイルをManagerプロセスが所有する場合はmgrという名前で保存します。.prmというファイル拡張子を使用します。たとえば、extfin.prmmgr.prmのようになります。

  • パラメータ・ファイルは、Oracle GoldenGateのインストール・ディレクトリのdirprmディレクトリに保存します。

  • DB2 for iシステムの場合は、SEUまたはEDTFを使用して、5250端末からパラメータ・ファイルを編集できます。SEUを使用する場合は、CPYTOSTMFコマンドを使用してファイルをコピーし、CCSID 1208のエンコーディングおよび*LFの行末を指定する必要があります。F15 (サービス)からEDTFで編集する場合は、ファイルのCCSIDを1208、EOLオプションを*LFに変更する必要があります。

    または、IBM Portable Application Solutions Environment for iからRfileコマンドを使用できます。

4.4.5 パラメータ・ファイルの検証

ExtractまたはReplicatのパラメータ・ファイルに含まれるパラメータの構文の正確性をチェックできます。このプロセスは、ExtractまたはReplicatで使用できます。

パラメータの構文を検証する手順

  1. パラメータ・ファイルにCHECKPARAMSパラメータを含めます。

  2. GGSCIでSTART EXTRACTまたはSTART REPLICATコマンドを発行して、関連するプロセスを起動します。

    START {EXTRACT | REPLICAT} group_name
    

    プロセスは、構文を検査して結果をレポート・ファイルまたは画面に出力してから停止します。

  3. 次のいずれかの操作を実行します。

    • 構文が正しい場合、プロセスを起動してデータを処理する前にCHECKPARAMSパラメータを削除します。

    • 構文が間違っている場合、レポートの結果に基づいて該当箇所を修正します。必要に応じて、もう1回テストを実行して変更内容を検証できます。プロセスを起動してデータを処理する前に、CHECKPARAMSを削除します。

レポート・ファイルの詳細は、第18章を参照してください。

CHECKPARAMSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.4.6 パラメータ・ファイルの表示

パラメータ・ファイルは、オペレーティング・システムのコマンド・シェルから直接表示するか、GGSCIユーザー・インタフェースから表示することができます。GGSCIからファイルを表示するには、VIEW PARAMSコマンドを使用します。

VIEW PARAMS group_name

説明:

group_nameは、mgr(Managerの場合)か、パラメータ・ファイルに関連付けられたExtractグループまたはReplicatグループの名前です。


注意:

キャラクタ・セットがローカル・オペレーティング・システムのものとは異なる既存のパラメータ・ファイル(CHARSETオプションを使用して別のキャラクタ・セットを指定したファイルなど)は、VIEW PARAMSを使用して表示しないでください。内容が破損する可能性があります。そのようなパラメータ・ファイルは、GGSCIの外部で表示してください。

パラメータ・ファイルがOracle GoldenGateディレクトリのdirprmサブディレクトリ以外の場所に作成されている場合、次の例のようにフルパス名を指定します。

VIEW PARAMS c:\lpparms\replp.prm

4.4.7 パラメータ・ファイルの変更

Oracle GoldenGateプロセスは、パラメータ・ファイルの変更前に停止して、パラメータ・ファイルの保存後に再起動する必要があります。プロセスの実行中にパラメータ設定を変更すると、特に表を追加する場合やマッピング・ルールまたはフィルタリング・ルールを変更する場合に予期しない結果が発生する可能性があります。


注意:

ローカル・オペレーティング・システムのものとは異なるキャラクタ・セットを使用した既存のパラメータ・ファイル(CHARSETオプションを使用して別のキャラクタ・セットを指定したファイルなど)は、EDIT PARAMSコマンドを使用して表示や編集を行わないでください。内容が破損する可能性があります。そのようなパラメータ・ファイルは、GGSCIの外部で表示してください。

パラメータを変更する手順

  1. GGSCIで次のコマンドを発行して、プロセスを停止します。WindowsクラスタでManagerを停止する場合は、クラスタ・アドミニストレータを使用します。

    STOP {EXTRACT | REPLICAT | MANAGER} group_name
    
  2. テキスト・エディタまたはGGSCIのEDIT PARAMSコマンドを使用してパラメータ・ファイルを開きます。

    EDIT PARAMS mgr
    
  3. ファイルを編集して保存します。

  4. GGSCIで次のコマンドを発行して、プロセスを起動します。WindowsクラスタでManagerを起動する場合は、クラスタ・アドミニストレータを使用します。

    START {EXTRACT | REPLICAT | MANAGER} group_name
    

4.4.8 パラメータ・ファイルの作成の簡略化

次の時間節約ツールを使用することで、パラメータを指定する回数を減らすことができます。

4.4.8.1 ワイルドカードの使用

オブジェクト名を使用するパラメータの場合、アスタリスク(*)および疑問符(?)のワイルドカードを使用できます。ワイルドカードを使用することで、多数のオブジェクト名または特定のスキーマ内のすべてのオブジェクトを指定する必要がなくなります。ワイルドカードの使用方法の詳細は、4.5.6項を参照してください。

4.4.8.2 OBEYの使用

よく使用するパラメータ設定が含まれるテキスト・ファイルのライブラリを作成し、その後、OBEYパラメータを使用して、アクティブなパラメータ・ファイルからそれらのファイルを呼び出すことができます。OBEYの構文は次のとおりです。

OBEY file_name

説明:

file_nameは、ファイルの相対名またはフルパス名です。

Oracle GoldenGateは、アクティブなパラメータ・ファイル内でOBEYパラメータを検出すると、その参照先ファイルのパラメータを処理してから、アクティブなファイルに戻って残りのパラメータを処理します。GLOBALSパラメータ・ファイルではOBEYはサポートされていません。

OBEYパラメータを含むパラメータ・ファイルでCHARSETパラメータを使用する場合、参照先のパラメータ・ファイルはCHARSETのキャラクタ・セットを継承しません。CHARSETのキャラクタ・セットは参照先ファイル内のワイルドカードを使用したオブジェクト名の読取りに使用しますが、参照先ファイルにおけるその他すべてのマルチバイト指定については、エスケープ・シーケンス(\uX)を使用する必要があります。

OBEYの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

CHARSETの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.4.8.3 マクロの使用

マクロを使用して、パラメータ文を自動的に複数回使用できます。詳細は、17.2項「Oracle GoldenGateマクロを使用した作業の簡略化および自動化」を参照してください。

4.4.8.4 パラメータ置換の使用

パラメータ置換を使用すると、パラメータ・ファイルの作成時に静的な値を割り当てるかわりに、実行時に自動的にOracle GoldenGateのパラメータに値を割り当てることができます。この方法であれば、実行ごとに値が変化する場合に、パラメータ・ファイルを編集したり、異なる設定を含む複数のファイルを管理する必要がなくなります。必要な値は、実行時に簡単にエクスポートできます。パラメータ置換は、任意のOracle GoldenGateプロセスで使用できます。

パラメータ置換を使用する手順

  1. 置換を実行する各パラメータに対して、値のかわりにランタイム・パラメータを宣言します。次の例のように、ランタイム・パラメータ名の前に疑問符(?)を付けます。

    SOURCEISFILE
    EXTFILE ?EXTFILE
    MAP ?TABNAME, TARGET ACCOUNT_TARG;
    
  2. Oracle GoldenGateプロセスを起動する前に、オペレーティング・システムのシェルを使用して、環境変数を通じてランタイム値を渡します(例4-4および例4-5を参照)。

例4-4 Windowsでのパラメータ置換

C:\GGS> set EXTFILE=C:\ggs\extfile
C:\GGS> set TABNAME=PROD.ACCOUNTS
C:\GGS> replicat paramfile c:\ggs\dirprm\parmfl

例4-5 UNIX(Kornシェル)でのパラメータ置換

$ EXTFILE=/ggs/extfile
$ export EXTFILE
$ TABNAME=PROD.ACCOUNTS
$ export TABNAME
$ replicat paramfile ggs/dirprm/parmfl

UNIXでは、大/小文字が区別されるため、大/小文字の使用については、パラメータ・ファイルのパラメータ宣言とシェルの変数割当てで同じである必要があります。

4.4.9 Oracle GoldenGateのパラメータに関する情報の取得

Oracle GoldenGateのパラメータの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.5 Oracle GoldenGateの入力におけるオブジェクト名の指定

パラメータ・ファイル(TABLE文、MAP文など)、列変換関数、コマンド、その他の入力でオブジェクト名を指定する際には、次のルールが適用されます。

サポートされるデータベース・オブジェクト名

データベース・オブジェクト名の修飾

大/小文字が区別されるデータベース・オブジェクト名の指定

データベース・オブジェクト名でのワイルドカードの使用

大/小文字が区別される列名とリテラルの区別

4.5.1 Windowsシステムでのパラメータ・ファイルでのファイルシステム・パス名の指定

Windowsシステムでは、ファイルシステム・パス名のディレクトリの名前が数字で始まる場合、Oracle GoldenGate入力(パラメータ・ファイルやコマンドなど)にそのパスをリストするときに、パスをバックスラッシュでなくスラッシュで指定する必要があります。これにより、Oracle GoldenGateでその名前が8進エスケープ・シーケンスとして解釈されることを回避します。たとえば、次のパスには、8進シーケンス\201として解釈される\2014という名前のディレクトリが含まれています。

C:\ogg\2014\install\dirdat\aa
C:\ogg\install\2014\dirdat\aa

前出のパスは、次のようにスラッシュとともに使用できます。

C:/ogg/2014/install/dirdat/aa
C:/ogg/install/2014/dirdat/aa

詳細は、12.5.3項「エスケープ・シーケンスのサポート」を参照してください。

4.5.2 サポートされるデータベース・オブジェクト名

パラメータ・ファイル、コマンドおよびその他の入力のオブジェクト名は、任意の長さで、サポートされる任意のキャラクタ・セットを使用して指定できます。サポートされるキャラクタ・セットについては、付録Aを参照してください。

Oracle GoldenGateは、オブジェクト名および列名でほとんどの文字をサポートしています。空白や記号などの特殊文字が含まれているオブジェクト名は、二重引用符で囲んで指定します。

次に示すサポートされる文字とサポートされない文字のリストは、Oracle GoldenGateでサポートされているすべてのデータベースを対象としていますが、リストのすべての文字がサポートされるかどうかはデータベース・プラットフォームによって異なります。

4.5.2.1 サポートされる特殊文字

Oracle GoldenGateは、次の特殊文字も含めて、データベースでサポートされるすべての文字をサポートしています。パラメータ・ファイルでは、これらの特殊文字を含むオブジェクト名を二重引用符で囲む必要があります。

文字 説明
/
スラッシュ(4.5.3項「スラッシュを含む名前の指定」を参照)
*
アスタリスク(パラメータ・ファイルで使用する場合は、\*のように、バック・スラッシュでエスケープする必要があります。)
? 疑問符(パラメータ・ファイルで使用する場合は、\?のように、バック・スラッシュでエスケープする必要があります。)
@
アットマーク(サポートされますが、データベースでリソース・ロケータとして使用されることが多い文字です。オブジェクト名では問題を生じることがあります。)
#
番号記号
$
ドル記号
%
パーセント記号(パラメータ・ファイルで使用する場合は、%%とする必要があります。)
^
カレット記号
( ) 開き丸カッコと閉じ丸カッコ
_
アンダースコア
- ダッシュ

空白

4.5.2.2 サポートされない特殊文字

次の文字は、オブジェクト名およびキー以外の列名ではサポートされません。

文字 説明
\
バック・スラッシュ(パラメータ・ファイルで使用する場合は、\\とする必要があります。)
{ } 開き中カッコと閉じ中カッコ
[ ] 開き大カッコと閉じ大カッコ
=
等号
+
プラス記号
! 感嘆符
~ チルド
|
パイプ
&
アンパサンド
: コロン
; セミコロン
, カンマ
' ' 一重引用符
" " 二重引用符
' アクセント記号(発音区別符)
. ピリオド
<
小なり記号(または開き山カッコ)
> 大なり記号(または閉じ山カッコ)

4.5.3 スラッシュを含む名前の指定

表名のいずれかの部分にスラッシュ文字(/)が含まれている場合、その名前コンポーネントを二重引用符で囲む必要があります。オブジェクト名がIBM iプラットフォームからのものの場合、このかぎりではありません。次に例を示します。

"c/d" 
"/a".b 
a."b/"

二重引用符で囲まれていないスラッシュが名前に含まれる場合、その名前はIBM iプラットフォーム(DB2 for iデータベース)からのものとしてOracle GoldenGateで処理されます。名前に含まれるスラッシュは、区切り文字として解釈されます。

4.5.4 データベース・オブジェクト名の修飾

オブジェクト名はパラメータ・ファイルで完全修飾されている必要があります。つまり、Oracle GoldenGateのパラメータ構文への入力で指定する名前だけでなく、すべての名前(SQLEXEC入力として指定するSQLプロシージャまたは問合せ内の名前や、ユーザー・イグジット入力の名前の他、パラメータ・ファイルに入力するその他すべての名前)の指定が修飾されている必要があります。

Oracle GoldenGateでは、データベースに応じて、2つの部分からなるオブジェクト名と3つの部分からなるオブジェクト名がサポートされています。

4.5.4.1 2つの部分からなる名前

ほとんどのデータべースでは、2つの部分からなる名前のみを次の形式で指定する必要があります。

owner.object

例: HR.EMP

説明:

ownerは、スキーマまたはデータベースです(データベース・オブジェクトを格納する論理ネームスペースの定義方法によって異なる)。objectは、表またはその他のサポートされるデータベース・オブジェクトです。

Oracle GoldenGateで2つの部分からなる名前がサポートされるデータベースと、それぞれの適切なネーミング規則を次に示します。

  • DB2 for i: schema.objectおよびlibrary/file(member)

  • DB2 LUW: schema.object

  • z/OS上のDB2: schema.object

  • MySQL: database.object

  • Oracle(CDB以外のデータベース): schema.object

  • PostgreSQL: schema.object

  • SQL/MX: schema.object。2つの部分からなるSQL名がデフォルトでサポートされています。SQL/MXソース・システムでは、SOURCEDBパラメータを使用してソース・カタログを指定する必要があり、各Extractプロセスがアクセスできるカタログは1つのみです。ターゲット・システムでは、TARGETDBパラメータを使用してターゲット・カタログを指定する必要があり、各Replicatプロセスがアクセスできるカタログは1つのみです。これらの文のUSERID部分でデフォルト・スキーマを指定します。複数のソース・カタログとターゲット・カタログに対応するには、複数のExtractプロセスとReplicatプロセスが必要です。詳細は、NonStop SQL/MXのためのOracle GoldenGateのインストールおよび構成を参照してください。

  • SQL Server: schema.object

  • Sybase: schema.object

  • Teradata: database.object

  • TimesTen: user.object

4.5.4.2 3つの部分からなる名前

Oracle GoldenGateで3つの部分からなる名前がサポートされているデータベースを次に示します。

  • Oracleコンテナ・データベース(CDB)

  • Informix Dynamix Server

  • NonStop SQL/MX

ソースOracleコンテナ・データベースから取得する場合には、3つの部分からなる名前が必要です(1つのExtractグループが複数のコンテナから取得する可能性があるため)。したがって、ExtractのTABLE文では、各オブジェクトまたは複数のオブジェクトに対して、コンテナ名とスキーマ名を指定する必要があります。

3つの部分からなるOracle CDB名は次のように指定します。

container.schema.object

例: PDB1.HR.EMP

Oracleコンテナ・データベースの詳細は、『Oracle Database管理者ガイド』を参照してください。

Oracle GoldenGate 12cより前のバージョンの既存のパラメータ・ファイルを構文変更せずにそのまま使用できるよう、SQL/MXデータベースでは、3つの部分からなる名前のサポートがデフォルトで無効になっています。(4.5.4.1項を参照)3つの部分からなる名前のサポートを有効にするには、GLOBALSファイルでENABLECATALOGNAMESパラメータを使用します。3つの部分からなる名前がサポートされている場合、1つのExtractグループで複数のソース・カタログから取得できます。GLOBALSファイルの詳細は、4.4.2項「GLOBALSファイルの操作」を参照してください。

3つの部分からなるSQL/MX名は次のように指定します。

catalog.schema.object

例: catalog1.HR.EMP

4.5.4.3 複数のコンテナまたはカタログからのデータの適用

複数のソース・コンテナまたはカタログから取得したデータをターゲットOracleコンテナ・データベースまたはSQL/MXデータベースに適用するには、3つおよび2つの部分からなる名前の両方が必要です。MAP文のMAP部分では、各ソース・オブジェクトがコンテナまたはカタログに関連付けられている必要があります(TABLE文の場合と同様)。これにより、ユーザー(およびReplicat)は、複数のソース・コンテナまたはカタログから適切なターゲット・オブジェクトにデータを正しくマップできます。一方、MAP文のTARGET部分で必要なのは、2つの部分からなる名前のみです。これは、Replicatが同時に接続可能なターゲット・コンテナまたはカタログは1つのみなので、schema.ownerという修飾子で十分だからです。複数のターゲット・コンテナまたはカタログに対応するには、複数のReplicatグループが必要です。ターゲット・コンテナまたはカタログは、TARGETDBパラメータで指定します。

4.5.4.4 デフォルトのコンテナまたはカタログの指定

パラメータ・ファイルでSOURCECATALOGパラメータを使用すると、それ以降のTABLEMAP(またはOracle SEQUENCE)の各指定に対して、デフォルトのカタログを指定できます。次の例は、SOURCECATALOGを使用して、schema2およびschema3の各オブジェクトにpdb2というデフォルトのOracle PDBを指定し、schema4オブジェクトにpdb3というデフォルトのPDBを指定する方法を示しています。pdb1のオブジェクトは3つの部分からなる完全修飾名で指定されているため、デフォルトのカタログを指定する必要はありません。この例のpdbで始まる名前の部分にカタログ名を代入すれば、SQL/MXの例として使用できます。

TABLE pdb1.schema1.table*; 
SOURCECATALOG pdb2 
TABLE schema2.table*; 
TABLE schema3.table*; 
SOURCECATALOG pdb3 
TABLE schema4.table*;

4.5.5 大/小文字が区別されるデータベース・オブジェクト名の指定

Oracle GoldenGateでは大/小文字が区別される名前をサポートしています。大/小文字が区別されるオブジェクトを指定する場合は、次のルールに従います。

  • 大/小文字が区別されるデータベースのオブジェクト名は、それをホスト・データベースに格納するときと同じ大/小文字で指定します。データベースのタイプによっては、大/小文字の区別の有無がデータベースのレベルごとに異なる場合がありますので注意してください(スキーマは大/小文字が区別されるが、表は区別されないなど)。大/小文字を区別するには引用符が必要になるデータベースの場合は、大/小文字を区別する各オブジェクトを修飾名の中で引用符で囲んでください。

    正: TABLE "Sales"."ACCOUNT"

    誤: TABLE "Sales.ACCOUNT"

  • Oracle GoldenGateでは、マッピング目的での必要に応じて、大/小文字が区別されない名前を格納時の大/小文字に変換します。

表4-1は、オブジェクト名における大/小文字の区別のサポート状況を、サポートされるデータベースごとに簡単にまとめたものです。この種のサポートの詳細は、データベースのドキュメントを参照してください。

表4-1 データベースごとのオブジェクト名の大/小文字の区別

データベース 大/小文字を区別するために引用符が必要か 引用符で囲んでいないオブジェクト名 引用符で囲んだオブジェクト名

DB2

はい。大/小文字を区別するかどうかを引用符の有無で識別します。

大/小文字が区別されず、大文字で格納されます。

大/小文字が区別され、大文字と小文字の混在で格納されます。

MySQL

(大/小文字が区別されるデータベース)

不要

  • 常に大/小文字が区別され、大文字と小文字の混在で格納されます。

  • 列、トリガーおよびプロシージャの名前は大/小文字が区別されません。

影響なし

影響なし

Oracle

はい。大/小文字を区別するかどうかを引用符の有無で識別します。

大/小文字が区別されず、大文字で格納されます。

大/小文字が区別され、大文字と小文字の混在で格納されます。

PostgreSQL

はい。大/小文字を区別するかどうかを引用符の有無で識別します。

大/小文字が区別されず、小文字で格納されます。

大/小文字が区別され、大文字と小文字の混在で格納されます。

SQL/MX

はい。大/小文字を区別するかどうかを引用符の有無で識別します。

大/小文字が区別されず、大文字で格納されます。

大/小文字が区別され、大文字と小文字の混在で格納されます。

  • SQL Server

  • Sybase

(データベースは大/小文字を区別するものとして作成)

不要

常に大/小文字が区別され、大文字と小文字の混在で格納されます。

影響なし

影響なし

  • SQL Server

  • Sybase

(データベースは大/小文字を区別しないものとして作成)

不要

常に大/小文字が区別されず、大文字と小文字の混在で格納されます。

影響なし

影響なし

Teradata

不要

常に大/小文字が区別されず、大文字と小文字の混在で格納されます。

影響なし

影響なし

TimesTen

不要

常に大/小文字が区別されず、大文字で格納されます。

大/小文字が区別されず、大文字で格納されます。

大/小文字が区別されず、大文字で格納されます。



注意:

サポートされるすべてのデータベースにおいて、パスワードは、関連オブジェクト名が引用符で囲まれているかどうかに関係なく、常に大/小文字を区別するものとして扱われます。

4.5.6 データベース・オブジェクト名でのワイルドカードの使用

指定されたデータベースに対してサポートされている場合、完全修飾されたオブジェクト名の任意の部分にワイルドカードを使用できます。これらの名前の部分とは、コンテナ名、データベース名、カタログ名、所有者名(スキーマ名またはデータベース名)、表名または順序名です。オブジェクト名とワイルドカードのサポートの詳細は、そのデータベースに対応するOracle GoldenGateのインストレーションおよび構成のガイドを参照してください。

Oracle GoldenGateのパラメータでは、2種類のワイルドカードを適宜使用して、1つの文に複数のオブジェクトを指定できます。

  • 疑問符(?)は1文字に置き換わります。たとえば、TABn(nは0から9)という名前の表を含むスキーマでは、HQ.TAB?というワイルドカード指定を行うと、HQ.TAB0HQ.TAB1HQ.TAB2からHQ.TAB9までが返されます(これ以外は返されません)。このワイルドカードは、DB2 LUWデータベースやDEFGENに対してはサポートされていません。このワイルドカードは、TABLEまたはMAPパラメータでソース・オブジェクトを指定する場合にのみ使用できます。TABLEまたはMAPTARGET句でのターゲット・オブジェクトの指定には使用できません。

  • アスタリスク(*)は、任意の数の文字(ゼロ・シーケンスを含む)を表します。たとえば、HQ.T*と指定すると、HQ.TOTALHQ.T123HQ.Tなどのオブジェクトが返されます。このワイルドカードは、ワイルドカードが使用できるOracle GoldenGateのすべてのコマンドおよびパラメータですべてのデータベース・タイプに対して有効です。

  • TABLE文およびMAP文では、ソース・オブジェクト名の中でのみアスタリスクと疑問符のワイルドカード文字を組み合せることができます。

4.5.6.1 ソース・オブジェクトにワイルドカードを使用する場合のルール

ソース・オブジェクトには、アスタリスクを単独で、または部分的な名前とともに使用できます。たとえば、次のソース指定はいずれも有効です。

  • TABLE HQ.*;

  • TABLE PDB*.HQ.*;

  • MAP HQ.T_*;

  • MAP HQ.T_*, TARGET HQ.*;

TABLEMAPSEQUENCEの各パラメータでは、ワイルドカードを解決するために、大/小文字の区別の有無とデータベースのロケールが考慮されます。大/小文字を区別する、または区別しないものとして作成されたデータベースの場合、名前と大/小文字がワイルドカードと正確に照合されます。たとえば、データベースで大/小文字が区別される場合、SCHEMA.TABLESCHEMA.TABLEに一致し、Schema.TableSchema.Tableに一致します。データベースで大/小文字が区別されない場合、照合でも大/小文字は区別されません。

引用符を使用して大/小文字を区別することで、大/小文字が区別されるオブジェクト名と区別されないオブジェクト名を同じデータベース・インスタンス内に持つことができるデータベースの場合、ワイルドカードは異なる働きをします。アスタリスク・ワイルドカードをTABLE文でソース名として単独で使用した場合、そのアスタリスクは、引用符で囲まれているかどうかに関係なく、任意の文字に一致します。次の文はいずれも同じ結果になります。

TABLE hr.*;
TABLE hr."*";

同様に、単独で使用した疑問符ワイルドカードは、引用符で囲まれているかどうかに関係なく、任意の1文字に一致します。次の指定はいずれも同じ結果になります。

TABLE hr.?;
TABLE hr."?";

疑問符またはアスタリスクのワイルドカードを他の文字とともに使用する場合は、大/小文字の区別の有無がワイルドカード以外の文字にも適用されますが、ワイルドカードは大/小文字が区別される名前と区別されない名前の両方に一致します。

  • 次のTABLE文では、小文字のabcで始まる表名が取得されます。引用符で囲んだ名前の大/小文字は維持され、大/小文字を区別する照合が適用されます。ワイルドカードは、大/小文字が区別される文字にも区別されない文字にも一致するため、"abcA"および"abca"を含む表名が取得されます。

    TABLE hr."abc*";
    TABLE hr."abc?";
    
  • 次のTABLE文では、部分的な名前は大/小文字が区別されず(引用符なし)、このデータベースに大文字で格納されるため、大文字のABCで始まる表名がすべて取得されます。ただし、ワイルドカードは大/小文字が区別される文字と区別されない文字の両方に一致するため、この例ではABCA"ABCa"を含む表名が取得されます。

    TABLE hr.abc*;
    TABLE hr.abc?;
    

4.5.6.2 ターゲット・オブジェクトにワイルドカードを使用する場合のルール

MAP文のTARGET句でワイルドカードを使用する場合、ターゲット・オブジェクトがターゲット・データベースに存在する必要があります。(ただし、DDLレプリケーションが使用されていて、新しいスキーマとそのオブジェクトを作成時にレプリケートできる場合を除きます。)

ターゲット・オブジェクトには、アスタリスクのみを使用できます。アスタリスク・ワイルドカードを部分的な名前とともに使用すると、Replicatはワイルドカードを対応するソース・オブジェクトの完全な名前に置き換えます。したがって、次のような指定は誤りです。

TABLE HQ.T_*, TARGET RPT.T_*;
MAP HQ.T_*, TARGET RPT.T_*;

前述のマッピングでは、ターゲット指定内のワイルドカードがT_TEST(ソース・オブジェクトの名前)に置き換わるため、ターゲット名全体ではT_T_TESTnとなり、間違った結果が返されます。次に、間違った結果を示します。

  • HQ.T_TEST1RPT.T_T_TEST1にマップされます。

  • HQ.T_TEST2RPT.T_T_TEST2にマップされます。

  • (HQ.T_TESTn形式の他のすべてのマッピングに、同じパターンが当てはまります。)

次の例は、アスタリスク・ワイルドカードの正しい使用方法を示しています。

MAP HQ.T_*, TARGET RPT.*;

前述の例では、次のような正しい結果が得られます。

  • HQ.T_TEST1RPT.T_TEST1にマップされます。

  • HQ.T_TEST2RPT.T_TEST2にマップされます。

  • (HQ.T_TESTn形式の他のすべてのマッピングに、同じパターンが当てはまります。)

4.5.6.3 名前のフォールバック・マッピング

Oracle GoldenGateには、ソース名をターゲット名にマップできない場合に備えて、フォールバック・マッピングのメカニズムが用意されています。大/小文字が区別されるソース・オブジェクトと完全に一致するものがターゲット上に見つからない場合、Replicatはソース名を、ターゲット上の大文字または小文字(データベースのタイプによる)の同じ名前にマップしようとします。名前のフォールバック・マッピングは、NAMEMATCHパラメータで制御します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

4.5.6.4 11.2.1より前のバージョンの証跡からのワイルドカード・マッピング

Oracle GoldenGate 11.2.1より前のバージョンの証跡ファイルから読み取るようにReplicatが構成されている場合、ターゲットのマッピングは、下位互換性を確保するために次の方法で行われます。

  • 引用符で囲んだオブジェクト名は大/小文字が区別されます。

  • 引用符で囲んでいないオブジェクト名は大/小文字が区別されません。

次の例では、大/小文字が区別される表名"abc"が、ターゲット"abc"にマップされます。この処理が発生するのは、11.2.1より前のExtractにより、大/小文字が区別される構成のSQL ServerとSybaseについて証跡が書き込まれた場合のみです。この例では、ターゲット・データベースがOracle、DB2またはSQL/MXで、ターゲット・データベース内に大/小文字が区別されるabcはないが、表ABCはあるという場合、名前のフォールバック・マッピングが実行されます。(4.5.6.3項を参照。)

MAP hq."abc", TARGET hq.*;

次の例では、大/小文字が区別されない表名abcが、ターゲットの表名ABCにマップされます。旧リリースのOracle GoldenGateでは、大/小文字が区別されないオブジェクト名は大文字で証跡に格納されていたため、ターゲットの表名は常に大文字でした。大/小文字が区別されない名前変換の場合、比較はロケールを考慮せずに、大文字(AからZの文字のみ)でUS-ASCIIで行われます。

MAP hq.abc, TARGET hq.*;

4.5.6.5 オブジェクト名におけるリテラルとしてのアスタリスクまたは疑問符

オブジェクトの名前自体にアスタリスクまたは疑問符が含まれている場合、次の例に示すように、名前全体をエスケープして二重引用符で囲む必要があります。

TABLE HT."\?ABC";

4.5.6.6 ワイルドカードの解決方法

オブジェクト名がワイルドカードで指定されている場合、デフォルトでは、ソース・オブジェクトの1行目の処理と同時に、そのオブジェクトの解決が行われます。(これに対し、オブジェクト名が明示的に指定されている場合は、プロセスの起動時に解決が行われます。)ワイルドカード解決のルールを変更するには、WILDCARDRESOLVEパラメータを使用します。デフォルトはDYNAMICです。

4.5.6.7 ワイルドカード指定からのオブジェクトの除外

EXCLUDEWILDCARDOBJECTSONLYCATALOGEXCLUDESCHEMAEXCLUDEMAPEXCLUDETABLEEXCLUDEの各パラメータを使用すると、ワイルドカードによるオブジェクト選択を、明示的なオブジェクト除外と組み合せて使用できます。説明と構文の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4.5.7 大/小文字が区別される列名とリテラルの区別

Oracle GoldenGateでの列名とリテラルの指定は、デフォルトで、SQL-92ルールに従います。大/小文字の区別をサポートするには名前を引用符で囲む必要があるデータベースの場合、Oracle GoldenGateのパラメータ・ファイル、変換関数、ユーザー・イグジットおよびコマンドでは、大/小文字が区別される列名を二重引用符で囲む必要があります。例:

"columnA"

大/小文字を区別するのに引用符が不要なデータベースの場合、大/小文字が区別される列名はデータベースに格納されているとおりに指定する必要があります。例:

ColumnA

リテラルは一重引用符で囲む必要があります。次の例では、Product_CodeはOracleデータベース内の大/小文字が区別される列名であり、その他の文字列はリテラルです。

@CASE ("Product_Code", 'CAR', 'A car', 'TRUCK', 'A truck')

バージョン12cより前Oracle GoldenGateバージョンのパラメータ・ファイルとの下位互換性のために、NOUSEANSISQLQUOTESパラメータを使用してデフォルト・モードを変更できます(このパラメータは12cでは非推奨です)。NOUSEANSISQLQUOTESによって、Oracle GoldenGateでは二重引用符で囲まれた文字列がリテラルとして扱われます。NOUSEANSISQLQUOTESの使用時は、一重引用符または二重引用符の有無にかかわらず、大/小文字が区別されるオブジェクト名はサポートされません。次の例では、NOUSEANSISQLQUOTESの使用時に、@CASE関数がどのように機能するかを示しています。この場合、PRODUCT_CODEは列名、その他の文字列はリテラルです。

@CASE (PRODUCT_CODE, "CAR", "A car", "TRUCK", "A truck")