2 Oracle GoldenGateのグローバリゼーション・サポート
内容は次のとおりです。
2.1 文字セットの維持
データをネイティブ言語のエンコーディングで処理するために、Oracle GoldenGateでは、データベースの文字セットとオペレーティング・システム・ロケール(該当する場合)が考慮されます。
内容は次のとおりです。
2.1.1 データベース構造メタデータの文字セット
Oracle GoldenGateでは、カタログ、スキーマ、表および列の名前は、ソース・データベースおよびターゲット・データベースの文字セット・エンコーディングに従って、ネイティブ言語で処理されます。この処理は、パラメータ・ファイルとコマンド・インタプリタにも適用されます(それらはオペレーティング・システム・ロケールに従って処理されます)。これらのオブジェクトは、クライアント・インタフェース全般、コンソールおよびファイルに、ローカライズ形式で表示されます。
親トピック: 文字セットの維持
2.1.2 文字型データの文字セット
Oracle GoldenGateの適用プロセス(Replicat)では、文字型の列にデータが含まれている場合に、ある文字セットから別の文字セットへのデータ変換がサポートされます。文字セット変換のサポートは、TABLE
文またはMAP
文のCOLMAP
句またはUSEDEFAULTS
句で実行される列から列へのマッピングに限定されています。列変換関数、SQLEXEC
またはTOKENS
機能ではサポートされません。
文字セット、文字セット間の変換、およびデータ・マッピングの詳細は、データのマッピングおよび操作を参照してください。
親トピック: 文字セットの維持
2.1.3 データベース接続の文字セット
ExtractプロセスおよびReplicatプロセスは、データベースへの接続時にセッション文字セットを使用します。Oracle Databaseの場合、セッション文字セットはExtractとReplicatの両方で設定されるデータベース文字セットと同様に設定されています。MySQLの場合、セッション文字セットはSOURCEDB
およびTARGETDB
のSESSIONCHARSET
オプション、またはGLOBALS
ファイルでグローバルに設定されるSESSIONCHARSET
パラメータから取得されます。その他のデータベース・タイプの場合は、プログラムによって取得されます。また、Oracle GoldenGateプロセスは、Oracle GoldenGateとデータベースの間の通信やデータ転送(SQL問合せ、フェッチ、データ適用など)にもセッション文字セットを使用します。
親トピック: 文字セットの維持
2.1.4 テキスト入力およびテキスト出力の文字セット
Oracle GoldenGateでは、次の場所で、ホスト・オペレーティング・システムのデフォルト文字セットでのテキスト入力およびテキスト出力がサポートされます。
-
コンソール
-
コマンドラインでの入力および出力
-
FORMATASCII
、FORMATSQL
、FORMATXML
の各パラメータ、パラメータ・ファイル、データ定義ファイル、エラー・ログ、プロセス・レポート、破棄ファイルなどのテキスト・ファイル、およびOracle GoldenGateユーザーがOracle GoldenGate環境の構成、実行、監視に使用するその他の判読可能なファイル
プラットフォームで、必要な文字セットがオペレーティング・システムのデフォルトとしてサポートされていない場合は、次のパラメータを使用して文字セットを指定できます。
-
CHARSET
パラメータ(プロセスがパラメータ・ファイルの読取りに使用する文字セットを指定する場合) -
DEFSFILE
パラメータのCHARSET
オプション(特定の文字セットでデータ定義ファイルを生成する場合)
GGSCIコマンド・コンソールは、キーボードとOBEY
ファイルの入力、およびコンソール出力に関して、常にローカル・オペレーティング・システムの文字セットで動作します。
親トピック: 文字セットの維持
2.2 Unicodeおよびネイティブ文字の使用
Oracle GoldenGateでは、Unicodeで、またはWindows、UNIXおよびLinuxオペレーティング・システムのネイティブ文字エンコーディングで文字を表すためのエスケープ・シーケンスの使用がサポートされています。エスケープ・シーケンスは、オペレーティング・システムで必要な文字がサポートされていない場合に、または必要に応じて他の目的で使用できます。このサポートの詳細は、エスケープ・シーケンスのサポートを参照してください。
2.3 文字マップ変換
CHARMAP
機能は、Oracle GoldenGate 12.1.2.1.0以上で使用できます。CHARMAP
を使用すると、Oracle GoldenGate Replicatで文字マッピング・ファイルおよび設定を指定して、文字コード・ポイント・マッピングをオーバーライドできます。この機能は、ターゲット・データベースの文字セットがソース・データベースの文字セットのサブセットである場合に便利です。
ノート:
同じ文字セットに対して文字セット変換を有効にすると、パフォーマンスが低下する可能性があります。-
ソースの証跡ファイルはUTF-8です。
-
Teradataのターゲット・データベースはUTF-16です。
Teradataにデータを適用する場合、Teradataで6706 The string contains an untranslatable character.
エラーが発生します。Teradataでは、U+FFFDなどの有効なUnicodeコード・ポイントがすべて実装されているわけではありません。Oracle Databaseの無効なUnicodeのデフォルト置換文字はTeradataで認識されません。
-
UTF-16からUTF-16へのマップなど、ソースとターゲットが同じ文字セットである場合は、厳密な文字検証を有効にする必要があります。次のパラメータをReplicatパラメータに追加します。
REPLACEBADCHAR FORCECHECK
-
文字マッピング・オーバーライド定義ファイルを作成します。次の例では、ソースはOracle AL32UTF8列で、ターゲットはUTF-16で、U+FFFDをU+0020空白にマップします。
SOURCECHARSET AL32UTF8 TARGETCHARSET UTF-16 \xef\xbf\xbd \x20
-
Replicatパラメータ・ファイルで前述のオーバーライド定義ファイルを指定します。次の例では、ステップ2のファイルが
./dirprm/fffd.map
として保存されます。データベース接続のログイン時に変換が行われる場合は、MAP
パラメータの前(できればloginパラメータの前)にパラメータを追加します。CHARMAP ./dirprm/fffd.map
CHARMAP
は、Oracle GoldenGate for DB2 LUW、iSeriesおよびDB2 z/OSなど、サポートされているすべてのデータベースでOracle GoldenGate Replicatによってサポートされます。