OMS安装:https://www.modb.pro/db/332629
OMS数据库同步:https://www.modb.pro/db/336397
本次分别测试对源数据库部分数据进行修改,仅对目标数据库进行修改,同时对源和目标数据进行修改,构造数据不一致场景,测试OMS数据校验校验功能。
OMS不仅对数据行数进行验证,同时还对数据内容进行相关验证。
经过测试OMS能够对表的insert,update,delete操作导致的数据不一致进行相关校验,并给出修订sql,在目标端数据进行数据修改,保证数据的一致性。
数据库信息:
| 192.168.6.61(源数据库) | 3306 | MYSQL 5.7.22-log |
| 192.168.6.69(目标数据库) | 2883 | OB_MYSQL_CE 3.1.0 |

1,手动update源数据库192.168.6.61 一条记录,构造数据库不一致情况
mysql> desc sbtest1;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| k | int(10) unsigned | NO | MUL | 0 | |
| c | char(120) | NO | | | |
| pad | char(60) | NO | | | |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> update sbtest1 set c='ccc' where id=11595;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
2,建立数据校验任务,并订正数据
#选择数据校验任务

2.1 校验任务发现数据不一致

2.2 查看不一致情况

2.3 订正

2.4 确认订正

2.5 订正成功

2.6 再次校验
根据需求选择对应的校验方法:
- 重启全量校验
- 重新校验异常的表

2.7 数据校验一致

3,手动insert源数据库192.168.6.61 一条记录,构造数据库不一致情况
3.1 插入数据测试
mysql> insert into sbtest1 values(99999,99,'9','9');
Query OK, 1 row affected (0.01 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
3.2 数据校验--可以正确校验
#校验不一致

#订正

4,手动delete源数据库192.168.6.61 一条记录,构造数据库不一致情况
4.1 删除数据
mysql> delete from sbtest1 where id=11595;
Query OK, 1 row affected (0.01 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
4.2数据校验
#校验不一致

#订正sql

5,手动更改目标数据库记录,构造数据库不一致情况
#192.168.6.69mysql> update sbtest1 set c='ccc' where id=11585;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> insert into sbtest1 values(99969,69,'9','9');
Query OK, 1 row affected (0.01 sec)
mysql> delete from sbtest1 where id=11594;
Query OK, 1 row affected (0.01 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
#校验结果

#订正 SQL 语句
订正操作,全部在目标端完成。

6,手动更改目标数据,源端库记录,构造数据库不一致情况
#修改数据不一致
#192.168.6.69 --目标端-- 不一致
update sbtest1 set c='aaa' where id=11585;-- 仅目的端有
insert into sbtest1 values(77769,69,'9','9');-- 仅源端有
delete from sbtest1 where id=11594;commit;
#192.168.6.61--源端-- 不一致
update sbtest1 set c='bbb' where id=11585;
-- 仅源端有
insert into sbtest1 values(88861,61,'9','9');-- 仅目的端有
delete from sbtest1 where id=11593;commit;
#启动数据校验

#数据更正

最后修改时间:2022-03-02 15:06:09
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




