C Oracle GoldenGate証跡について

この付録には、トラブルシューティング、サポートの利用、その他の目的で知っておく必要のある、Oracle GoldenGate証跡に関する情報が記載されています。Oracle GoldenGate証跡レコードを表示するには、ログダンプ・ユーティリティを使用してください。

内容は次のとおりです。

証跡リカバリ・モード

デフォルトでは、Extractは追加モードで動作します。このモードでは、プロセス障害が発生すると証跡にリカバリ・マーカーが書き込まれ、Extractは、すべての古いデータの履歴をリカバリ目的で保持するために、ファイルにリカバリ・データを追加します。

追加モードでは、Extractの初期化によって、起動時に証跡に書き込まれた最後の完全なトランザクションのIDが判別されます。この情報に基づいて、Extractは、そのトランザクションのコミット・レコードがデータソースで見つかると、リカバリを停止します。その後、Extractは、抽出要件を満たす次のコミット済トランザクションから新しいデータ取得を開始し、新しいデータの証跡への追加を始めます。データ・ポンプまたはReplicatは、このリカバリ・ポイントから読取りを再開します。

上書きモードは、Oracle GoldenGateリリース10.0以前のリリースで使用されていたもう1つのExtractリカバリ方法です。これらのリリースでは、Extractは、新規データを追加するかわりに、最後の書込みチェックポイント位置の後にある証跡の既存のトランザクション・データを上書きします。書き込まれる最初のトランザクションは、データソースの最後の読取りチェックポイント位置の後にある、抽出要件を満たす最初のトランザクションです。

ターゲットのOracle GoldenGateのリリースがリリース10より古い場合、Extractは、下位互換性をサポートするために自動的に上書きモードに戻ります。この動作は、RECOVERYOPTIONSパラメータを使用して手動で制御できます。

証跡ファイルのヘッダー・レコード

Oracle GoldenGateリリース10.0以上では、証跡の各ファイルの先頭部分に、ファイル・ヘッダー・レコードが格納されています。 ファイル・ヘッダーには、証跡ファイル自体に関する情報が含まれます。以前のリリースのOracle GoldenGateには、このヘッダーは含まれません。

Oracle GoldenGateプロセスはすべて独立しており、異なるOracle GoldenGateリリースのプロセスが混在できるため、各証跡ファイルのファイル・ヘッダーにはバージョン・インジケータが含まれています。デフォルトでは、証跡ファイルのバージョンは、そのファイルを作成したプロセスの現行バージョンです。証跡のバージョンを設定する必要がある場合、EXTTRAILEXTFILERMTTRAILまたはRMTFILEパラメータのFORMATオプションを使用します。

Oracle GoldenGateの異なるプロセス・バージョン間でファイルの上位互換性または下位互換性を保証するため、標準化されたトークン形式でファイル・ヘッダー・フィールドが書き込まれます。プロセスの新規バージョンによって作成される新しいトークンは、古いバージョンでは無視されるため、下位互換性が保持されます。同様に、Oracle GoldenGateの新しいバージョンでは、古いトークンがサポートされます。また、新しいプロセス・バージョンによってあるトークンが非推奨になっても、そのトークンにはデフォルト値が割り当てられるため、古いバージョンも引き続き正しく動作します。ファイル・バージョンを指定するトークンは、COMPATIBILITYです。このトークンは、ログダンプ・ユーティリティで表示することや、@GETENV関数のGGFILEHEADERオプションを使用して取得することができます。

証跡または抽出ファイルのバージョンは、そのファイルを読み取るプロセスのバージョン以下である必要があります。それ以外の場合、プロセスは異常終了します。また、データ・ポンプの出力証跡またはファイルは、Oracle GoldenGateによって強制的に入力証跡またはファイルと同じバージョンに設定されます。再起動時に、Extractは、各ファイルのバージョンがただ1つになるように証跡を1つの新規ファイルにまとめます(ファイルが空ではない場合)。

証跡のレコード形式

