Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX 12c (12.2.0.1) E70112-04 |
|
前 |
次 |
適用対象
DB2 for iのExtract
説明
DB2 for iの旧リリースすべてにおいて、Extractではテキスト・データがすべてUnicodeに変換されました。UTF-8 (シングルおよびマルチバイトCCSIDの場合)またはUTF-16 (2バイトCCSIDの場合)のいずれかです。つまりSQLでは、初期ロードまたは標準Extractの証跡で、バイナリ以外のCHAR
、VARCHAR
およびCLOB
データはすべてUTF-8に変換され、GRAPHIC
、VARGRAPHIC
およびDBCLOB
データはすべてUTF-16に変換されます。Oracle GoldenGate 12c (12.2.0.1)リリースより前のExtractの証跡フォーマットを使用している場合は、これが引き続き当てはまります。
列のキャラクタ・セット列を持つバージョンに対する旧リリースのdefgen
の動作では、-1を指定して、列のキャラクタ・セットがキャラクタ・セットを使用する列のデフォルトであることを示しました。その後で、証跡ヘッダーを使用して列データのキャラクタ・セットを指定(常にUTF-8またはUTF16に設定)しました。
このリリースのデフォルト動作では、Oracle GoldenGate変換でサポートされているキャラクタ・セットを変更せずにパス・スルーできます。これにより、処理対象のレコード内のテキスト・データ量に比例して、自動的にCPU使用量が削減され、Extractのスループット率が向上します。Oracle GoldenGateで変換できないCCSIDがExtractで見つかった場合、Extractは元の動作にデフォルト設定され、旧リリースで行われていたようにテキスト・データを適切なUnicodeキャラクタ・セットに変換します。これにより、新しいExtractからの証跡を処理するどのReplicatでも、Extractのテキスト・データを処理できるようになります。
DB2 for i用Extractの元の動作を使用する場合は、キーワードTRAILCHARSETUNICODE
をExtractのprm
ファイルに追加する必要があります。これにより、旧リリースと同様に、すべてのテキスト・データがUnicodeに変換されます。
または、表定義でCOLCHARSETパラメータを使用して、特定のオブジェクト・レベルまたは列レベルで選択的に古い変換動作に戻すこともできます。
(初期ロード以外の)標準Extractの一般的なprm
ファイルの例:
すべてのTABLE文に含まれているオブジェクトのテキスト・データはすべてUnicodeに変換されます。
- このキーワードが含まれていない場合、Extractはデフォルトでテキスト・データを変換しません
table
schema.table
, COLCHARSET(UTF-8, ALL)
または
table
schema.table
, charset(UTF-8)
この特定のTABLE文に一致するオブジェクトのテキスト・データはすべてUnicode (2バイトの列はUTF-16)に変換されます。
table
schema.table
, COLCHARSET(UTF-8, TXTCOL4)
TXTCOL4
のみがUTF-8に変換され、他のテキスト・データはすべて変更せずにパス・スルーされます。
注意:
DB2 for i PASEデータベース・レイヤーの機能方法とOracle GoldenGateの内部処理のため、状況によっては引き続きUnicode変換が必要になります。
初期ロードExtractは自動的にすべてのデータをUnicodeに変換し、列にUnicodeデータを指定します。
Oracle GoldenGate 12c (12.2.0.1)リリースより前の証跡フォーマットを使用するExtractでは、テキスト・データをUnicodeへ変換する方法に自動的に戻されます。
列関数あるいはSQLEXEC
、FETCHCOLUMNS
またはFETCHMODCOLS
を含む表指定では、TRAILCHARSETUNICODE
が指定されているか、特定の表または列にCOLCHARSET
修飾子が含まれるように変更されている必要があります。これは、Replicatが列関数も使用している場合に当てはまります。このような場合、Replicat表にマップされているExtract表がUnicodeとして送信される必要があります。
DEFGEN
およびTRAILCHARSETUNICODE
DEFGEN
の場合、DEFGEN
では証跡が生成されないため、TRAILCHARSETUNICODE
はサポートされません。TRAILCHARSETUNICODE
を使用するか、列のキャラクタ・セットを無効にしてReplicatでdefs
ファイルを使用する場合、defgen
では、次のようにして同等の列のCHARSET
のオーバーライドを指定することも必要です。
table
schema.table
, COLCHARSET(ALL, UTF-8)
または
table
schema.table
, CHARSET(UTF-8)
この特定のTABLE文に一致するオブジェクトのテキスト・データはすべてUnicode (2バイトの列はUTF-16)に変換されます。
table
schema.table
, COLCHARSET(TXTCOL4, UTF-8
)
TXTCOL4
のみがUTF-8に変換され、他のテキスト・データはすべて変更せずにパス・スルーされます。
このリリースのデフォルト動作では、列のメタデータを必要に応じて操作データとともに証跡データにインラインで含めます。つまり、定義ファイルはOracle GoldenGateレプリケーションで必要なくなり、無視されます。
ただし、Oracle GoldenGate Replicatまたはポンプが、この動作をオーバーライドして定義ファイルを使用するように指定されているか、前の証跡フォーマット・レベルが使用されている場合は、defgen
定義ファイルを再作成する必要があります。この場合、その定義とExtractが証跡に書き込む内容が必ず一致するように注意する必要があります。したがって、Extract prm
ファイル内にあるTRAILCHARSETUNICODE
キーワード、CHARSET
またはCOLCHARSET
修飾子が、Extractに一致するdefgen
prm
ファイルにも存在する必要があります。
ReplicatのASSUMETARGETDEFS OVERRIDE
でも、ExtractがExtractパラメータ・ファイルの表でTRAILCHARSETUNICODE
または同等のCOLCHARSET
修飾子を使用している必要があります。これは、Replicatが引き続きUnicode接続を使用してデータベースに接続し、すべてのテキスト・フィールドをUnicodeとして内部処理しているためです。
デフォルト
なし
構文
TRAILCHARSETUNICODE