データベース・チェックポイントを使用する場合、ADD CHECKPOINTTABLE
コマンドを実行すると、データベースのユーザー定義名を使用してOracle GoldenGateによりチェックポイント表が作成されます。または、ユーザーがchkpt_
db
_create.sql
スクリプトを使用して表を作成することもできます。ここでdb
は、スクリプトでサポートされるデータベース・タイプの略称です。
2つの表があります: メイン・チェックポイント表と、自動的に作成される補助チェックポイント表です。補助表はトランザクション表と呼ばれ、_lox
が付加されたプライマリ・チェックポイント表の名前が含まれています。各Replicatまたは調整されたReplicatの各スレッドでは、進捗情報を格納するためにチェックポイント表の1行を使用します。
チェックポイント時には、通常、適用された(合計nトランザクション間の)いくつかのトランザクションがあり、残りは進行中です。たとえば、Replicatが、CSN1からCSN3までの範囲のnトランザクションのグループを処理している場合を考えてみます。CSN1は高基準値で、CSN3は低基準値です。高基準値より高いCSNを持つトランザクションは処理されず、低基準値より低いCSNを持つトランザクションはすでに処理されています。完了したトランザクションは、チェックポイント表のLOG_CMPLT_XID
列に格納されます。これらのトランザクションのオーバーフローは、トランザクション表(補助チェックポイント表)のLOG_CMPLT_XID
列に格納されます。
現在、Replicat (または調整Replicatの各Replicatスレッド)では、トランザクションを(並列ではなく)順次適用します。そのため、高基準値(表のLOG_CSN
値)は、低基準値(表のLOG_CMPLT_CSN
値)と常に同じで、通常、LOG_CMPLT_XID
列のトランザクションIDが1つのみ存在します。同じCSNを共有している複数のトランザクションが存在する場合のみ、例外です。
これらの表の列の名前または属性は、変更しないでください。表記憶属性は、必要に応じて変更できます。
表E-1 チェックポイント表の定義
列 | 説明 |
---|---|
|
チェックポイントにこの表を使用するReplicatグループの名前。複数のReplicatグループで同じ表を使用できます。この列は主キーの一部です。 |
|
同じ表に書き込むReplicatグループの数にかかわらず、 |
|
Replicatがチェックポイント時に読み取っていた入力証跡の順序番号。 |
|
|
|
ソース・トランザクションのコミットのタイムスタンプ。 |
|
チェックポイント表の作成日時。 |
|
チェックポイント表の最終更新日時。 |
|
現在のOracle GoldenGateのホーム・ディレクトリまたはフォルダ。 |
|
CSNの高基準値(上限)を格納します。この値より高いCSNを持つトランザクションは処理されません。 |
|
使用されません。下位互換性の目的で保持されています。 |
|
CSNの低基準値(下限)を格納します。この値より低いCSNを持つトランザクションはすでに処理されています。 |
|
すでに適用されている高基準値と低基準値の間のトランザクションを格納します。 |
|
チェックポイント表形式のバージョン。表のバージョン番号として識別するための将来の拡張を有効にします。 |
表E-2 トランザクション表の定義
列 | 説明 |
---|---|
|
チェックポイントにこの表を使用するReplicatグループの名前。複数のReplicatグループで同じ表を使用できます。この列はトランザクション表の主キーの一部です。 |
|
同じ表に書き込むReplicatグループの数にかかわらず、 |
|
チェックポイント表を参照する外部キー。この列はトランザクション表の主キーの一部です。 |
|
多くのオーバーフロー・トランザクションがあるため、それらすべてを格納するために複数の行が必要な場合に、一意の行を作成します。この列はトランザクション表の主キーの一部です。 |
|
すでに適用されている高基準値と低基準値の間のトランザクションのオーバーフローを格納します。 |