Oracle GoldenGateによって証跡または抽出ファイルに書き込まれる各変更レコードには、ヘッダー領域、データ領域および(状況により)ユーザー・トークン領域が含まれます。レコード・ヘッダーには、トランザクション環境に関する情報が含まれ、データ領域には、抽出された実際のデータ値が含まれます。トークン領域には、Oracle GoldenGateユーザーが列のマッピングおよび変換用に指定した情報が含まれます。

Oracle GoldenGateの証跡ファイルは構造化されていません。Oracle GoldenGateレコードは、Oracle GoldenGateソフトウェアに付属するログダンプ・ユーティリティを使用して表示できます。詳細は、Oracle GoldenGateログダンプ・リファレンスを参照してください。

注意:

Oracle GoldenGateソフトウェアの機能拡張のために、証跡レコードの形式は、このドキュメントに記載されていない変更に応じて修正される可能性があります。現在の構造を表示するには、ログダンプ・ユーティリティを使用してください。

Oracle GoldenGateレコードの例

次に、ログダンプでの表示どおりにOracle GoldenGateレコードを記載します。最初の部分(フィールドのリスト)はヘッダーで、2番目の部分はデータ領域です。レコードは、Oracle GoldenGateでサポートされるすべてのプラットフォームで次のように表示されます。

logdumprecord_wseqinfo.jpgの説明が続きます
図logdumprecord_wseqinfo.jpgの説明

レコード・ヘッダー領域

Oracle GoldenGateレコードのヘッダーには、レコードに格納されているデータのメタデータがあり、次の情報が含まれます。

  • 挿入、更新、削除などの操作タイプ

  • 更新の前または後を示すインジケータ

  • トランザクション・グループやコミット・タイムスタンプなどのトランザクション情報

ヘッダー・フィールドの説明

次に、Oracle GoldenGateレコードのヘッダー・フィールドについて説明します。一部のフィールドは特定のプラットフォームにのみ適用されます。

表C-1 Oracle GoldenGateレコードのヘッダー・フィールド

フィールド 説明

Hdr-Ind

この値は常にEである必要があり、レコードがExtractプロセスによって作成されたことを示します。それ以外のすべての値は、無効なデータであることを示します。

UndoFlag

(NonStop) Oracle GoldenGateがTMF監査証跡から中断されたトランザクションを抽出する場合に条件付きで設定されます。通常、UndoFlagは0(ゼロ)に設定されますが、レコードが以前成功した操作を取り消したものである場合、UndoFlagは1に設定されます。制約違反によりディスク・プロセスで行われた取消しは、UNDOとしてマークされません。

RecLength

レコード・バッファの長さ(バイト単位)。

IOType

レコードにより表される操作のタイプ。操作タイプのリストは、表C-2を参照してください。

TransInD

現在のトランザクション内におけるレコードの位置。値は次のとおりです。

0 — トランザクションの最初のレコード

1 — トランザクションの最初と最後以外のレコード

2 — トランザクションの最後のレコード

3 — トランザクションの唯一のレコード

SyskeyLen

(NonStop)ソースがNonStopファイルであり、システム・キーを保持している場合、そのシステム・キーの長さ(4または8バイト)。システム・キーが存在する場合、レコードの最初のSyskeylenバイトがシステム・キーです。それ以外の場合、SyskeyLenは0 (ゼロ)です。

AuditRBA

Oracle REDOログ順序番号などのトランザクション・ログ識別子を識別します。

Continued

(WindowsおよびUNIX)レコードが、大きすぎて1つのレコードに収まらないより大きなデータの1セグメントであるかどうかを示します。各セグメントには、LOBCLOBSおよび複数のVARCHARが格納されます。(UPDATERECORDFORMATパラメータにより)単一レコードの変更前イメージと変更後イメージの両方を含む統一されたレコードは、レコードの最大長を超える可能性があり、セグメントを生成する可能性もあります。

Y — レコードはセグメントです。Oracle GoldenGateにこのデータが別のレコードに続いていることを示します。

N — データは別のセグメントに続いていません。一連のデータの最後の部分であるか、より大きなデータのセグメントではないレコードです。

