本文介紹了如何使用SHOW COLUMNAR OFFSET
語句查看列存同步位點。
注意事項
執行個體版本需為5.4.19-16989811及以上。
文法
SHOW COLUMNAR OFFSET
樣本
SHOW COLUMNAR OFFSET;
+--------------------+---------------+-----------+---------------------+-------------------------+-------------+
| TYPE | BinlogFile | Position | TSO | TIME | LATENCY(ms) |
+--------------------+---------------+-----------+---------------------+-------------------------+-------------+
| CDC | binlog.000010 | 223718750 | 7185913700627251264 | 2024-04-16 16:15:34.050 | 218 |
| COLUMNAR_LATENCY | binlog.000010 | 223718418 | 7185913684139442240 | 2024-04-16 16:15:30.119 | 3931 |
| CN_MIN_LATENCY | binlog.000010 | 223718418 | 7185913684139442240 | 2024-04-16 16:15:30.119 | 3931 |
| CN_MAX_LATENCY | binlog.000010 | 223714434 | 7185912425433006144 | 2024-04-16 16:10:30.020 | 304030 |
| CN_PURGE_WATERMARK | binlog.000010 | 223713604 | 7185912174181613632 | 2024-04-16 16:09:30.117 | 363933 |
+--------------------+---------------+-----------+---------------------+-------------------------+-------------+
返回結果說明:
列名 | 說明 |
TYPE | 該行資料所屬類型。 |
BinlogFile | 當前最新的Binlog檔案。 |
Position | 當前最新的Binlog檔案位點。 |
TSO | 時間戳記,Binlog中每一個事務都包含TSO,用於區分每一個事務。 |
TIME | TSO對應的實際時間。 |
INTERVAL(ms) | 時間間隔。 |
類型為 CDC 的行,BinlogFile 和 Position 代表主執行個體的最新位點,TSO是cdc同步到DN的binlog位點的tso,TIME是該 TSO 的實際時間,LATENCY延時記錄的是CDC節點收集多個DN產生全域一致binlog的延遲;
類型為 COLUMNAR_LATENCY 的行,BinlogFile 和 Position 代表列存節點已同步到的 Binlog 位點,TSO 是同步位點的時間戳記,TIME 是申請該 TSO 的實際時間,LATENCY則記錄的是 "CDC的TIME" 減去 "TSO 實際時間" 得到的間隔。
類型為CN_MIN_LATENCY的行,記錄的是CN(計算節點)的最小延遲。
類型為CN_MAX_LATENCY的行,記錄的是CN(計算節點)的最大延遲。
類型為CN_PURGE_WATERMARK的行,記錄的是CN(計算節點)已經purge的水位線。
一般 CDC 行和 COLUMNAR_LATENCY 行的 BinlogFile 和 Position 位點接近,則說明列存的資料和主執行個體基本一致。
常見問題
沒有 COLUMNAR_LATENCY 行資料。
答:說明沒有列存節點,或者列存服務從未同步過資料。
CDC 行的 binlog 位點為什麼和 COLUMNAR 行的資料始終有略微差距?
答:空閑情況下,沒有 DML 更新,CDC 節點(日誌節點)每隔 30s 才會連續產生三個 TSO 事件,保證位點推進,所以列存節點監聽 binlog 事件,同步的時候每隔一段時間只會取第一個 TSO 事件觸發提交,所以會有略微差距。
COLUMNAR_LATENCY 行的 LATENCY 列值能否代表列存與主執行個體的延遲?
答:COLUMNAR 行的 LATENCY 列值統計的是CDC最新TSO與列存最後一次提交 binlog 事件的 TSO 的時間間隔,只能當作一定參考,例如空閑情況下每隔 30s 才會有新的 binlog 事件,LATENCY 可能會接近30s,實際是由於binlog中沒有新增資料,延遲理論上為0,這是因為列存節點是攢批提交的,所以心跳間隔比較大。
如何查看 PolarDB-X 主執行個體的最新 binlog 位點和 binlog 事件內容?
答:可通過
SHOW BINARY LOGS
查看 Binlog 記錄檔列表,可通過SHOW BINLOG EVENTS
查看Binlog 檔案中的具體事件資訊。