檢查點表格其他詳細資訊

使用資料庫檢查點時,Oracle GoldenGate 會在執行 ADD CHECKPOINTTABLE 命令時,在資料庫中建立具有使用者定義名稱的檢查點表格,或者使用者可以使用 chkpt_db_create.sql script 來建立表格 (其中資料庫是命令檔支援之資料庫類型的縮寫)。

有兩個表格:主要檢查點表格和自動建立的輔助檢查點表格。輔助表格 (稱為交易表格) 包含 _lox 附加的主要檢查點表格名稱。每個 Replicat 或協調式 Replicat 的每個繫線都會使用檢查點表格中的一個資料列來儲存進度資訊。

在檢查點時間,一般會套用一些交易 (包括 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。唯一的例外是有多個共用相同 CSN 的交易。

請勿變更這些表格中資料欄的名稱或屬性。您可以視需要變更表格儲存體屬性。

資料欄 說明
LOG_BSN
LOG_BSN 提供將 Extract 設為即時以重新處理交易所需的資訊。由於 Extract 可能會重新產生 Replicat 已套用的少量資料,因此需要使用 Replicat 進行部分篩選。
VERSION
檢查點表格格式的版本。可將未來的增強功能識別為表格的版本號碼。
AUDIT_TS
來源交易確認的時間戳記。
SEQNO
Replicat 在檢查點時所讀取之輸入歷程檔的序號。
RBA
Replicat 在 SEQNO 所識別的歷程檔中達到的相對位元組位址。RBA + SEQNO 在歷程檔中提供一個絕對位置,用來識別檢查點時的 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
唯一 ID (連同 GROUPNAME) 可唯一識別檢查點,無論寫入相同表格的 Replicat 群組數目為何。此資料欄是交易表格主索引鍵的一部分。
LOG_CMPLT_XIDS_SEQ
如果有很多溢位交易需要多個資料列來全部儲存,則在事件中建立唯一資料列。此資料欄是交易表格主索引鍵的一部分。
LOG_CMPLT_XIDS
儲存已套用之高浮水印與低浮水印之間的交易溢位。
LOG_CMPLT_CSN
參照檢查點表格的外來索引鍵。此資料欄是交易表格主索引鍵的一部分。
GROUP_NAME
此表格用於檢查點的 Replicat 群組名稱。有多個 Replicat 群組使用相同的表格。此資料欄是交易表格主索引鍵的一部分。

內部檢查點資訊

INFO 命令搭配 SHOWCH 選項不僅會顯示目前的檢查點項目,還會顯示記錄本身的相關描述資料資訊。此資訊並未記錄下來,而且是供 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 命令:檢查點資訊

下列範例顯示 INFO EXTRACT 命令傳回的檢查點資訊以及 SHOWCH 選項。在此情況下,資料來源為 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