Oracle GoldenGateチェックポイント表

データベース・チェックポイントを使用する場合、ADD CHECKPOINTTABLEコマンドを実行すると、Oracle GoldenGateによりユーザー定義名を使用してデータベースにチェックポイント表が作成されます。または、ユーザーがchkpt_db_create.sql scriptを使用して表を作成することもできます(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を共有している複数のトランザクションが存在する場合のみ、例外です。

これらの表の列の名前または属性は、変更しないでください。表記憶属性は、必要に応じて変更できます。

説明
LOG_BSN
LOG_BSNは、トランザクションの再処理に合うようにExtractを設定するために必要な情報を提供します。Extractは、Replicatによってすでに適用された少量のデータを再生成する可能性があるため、Replicatによるなんらかのフィルタリングが必要です。
VERSION
チェックポイント表形式のバージョン。表のバージョン番号として識別するための将来の拡張を有効にします。
AUDIT_TS
ソース・トランザクションのコミットのタイムスタンプ。
SEQNO
Replicatがチェックポイント時に読み取っていた入力証跡の順序番号。
RBA
SEQNOで識別される証跡でReplicatが到達した相対バイト・アドレス。RBASEQNOを合せて、チェックポイント時のReplicatの進捗を識別する証跡内の絶対位置を示します。
GROUP_NAME (primary key)
チェックポイントにこの表を使用するReplicatグループの名前。複数のReplicatグループで同じ表を使用できます。この列は主キーの一部です。
LAST_UPDATE_TS
チェックポイント表の最終更新日時。
CREATE_TS
チェックポイント表の作成日時。
CURRENT_DIR
現在のOracle GoldenGateのホーム・ディレクトリまたはフォルダ。
LOG_CMPLT_XIDS
すでに適用されている高基準値と低基準値の間のトランザクションを格納します。
LOG_CMPLT_CSN
CSNの低基準値(下限)を格納します。この値より低いCSNを持つトランザクションはすでに処理されています。
LOG_CSN
CSNの高基準値(上限)を格納します。この値より高いCSNを持つトランザクションは処理されません。
LOG_XID
使用されません。下位互換性の目的で保持されています。
GROUP_KEY (primary key)
一意の識別子。次とともに
GROUPNAME
同じ表に書き込んでいるReplicatグループの数に関係なく、チェックポイントを一意に識別します。この列は主キーの一部です。
説明
GROUP_KEY
同じ表に書き込むReplicatグループの数にかかわらず、GROUPNAMEとともにチェックポイントを一意に識別する、一意の識別子。この列はトランザクション表の主キーの一部です。
LOG_CMPLT_XIDS_SEQ
多くのオーバーフロー・トランザクションがあるため、それらすべてを格納するために複数の行が必要な場合に、一意の行を作成します。この列はトランザクション表の主キーの一部です。
LOG_CMPLT_XIDS
すでに適用されている高基準値と低基準値の間のトランザクションのオーバーフローを格納します。
LOG_CMPLT_CSN
チェックポイント表を参照する外部キー。この列はトランザクション表の主キーの一部です。
GROUP_NAME
チェックポイントにこの表を使用するReplicatグループの名前。複数のReplicatグループで同じ表を使用できます。この列はトランザクション表の主キーの一部です。

トピック:

内部チェックポイント情報

SHOWCHオプションを使用したINFOコマンドでは、現在のチェックポイント・エントリだけでなく、レコード自体に関するメタデータ情報も表示されます。この情報は記載されておらず、サポート・ケースの解決時にOracle GoldenGateプロセスおよびサポート担当者が使用するためのものです。

メタデータは、SHOWCH出力内の次のエントリに含まれています。

Header:

    Version = 2

    Record Source = A

    Type = 1

    # Input Checkpoints = 1

    # Output Checkpoints = 0

    File Information:

    Block Size = 2048

    Max Blocks = 100

    Record Length = 2048

    Current Offset = 0

    Configuration:

    Data Source = 0

    Transaction Integrity = -1

    Task Type = 0

    Status:
    
    Start Time = 2011-01-12 13:10:13

    Last Update Time = 2011-01-12 21:23:31

    Stop Status = A

    Last Result = 400

INFO EXTRACT SHOWCHコマンド: チェックポイント情報

次の例は、SHOWCHオプションを指定したINFO EXTRACTコマンドで返されるチェックポイント情報を示しています。ここでは、データ・ソースはOracle RACデータベース・クラスタなので、出力にはスレッド情報も含まれています。過去のチェックポイントを表示するには、表示するチェックポイント番号をSHOWCH引数に続いて指定します。
EXTRACT JC108XT Last Started 2011-01-01 14:15 Status ABENDED
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /orarac/oradata/racq/redo01.log
 2011-01-01 14:16:45 Thread 1, Seqno 47, RBA 68748800
Log Read Checkpoint File /orarac/oradata/racq/redo04.log
 2011-01-01 14:16:19 Thread 2, Seqno 24, RBA 65657408
Current Checkpoint Detail:
Read Checkpoint #1
 Oracle RAC Redo Log
 Startup Checkpoint (starting position in data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68548112
 Timestamp: 2011-01-01 13:37:51.000000
 SCN: 0.8439720
 Redo File: /orarac/oradata/racq/redo01.log

Recovery Checkpoint (position of oldest unprocessed transaction in data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68748304
 Timestamp: 2011-01-01 14:16:45.000000
 SCN: 0.8440969
Redo File: /orarac/oradata/racq/redo01.log
 Current Checkpoint (position of last record read in the data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68748800
 Timestamp: 2011-01-01 14:16:45.000000
 SCN: 0.8440969
 Redo File: /orarac/oradata/racq/redo01.log
Read Checkpoint #2
 Oracle RAC Redo Log
 Startup Checkpoint(starting position in data source):
 Sequence #: 24
 RBA: 60607504
 Timestamp: 2011-01-01 13:37:50.000000
 SCN: 0.8439719
 Redo File: /orarac/oradata/racq/redo04.log
Recovery Checkpoint (position of oldest unprocessed transaction in data source):
 Thread #: 2
 Sequence #: 24
 RBA: 65657408
 Timestamp: 2011-01-01 14:16:19.000000
 SCN: 0.8440613
 Redo File: /orarac/oradata/racq/redo04.log
 Current Checkpoint (position of last record read in the data source):
 Thread #: 2
 Sequence #: 24
 RBA: 65657408
 Timestamp: 2011-01-01 14:16:19.000000
 SCN: 0.8440613
 Redo File: /orarac/oradata/racq/redo04.log
Write Checkpoint #1
 GGS Log Trail
 Current Checkpoint (current write position):
 Sequence #: 2
 RBA: 2142224
 Timestamp: 2011-01-01 14:16:50.567638
 Extract Trail: ./dirdat/eh
 Header:
 Version = 2
 Record Source = A
 Type = 6
 # Input Checkpoints = 2
 # Output Checkpoints = 1
 File Information:
 Block Size = 2048
 Max Blocks = 100
 Record Length = 2048
 Current Offset = 0
Configuration:
 Data Source = 3
 Transaction Integrity = 1
 Task Type = 0
 Status:
 Start Time = 2011-01-01 14:15:14
 Last Update Time = 2011-01-01 14:16:50
 Stop Status = A
 Last Result = 400

INFO REPLICAT、SHOWCH: チェックポイント情報

基本コマンドでは、現在のチェックポイントを表示します。特定の番号の過去のチェックポイントを表示するには、番号の値をSHOWCH引数に続いて入力します。

REPLICAT JC108RP Last Started 2011-01-12 13:10 Status RUNNING
Checkpoint Lag 00:00:00 (updated 111:46:54 ago)
Log Read Checkpoint File ./dirdat/eh000000000
 First Record RBA 3702915
Current Checkpoint Detail:
 Read Checkpoint #1
 GGS Log Trail
 Startup Checkpoint(starting position in data source):
 Sequence #: 0
 RBA: 3702915
 Timestamp: Not Available
 Extract Trail: ./dirdat/eh
 Current Checkpoint (position of last record read in the data source):
 Sequence #: 0
 RBA: 3702915
 Timestamp: Not Available
 Extract Trail: ./dirdat/eh
 Header:
 Version = 2
 Record Source = A
 Type = 1
 # Input Checkpoints = 1
 # Output Checkpoints =
 File Information:
 Block Size = 2048
 Max Blocks = 100
 Record Length = 2048
 Current Offset = 0
 Configuration:
 Data Source = 0
 Transaction Integrity = -1
 Task Type = 0
 Status:
 Start Time = 2011-01-12 13:10:13
 Last Update Time = 2011-01-12 21:23:31
 Stop Status = A
 Last Result = 400