暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

OMS数据校验测试(四)

原创 许玉冲 2022-03-02
948

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(目标数据库)2883OB_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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论