Partition

WindowsおよびUNIXのレコードの場合、このフィールドの値は常に4(内部形式におけるFieldComp圧縮レコード)です。これらのプラットフォームでは、Partitionという語は、データがデータベース構造内の特定の論理パーティションまたは物理パーティションであることを示しているわけではありません

NonStopのレコードの場合、このフィールドの値は、レコード・タイプによって異なります。

  • BulkIO操作の場合、Partitionは、バルク操作が実行されたソース・パーティションの数を示します。これによって、Oracle GoldenGateは、データが最初に書き込まれたソース・パーティションを判別します。Replicatは、Partitionフィールドを使用してターゲット・パーティションの名前を特定します。レコード・ヘッダーのファイル名は、常にプライマリ・パーティションの名前になります。BulkIOレコードの有効な値は、0から15です。

  • 他のバルク操作以外のNonStop操作の場合、値は0または4のいずれかです。4の値は、データがFieldCompレコード形式であることを示します。

BeforeAfter

レコードが更新操作の変更前(B)イメージまたは変更後(A)イメージのどちらであるかを示します。UPDATERECORDFORMATパラメータの結果として変更前イメージと変更後イメージの両方を組み合せるレコードは、変更後イメージとしてマークされます。挿入は常に変更後イメージであり、削除は常に変更前イメージです。

IO Time

操作が発生した、ソース・システムのローカル時刻での時間(GMT形式)。この時間は、操作が発生した場合に応じてトランザクションの各操作で同じである場合も異なる場合もあります。

OrigNode

(NonStop)データが抽出されたシステムのノード番号。NonStopクラスタの各システムは、一意のノード番号を持ちます。ノード番号の範囲は、0から255です。

NonStop以外から導出されたレコードの場合、OrigNodeは0(ゼロ)です。

FormatType

データがトランザクション・ログから読み取られたか、データベースからフェッチされたかを示します。

F — データベースからのフェッチ

R — トランザクション・ログからの読取り

Incomplete

このフィールドは現在使用されていません。

AuditPos

データのトランザクション・ログでの位置を識別します。

RecCount

(WindowsおよびUNIX) Oracle GoldenGateファイルに書き込むためにLOBデータをチャンクに分割する必要がある場合に使用されます。RecCountは、チャンクを再構築するために使用されます。

ヘッダー・データの使用

@GETENV関数のGGHEADERオプションを使用することによって、またはTABLEMAPパラメータのCOLMAP文内でソース式として次のトランザクション要素のいずれかを使用することによって、Oracle GoldenGateレコード・ヘッダーで使用可能なデータの一部をマッピングに使用できます。

  • GGS_TRANS_TIMESTAMP

  • GGS_TRANS_RBA

  • GGS_OP_TYPE

  • GGS_BEFORE_AFTER_IND

レコード・データ領域

Oracle GoldenGate証跡レコードのデータ領域には、次のデータが含まれます。

  • 変更がOracle GoldenGateファイルに書き込まれた時刻

  • データベース操作のタイプ

  • レコードの長さ

  • 証跡ファイル内の相対バイト・アドレス

  • 表名

  • 16進形式のデータ変更

次に、Windows、UNIX、LinuxおよびNonStopシステムのOracle GoldenGateによって使用されるレコード・イメージ形式の相違点について説明します。

完全レコード・イメージ形式(NonStopソース)

完全レコード・イメージには、処理される行のすべての列の値が含まれます。完全レコード・イメージ形式は、ソース・システムがHP NonStopで、レコード・ヘッダーに指定されているIOTypeが次のいずれかである場合にのみ証跡に生成されます。

3 — ­Delete
5 — Insert
10 — Update

それぞれの完全レコード・イメージの形式は、そのレコードが元のファイルまたは表を直接読み取るプログラムから取得された場合と同じです。SQL表、日時フィールド、NULLなどのデータは、プログラムがそのデータをアプリケーション・バッファに選択する場合とまったく同じように書き込まれます。日時フィールドは内部的に8バイトのタイムスタンプとして表現されますが、外部形式は最大26バイトの文字列として表現可能です。Enscribeレコードは、元のファイルに存在するとおりの形式で取得されます。

