精准定位数据差异行,DBMotion 数据库迁移工具再添新功能
丝滑的零停机在线迁移工具
DBMotion又发新版了!
此次版本更新,进一步加强了校验模块的能力,
并新增日志过滤功能、用户迁移和用户校验功能,
以及修复了多项问题。
01
查看校验失败表,
精准定位数据不一致行
本次新增了校验失败表,查看不一致功能,支持准确查看一个表内的源库和目标库到底哪些行不一致。迁移完成之后,如果你的表只有少量行不一致,就能很直接地帮你定位出来。
目前,DBMotion基于性能的考虑,对于源库和目标库的数据比较,是分块做checksum的。通过确定源库和目标库上每一个分片的checksum的一致性来确定表是否一致,加快对比的速度。这种对比方案,非常适用于表的绝大部分数据是一致的情况,用户校验完成后只需要着重关注不一致的表。
举个例子,当用户A使用DBMotion构建迁移任务,配置并完成了对象/表结构的迁移、全量迁移和增量迁移后,开始使用数据校验进行结果比对。在正常情况下,DBMotion迁移过来的数据应该跟源库是一模一样的,但是不管是增量同步、部分延迟、数据已在目标库被修改或是其他的原因,校验出数据后,部分表还是会出现不一致。
DBMotion新的版本允许用户点击“查看不一致”请求,去查看该校验失败的表到底是哪里不一致:
如图所示,该表中有三行不一致,页面显示为:
明显可以看到:
- id=1的行,目标库多,只在目标库存在这一行记录(蓝色)。
- id=2的行,字段值不一致,age列在源库是2(绿色),在目标库上是4(蓝色)。
- id=4的行,目标库少,只在源库上存在这一行记录(绿色)。
DBMotion将源库数据迁移到目标库,能够最大程度保证对象和数据的一致性。对于数据量特别大但只有很少一部分数据不一致的表来说,“查看不一致”可以精确定位到这些不一致的数据,明确到底是源库的数据、目标库的数据或是某一行数据的列不一致,从而确认导致数据不一致的原因。
在分析binlog日志时,如果发现最近的日志中正好有删除id=1,新增id=4和修改id=2的age值从2变为4的操作。那么,几乎可以确定这几行数据就是由于增量复制延迟而导致的,可采用增量同步追上的方式。如发现部分数据没有同步到目标库,也可以手工将这一部分数据导入目标库,确保数据的最终一致性。
这个功能也可能会有一定的副作用:从源库和目标库查询数据不一致的信息时,需要从源库和目标库上拉取数据,对网络、IO有较大影响。如果出现太多源库和目标库的数据不一致,建议用户对相关表进行全量重新同步,来保证数据的一致性。
为了尽量降低这个副作用,查看不一致功能目前只支持查看500条数据不一致的行。如DBMotion查询到不一致数据达到501行,会提醒用户,并不再继续查找。
数据校验是迁移任务的兜底工作,可以保证迁移前后数据的一致性。DBMotion在这一块花费了大量的精力进行打磨,后续版本会继续加强相关功能。
02
多项新增功能
除查看不一致行之外,这次发布还新增了以下功能:
- 增加日志过滤功能。通过关键字、迁移步骤、错误级别、时间范围的筛选,用户可以将关注的特定日志筛选出来,便于诊断。
- 增加用户迁移和用户校验功能。保证用户所选的信息能及时迁移到目标库,并且在对象校验时比对目标库用户是否存在,密码是否跟源库一致。
- DBMotion还对以下问题进行了修复: 1.#1168 全量同步时,OOM的问题; 2.#1169 连续DDL时,增量同步报错; 3.#1309 全量迁移时,syntax error报错; 4.#1320 预检查时源端或目标端连接失败,返回信息不明确等问题。 通过修复这些问题,进一步提升了产品稳定性和可用性。
这些功能的更新,想先人一步使用吗?
赶紧上Squids体验吧,
丝滑的DBMotion在线等你!
相关文章
- T-SQL程序练习02
- T-SQL程序练习03
- 【MySQL系列】- MySQL执行计划一览
- 安卓开发过程中的RatingBar、Handler以及GPS在大型项目中的使用【Android】
- DVWA漏洞演练平台 - SQL注入
- 审计一套CMS中的SQL注入
- mysql 函数: find_in_set()、instr()
- PHP 编程SQL注入问题与代码
- Redis 数据库配置与应用
- MySQL 之基础命令(精简笔记)
- MySQL 之高级命令(精简笔记)
- MySQL 之单表查询(精简笔记)
- MySQL 权限与备份管理(精简笔记)
- MySQL 存储过程与函数(精简笔记)
- PHP SQL 注入代码审计
- 教你快速实现“基于Docker快速构建基于Prometheus的MySQL监控系统”
- MySQL 字符串与时间操作函数
- 客快物流大数据项目(九十七):ClickHouse的SQL语法
- MySQL 索引与性能调优
- PHP 应用PDO技术操作数据库