分布式事务数据库HotDB的存储节点数据一致性检测
主从数据一致性检查
HotDB Server提供数据节点中的主从存储节点一致性校验的功能。需要校验的主备数据库,主库与备库必须分别配置为主存储节点与备存储节点,并且属于同一个数据节点。
主从数据一致性检查,可校验主库与从库各个表的表结构是否相同,表数据是否一致,主从是否延迟。当表数据在主库与从库间仅有少量的数据不一致时,主从数据一致性检查可定位到不一致的数据行主键值。
登录计算节点的管理端(3325端口),执行show @@masterslaveconsistency命令,即可查看表在主库和备库上是否一致:
mysql> show @@masterslaveconsistency;
±--------------------------------±--------------------------------±------±-------±-------------------------------------+
| db | table | dn | result| info |
±--------------------------------±--------------------------------±------±-------±-------------------------------------+
| DB_T | FB_STUDENT | dn_04 | NO | 存在数据不一致, 因为 存储节点: 5, 表: FB_STUDENT, MySQL错误: Table’db252.fb_student’ doesn’t exist |
| DB_A | SP | dn_04 | NO | 表: SP在节点: 4存在数据不一致,列: ID, 分布区间为: 0-17;, 并且不一致行键为: (ID):(2),(1) |
| DB_T | JOIN_Z | | YES | |
±--------------------------------±--------------------------------±------±-------±--------------------------------------+
3 row in set (0.07 sec)
结果中显示逻辑库DB_T中的JOIN_Z表,在所有节点的主备存储节点之间,数据是一致的
表结构如下:
- 1 db:逻辑库名称。
- 2 table:表名称。
- 3 dn:数据节点名称;当表在主备存储节点不一致时,此列会显示数据节点名称;
- 4 result:校验结果为YES,表示该表在主备存储节点之间是一致的;为NO,表示该表在主备存储节点之间不一致,同时会在info输出不一致的信息;UNKNOWN,表示未知错误,可能存在表结构不一致的情况,主从复制中断都可能出现UNKNOWN。
- 5 info:当主从数据一致时,无信息输出;当主从数据不一致时,会有以下几种信息:
表的大量数据不一致 | Table: … in datanode: … exist a large amount of data inconsistency |
---|
来源 https://zhuanlan.zhihu.com/p/389538198
相关文章