操作タイプがInsertまたはUpdateの場合、イメージには操作のレコードの内容が含まれます(変更後イメージ)。操作タイプがDeleteの場合、イメージには操作のレコードの内容が含まれます(変更前イメージ)。

Enscribeデータベースから生成されるレコードでは、元のファイルのAUDITCOMPRESS属性がONに設定されていなければ、完全レコード・イメージが出力されます。AUDITCOMPRESSONの場合、元のファイルによって更新操作が取得されると、常に圧縮更新レコードが生成されます。(完全イメージは、FETCHCOMPSパラメータを使用することで、Extractプロセスによって取得できます。)

圧縮レコード・イメージ形式(Windows、UNIX、Linuxソース)

圧縮レコード・イメージには、処理される行で変更されたキー(主、一意、KEYCOLS)および列のみが含まれます。デフォルトでは、WindowsおよびUNIXシステムのプロセスによって書き込まれる証跡レコードは、常に圧縮されます。圧縮レコードの形式は次のとおりです。

column_index column_length column_data[...]

説明:

  • column_indexは、ソース表内の列の序数索引です(2バイト)。

  • colum_lengthは、データの長さです(2バイト)。

  • column_dataは、NULLまたはVARCHARの長さインジケータを含むデータです。

NonStopプラットフォームから書き込まれるEnscribeレコードは、圧縮されないことがあります。圧縮Enscribeレコードの形式は次のとおりです。

field_offset field_length field_value[...]

説明:

  • field_offsetは、変更された値の元のレコード内のオフセットです(2バイト)。

  • field_lengthは、データの長さです(2バイト)。

  • field_valueは、NULLまたはVARCHARの長さインジケータを含むデータです。

圧縮Enscribeレコードの最初のフィールドは、主キーまたはシステム・キーです。

トークン領域

証跡レコードには、2つのトークン領域も含まれることがあります。1つは内部使用を目的としており、ここでは説明しません。もう1つはユーザー・トークン領域です。ユーザー・トークンは、ターゲット列へのレプリケーションまたは他の目的のために取得されて証跡レコードに格納される環境値です。使用される場合、これらのトークンはレコードのデータ部分の後に続き、ログダンプで確認すると次のように表示されます。

パラメータ
TKN-HOST
TKN-GROUP
TKN-BA_IND
TKN-COMMIT_TS
TKN-POS
TKN-RBA
TKN-TABLE
TKN-OPTYPE
TKN-LENGTH
TKN-TRAN_IND
: syshq
: EXTORA
: AFTER
: 2011-01-24 17:08:59.000000
: 3604496
: 4058
: SOURCE.CUSTOMER
: INSERT
: 57
: BEGIN

Oracle GoldenGateの操作タイプ

次に、Oracle GoldenGateの操作タイプの一部を示します。Oracle GoldenGateに新機能が追加されると、タイプが追加されることがあります。最新のリストを確認するには、ログダンプ・ユーティリティのSHOW RECTYPEコマンドを使用してください。

表C-2 Oracle GoldenGateの操作タイプ

タイプ 説明 プラットフォーム

1-Abort

トランザクションが中断されました。

NSK TMF

2-Commit

トランザクションがコミットされました。

NSK TMF

3-Delete

レコードまたは行が削除されました。Deleteレコードには、通常、完全レコード・イメージが含まれます。ただし、COMPRESSDELETESパラメータが使用されている場合は、キー列のみが示されます。

すべて

4-EndRollback

データベース・ロールバックが終了しました。

NSK TMF

5-Insert

レコードまたは行が挿入されました。Insertレコードには、完全レコード・イメージが含まれます。

すべて

6-Prepared

ネットワーク・トランザクションのコミット準備が完了しました。

NSK TMF

7-TMF-Shutdown

TMFが停止しました。

NSK TMF

8-TransBegin

現在使用されていません。

NSK TMF

