日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

主從實例數據校驗

本文為您介紹全球數據庫網絡(Global Database Network,簡稱GDN)主從實例數據校驗的方法。

前提條件

已開通GDN服務并添加從實例,詳情請參見開通GDN服務

注意事項

  • 本操作只支持在從實例中執行。

  • 數據校驗會占用一部分存儲資源,建議在業務低峰期進行。

提交校驗任務

語法

CHECK REPLICA TABLE {`test_db`.`test_tb`} | {`test_db`} [CHANNEL='channel_name'] [MODE=direct|snapshot];

使用限制

  • 不支持對無主鍵表進行校驗。

  • 正在校驗的表,再次提交校驗任務時,新的校驗任務會被忽略。

  • 對已經完成校驗的表再次進行校驗時,系統會自動刪除之前的校驗結果,然后生成新的校驗結果。

說明
  • 校驗任務以異步方式執行。

  • 支持對單張表進行校驗,也支持對指定庫中的所有表進行校驗。

  • CHANNEL:可以通過在從實例上執行SHOW SLAVE STATUS獲取Channel_Name字段,詳情請參見SHOW SLAVE STATUS

  • MODE為校驗模式:

    • snapshot:構造上下游一致性快照進行校驗,需要先開啟Sync Point,詳情請參見開啟Sync Point

    • direct:直接讀取上下游數據進行校驗,存在誤報率。

示例

mysql> check replica table `testdb`.`testtb` channel='test' mode=direct;
Query OK, 0 rows affected (0.05 sec)

開啟Sync Point

主實例執行如下SQL即可開啟Sync Point功能:

set global enable_polarx_sync_point = true;
set global enable_sync_point = true;
set global enable_xa_tso = true;
set global enable_auto_commit_tso = true;
# 設置sync point產生的時間間隔,單位:毫秒
set global SYNC_POINT_TASK_INTERVAL = 5000;

開啟Sync Point功能后,CDC(Change Data Capture,日志節點)在主從實例數據同步過程中會實時構造主從實例的TSO-MAPPING,您可以通過從實例中的information_schema.rpl_sync_point視圖來查看所有的TSO-MAPPING。

mysql> select * from information_schema.rpl_sync_point limit 10;
+-------+---------------------+---------------------+---------------------+
| ID    | PRIMARY_TSO         | SECONDARY_TSO       | CREATE_TIME         |
+-------+---------------------+---------------------+---------------------+
| 31482 | 7211850887478640704 | 7211850889504489536 | 2024-06-27 06:00:41 |
| 31483 | 7211850908445966400 | 7211850910203379776 | 2024-06-27 06:00:46 |
| 31484 | 7211850929417486400 | 7211850931690799168 | 2024-06-27 06:00:51 |
| 31485 | 7211850950393200704 | 7211850952322580544 | 2024-06-27 06:00:56 |
| 31486 | 7211850971368915008 | 7211850973738696768 | 2024-06-27 06:01:01 |
| 31487 | 7211850992327852096 | 7211850994282397760 | 2024-06-27 06:01:06 |
| 31488 | 7211851013303566400 | 7211851015677542464 | 2024-06-27 06:01:11 |
| 31489 | 7211851034275086400 | 7211851036204466240 | 2024-06-27 06:01:16 |
| 31490 | 7211851055250800704 | 7211851057595416640 | 2024-06-27 06:01:21 |
| 31491 | 7211851076218126400 | 7211851078210420800 | 2024-06-27 06:01:26 |
+-------+---------------------+---------------------+---------------------+
10 rows in set (0.04 sec)
說明

TSO:格式為時間戳,Binlog中每一個事務都包含TSO,用于區分每一個事務。詳情請參見日志服務(Binlog)

TSO-MAPPING:某一時刻主從實例的TSO。

查看校驗進度

語法

CHECK REPLICA TABLE {`test_db`.`test_tb`} | {`test_db`} SHOW PROGRESS;
說明

支持查看單張表的校驗進度,同時也支持查看指定數據庫下所有表的校驗進度。

示例

mysql> CHECK REPLICA TABLE `test_db`.`test_tb` SHOW PROGRESS;
+----------+---------+-------+----------+---------+
| DATABASE | TABLE   | STAGE | STATUS   | SUMMARY |
+----------+---------+-------+----------+---------+
| test_db  | test_tb | CHECK | FINISHED | SUCCESS |
+----------+---------+-------+----------+---------+
1 row in set (0.04 sec)

暫停校驗任務

語法

CHECK REPLICA TABLE {`test_db`.`test_tb`} | {`test_db`} PAUSE;
說明

每張表的校驗任務會對應一個或多個子任務(根據數據量進行自動拆分)。在執行完暫停校驗語句后,處于執行狀態的子任務將繼續執行,而未進入執行狀態的子任務將不再執行。

示例

mysql> CHECK REPLICA TABLE `testdb`.`testtb` PAUSE;
Query OK, 0 rows affected (0.05 sec)

重啟校驗任務

語法

CHECK REPLICA TABLE {`test_db`.`test_tb`} | {`test_db`} CONTINUE;
說明

重啟校驗任務后,未進入執行過的子任務將會執行。

示例

mysql> CHECK REPLICA TABLE `testdb`.`testtb` CONTINUE;
Query OK, 0 rows affected (0.05 sec)

查看校驗結果

語法

CHECK REPLICA TABLE {`test_db`.`test_tb`} | {`test_db`} SHOW DIFF;

示例

mysql> CHECK REPLICA TABLE `test_db`.`test_tb` SHOW DIFF;
+----------+---------+------------+--------+--------------+-------------+--------------+-------------+
| DATABASE | TABLE   | ERROR_TYPE | STATUS | SRC_KEY_NAME | SRC_KEY_VAL | DST_KEY_NAME | DST_KEY_VAL |
+----------+---------+------------+--------+--------------+-------------+--------------+-------------+
| test_db  | test_tb | Miss       | FOUND  | [id]         | [2]         | [id]         | NULL        |
+----------+---------+------------+--------+--------------+-------------+--------------+-------------+
1 row in set (0.00 sec)
說明

ERROR_TYPE字段用于表示產生差異數據的原因,其取值范圍如下所示:

  • Miss:下游缺少數據。

  • Orphan:下游多數據。

  • Diff:上下游數據不一致。

刪除校驗任務

語法

CHECK REPLICA TABLE {`test_db`.`test_tb`} | {`test_db`} CANCEL;
說明

刪除校驗任務后,將會同時清理校驗結果。

示例

mysql> CHECK REPLICA TABLE `testdb`.`testtb` CANCEL;
Query OK, 0 rows affected (0.05 sec)