プライマリ・コンテンツに移動
Oracle® GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.1.2)
E49845-08
  目次へ移動
目次

前
 
次
 

PASSTHRU | NOPASSTHRU

適用対象

Extract

説明

PASSTHRUおよびNOPASSTHRUパラメータでは、データ・ポンプExtractがパススルー・モードで表を処理するか、標準モードで処理するかを制御します。パススルー・モード(PASSTHRUによって構成)では、Extractプロセスはデータベースからもデータ定義ファイルからも表定義を参照しません。通常、Extractはデータベースにログインしてデータ定義を取得し、ターゲットがNonStopの場合には、データ定義ファイルを読み取ります。Extractは、マッピングや変換を実行するときに定義を参照します。

パススルー・モードを使用すると、取得したデータを、データベースをホストしない仲介システム上のデータ・ポンプにカスケードできます。パススルー・モードを使用するには、ソース表とターゲット表の名前と構造が同一である必要があります。フィルタリング、列マッピング、SQLEXECファンクション、変換、またはデータの操作や変換を必要とするその他のファンクションが使用できません。WILDCARDRESOLVEパラメータは、DYNAMIC (デフォルト)に設定する必要があります。Oracle GoldenGateインストールが、データ・セキュリティのためにマスター・キーとウォレットを使用する場合は、PASSTHRUによって、データ・ポンプが自動的にデータ(暗号化した形式)を出力トレイルに渡します。

デフォルトのNOPASSTHRUでは、データ・ポンプはローカル・データベースまたは定義ファイルでオブジェクト定義を検索します。NOPASSTHRUが使用され、Oracle GoldenGateインストールでデータ・セキュリティのためにマスター・キーとウォレットが使用されるとき、NOPASSTHRUでは、データ・ポンプによって、さらに処理することを想定してデータが自動的に復号化され、その後再び暗号化されてから出力トレイルに書き込まれます。

PASSTHRUおよびNOPASSTHRUパラメータは、TABLEに固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLE文に有効です。したがって、特定の表セットにはパススルー動作を指定し、他の表に対してはデータのフィルタリングや他の操作を含む標準処理を行うことができます。

仲介システムはデータベースをホストしないため、フィルタリングや他の操作を必要とする表は、フィルタリングを実行する場合はソース定義ファイルに、列マッピングまたは変換を実行する場合はターゲット定義ファイルに関連付ける必要があります。これらのファイルは、データベースがない場合に、Oracle GoldenGateがそれらのアクションを実行するために必要なメタデータを提供します。データ定義ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。仲介システムの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

PASSTHRUモードでは、データ・ポンプはASCIIからEBCDIC、またはEBCDICからASCIIへの自動変換を実行しません。

DDLレプリケーションでのPASSTHRU

DDLは、PASSTHRUモードではデータ・ポンプによって自動的に伝播されます。そのため、特定の名前のソース表で実行されるDDL (ALTER TABLE TableA...など)は、データ・ポンプによって同じ名前を使用して処理されます(ALTER TABLE TableA)。この名前がデータ・ポンプによってALTER TABLE TableBのようにマッピングされることはありません。TABLE文の指定内容が異なっても同様です。

デフォルト

NOPASSTHRU

構文

PASSTHRU | NOPASSTHRU

次のパラメータ・ファイルは、fin.acctのすべてのデータについてパススルー・モードを構成し、fin.salesには通常の処理を許可します。

EXTRACT fin
USERIDALIAS tiger1
RMTHOST sysb, MGRPORT 7809, ENCRYPT AES192 KEYNAME mykey
ENCRYPTTRAIL AES192
RMTTRAIL /ggs/dirdat/rt
PASSTHRU
TABLE fin.acct;
NOPASSTHRU
TABLE fin.sales, WHERE (ACCOUNT-CODE < 100);