9-TransRelease

現在使用されていません。

NSK TMF

10-Update

レコードまたは行が更新されました。Updateレコードには、完全レコード・イメージが含まれます。注意: レコード・ヘッダーのパーティション・インジケータが4の場合、そのレコードはFieldComp形式(後述を参照)であり、更新は圧縮されています。

すべて

11-UpdateComp

TMF AuditComp形式のレコードまたは行が更新されました。この形式では、変更されたバイトのみが示されます。2-byte_offset2-byte_length形式の4バイトの記述子が、各データ・フラグメントの先頭に配置されます。byte offsetは、ソース表内の列の序数索引です。lengthはデータの長さです。

NSK TMF

12-FileAlter

データベース・ファイルの属性が変更されました。

NSK

13-FileCreate

データベース・ファイルが作成されました。

NSK

14-FilePurge

データベース・ファイルが削除されました。

NSK

15-FieldComp

SQL表の行が更新されました。この形式では、変更されたバイトのみが示されます。変更されていない列の変更前イメージは、データベースでは記録されません。2-byte_offset2-byte_length形式の4バイトの記述子が、各データ・フラグメントの先頭に配置されます。byte offsetは、ソース表内の列の序数索引です。lengthはデータの長さです。レコード・ヘッダーのパーティション・インジケータの4は、FieldComp形式を示します。

すべて

16-FileRename

ファイル名が変更されました。

NSK

17-AuxPointer

新規データを保持するAUX証跡および読取りを開始する場所に関する情報が含まれます。

NSK TMF

18-NetworkCommit

ネットワーク・トランザクションがコミットされました。

NSK TMF

19-NetworkAbort

ネットワーク・トランザクションが中断されました。

NSK TMF

90-(GGS)SQLCol

SQL表に1つ以上の列が追加されたか、属性が変更されました。

NSK

100-(GGS)Purgedata

ファイルからすべてのデータが削除されました(PURGEDATA)。

NSK

101-(GGS)Purge(File)

ファイルが消去されました。

NSK非TMF

102-(GGS)Create(File)

ファイルが作成されました。Oracle GoldenGateレコードには、ファイル属性が含まれます。

NSK非TMF

103-(GGS)Alter(File)

ファイルが変更されました。Oracle GoldenGateレコードには、変更されたファイル属性が含まれます。

NSK非TMF

104-(GGS)Rename(File)

ファイル名が変更されました。Oracle GoldenGateレコードには、元の名前と新しい名前が含まれます。

NSK非TMF

105-(GGS)Setmode

SETMODE操作が実行されました。Oracle GoldenGateレコードには、SETMODE情報が含まれます。

NSK非TMF

106-GGSChangeLabel

CHANGELABEL操作が実行されました。Oracle GoldenGateレコードには、CHANGELABEL情報が含まれます。

NSK非TMF

107-(GGS)Control

CONTROL操作が実行されました。Oracle GoldenGateレコードには、CONTROL情報が含まれます。

NSK非TMF

115および117

(GGS)KeyFieldComp(32)

主キーが更新されました。Oracle GoldenGateレコードには、キーの変更前イメージと、キーおよび行の変更後イメージが含まれます。データはFieldComp形式(圧縮)です。つまり、変更されていない列の変更前イメージは、データベースでは記録されません。

WindowsおよびUNIX

116-LargeObject

116-LOB

RAW列、BLOB列、CLOB列またはLOB列を示します。このタイプのデータは、複数のレコードにわたって格納されます。

WindowsおよびUNIX

132-(GGS) SequenceOp

順序に対する操作を示します。

WindowsおよびUNIX

134-UNIFIED UPDATE

135-UNIFIED PKUPDATE

同じレコードに変更前と変更後の値の両方が含まれている、統一された証跡レコードを示します。UNIFIED UPDATE内の変更前イメージには、変更前イメージと変更後イメージの両方のトランザクション・レコードで使用可能なすべての列が含まれます。UNIFIED PKUPDATE内の変更前イメージには、トランザクション・レコードで使用可能なすべての列が含まれますが、変更後イメージは、UPDATEで変更された主キー列および列に制限されます。

