D コミット順序番号の使用方法

この付録では、Oracle GoldenGateのコミット順序番号(CSN)をOracleおよびOracle以外のデータベースとともに使用する方法について説明します。

Oracle、DB2 LUWおよびDB2 z/OS以外のすべてのデータベース・プラットフォームは、固定長のCSNを持ちます。このCSNには、固定長にするために必要に応じて先行する0(ゼロ)が埋め込まれます。複数のフィールドを含むCSNは、各フィールド内で埋込みが行われることがあります。CSNの詳細は、Oracle GoldenGateの理解CSNの概要を参照してください。

MySQLではトランザクションIDがイベント・データの一部として作成されないため、Oracle GoldenGateは次の項目の組合せを一意のトランザクション識別子とみなします。

  • 識別するトランザクションのSTART TRANSACTIONレコードが含まれるログ・ファイルのログ・ファイル番号

  • そのレコードのレコード・オフセット

表D-1 Oracle GoldenGateのデータベースごとのCSN値

データベース CSN値

DB2 for i

sequence_number

説明:

  • sequence_numberは、固定長の20桁の10進ベースのDB2 iシステム順序番号です。

例:

12345678901234567890

DB2 LUW

LRI

説明:

バージョン10.1以降では、LRIは、DB2ログ・レコード識別子のピリオド区切りの番号のペアです。

例:

123455.34645

DB2 z/OS

RBA

説明:

  • RBAは、トランザクション・ログ内のコミット・レコードにおける6バイトの相対バイト・アドレスです。

例:

1274565892

MySQL

LogNum:LogPosition

説明:

  • LogNumは、識別されるトランザクションのSTART TRANSACTIONレコードが含まれるログ・ファイルの名前です。

  • LogPositionは、そのレコードのイベント・オフセット値です。イベント・オフセット値は、ログ・レコードのレコード・ヘッダー・セクションに格納されます。

たとえば、ログ番号が12で、ログ位置が121の場合、CSNは次のようになります。

000012:000000000000121

Oracle

system_change_number

説明:

  • system_change numberは、OracleのSCN値です。

例:

6488359

SQL Server

データベースが値を戻す方法に応じて、次のいずれかになります。

  • 先行する0(ゼロ)が埋め込まれた、0X接頭辞付きのコロン区切りの16進文字列(8:8:4)

  • 先行する0(ゼロ)が埋め込まれた、コロン区切りの10進文字列(10:10:5)

  • 先行する0(ゼロ)のない、0X接頭辞付きのコロン区切りの16進文字列

  • 先行する0(ゼロ)のない、コロン区切りの10進文字列

  • 10進文字列

説明:

  • 最初の値は仮想ログ・ファイル番号、2番目の値は仮想ログ内のセグメント番号、3番目の値はエントリ番号です。

例:

0X00000d7e:0000036b:01bd
0000003454:0000000875:00445
0Xd7e:36b:1bd
3454:875:445
3454000000087500445

Teradata

sequence_ID

説明:

  • sequence_IDは、固定長の出力可能な汎用順序IDです。

例:

0x0800000000000000D700000021