WindowsおよびUNIX

160 - DDL_Op

DDL操作を示します。

WindowsおよびUNIX

161-

RecordFragment

ベース・レコードを超えており、複数のレコードにわたって格納する必要のある大きな行の一部であることを示します。

WindowsおよびUNIX

200-GGSUnstructured Block

200-BulkIO

BULKIO操作が実行されました。Oracle GoldenGateレコードには、RAW DP2ブロックが含まれます。

NSK非TMF

201から204

これらは、NonStopトレース・レコードの異なるタイプです。トレース・レコードは、Oracle GoldenGateサポートのアナリストによって使用されます。説明は次のとおりです。

  • ARTYPE_FILECLOSE_GGS 201 — ソース・アプリケーションが、構造化されていないI/Oに対して開かれていたファイルを閉じました。Replicatによって使用されます。

  • ARTYPE_LOGGERTS_GGS 202 — ロガー・ハートビート・レコード。

  • ARTYPE_EXTRACTERTS_GGS 203 — 未使用。

  • ARTYPE_COLLECTORTS_GGS 204 — 未使用。

NSK非TMF

205-GGSComment

ログダンプ・ユーティリティによって作成されたコメント・レコードを示します。コメント・レコードは、ログダンプによって、そのSAVEコマンドでファイルに保存されるデータの最初と最後に作成されます。

すべて

249から254

これらは、NonStopトレース・レコードの異なるタイプです。トレース・レコードは、Oracle GoldenGateサポートのアナリストによって使用されます。説明は次のとおりです。

  • ARTYPE_LOGGER_ADDED_STATS 249 — ソース・アプリケーションがロガーで開いている状態を閉じたときにロガーによって作成されるステータス・レコード(SENDERSTATSが有効化されており、ステータスがログ証跡に書き込まれる場合)。

  • ARTYPE_LIBRARY_OPEN 250BASELIBによって書き込まれ、アプリケーションがファイルを開いたことを示します。

  • ARTYPE_LIBRARY_CLOSE 251 BASELIBによって書き込まれ、アプリケーションがファイルを閉じたことを示します。

  • ARTYPE_LOGGER_ADDED_OPEN 252 — 未使用。

  • ARTYPE_LOGGER_ADDED_CLOSE 253 — 未使用。

  • ARTYPE_LOGGER_ADDED_INFO 254 — ロガーによって書き込まれ、後続のレコードでI/Oを実行したソース・アプリケーションに関する情報が含まれます(SENDERSTATSが有効化されており、ステータスがログ証跡に書き込まれる場合)。トレース・レコードのファイル名は、アプリケーションのオブジェクト・ファイルです。トレース・データには、アプリケーション・プロセスの名前と、その実行で使用されていたライブラリ(存在する場合)の名前が含まれます。

NSK非TMF

Oracle GoldenGate証跡のヘッダー・レコード

Oracle GoldenGate証跡にあるトランザクション関連のレコードに加え、各証跡ファイルにはファイル・ヘッダーが含まれます。

ファイル・ヘッダーは、データ・レコードに先行する証跡ファイルの先頭部分にレコードとして格納されます。証跡のヘッダーに格納されているレコードに関する情報によって、Oracle GoldenGateプロセスは、各レコードがOracle GoldenGateの現行リリースでサポートされる形式であるかどうかを判断できます。

証跡ヘッダー・フィールドはトークンとして格納されます。トークンの形式はOracle GoldenGateのすべてのバージョンで同じです。Oracle GoldenGateのあるバージョンで与えられたトークンがサポートされない場合、そのトークンは無視されます。非推奨のトークンには、Oracle GoldenGateの以前のバージョンとの互換性が保たれるようデフォルト値が割り当てられます。

証跡のヘッダーは、ログダンプ・ユーティリティのFILEHEADERコマンドを使用して表示できます。ファイル・ヘッダーのトークンの詳細は、Oracle GoldenGateログダンプ・リファレンスを参照してください。