Squdis DBMotion新增了多种数据库的迁移能力:SQLServer to SQLServer、Redis to Redis、MySQL to Kafka,增加了列映射、校验任务独立、抽样校验、校验复检和限速等十多项功能。
本次版本更新,DBMotion新增了三种数据库迁移同步的场景。目前,DBMotion已经支持8种不同的数据库迁移同步场景(5款同构数据库和3款异构数据库):
-
MySQL to MySQL
-
Redis to Redis
-
SQLServer to SQLServer
-
MongoDB to MongoDB
-
openGauss to openGauss
-
Oracle to GaussDB
-
MySQL to ClickHouse
-
MySQL to Kafka
SQLServer迁移和校验
本次新增了SQLServer到SQLServer的结构、全量迁移和结构、数据校验能力。用户可以选择要迁移的SQLServer源库和目标库,进行对象和数据迁移。
目前支持SQLServer 2017和2019版本的多种不同对象迁移,包括table、user、view、procedure、function、trigger、event、type、sequence、synonym和xmlschema。
数据迁移,支持常规数据类型,支持包括LOB类型、uniqueidentifier、hierarchyid、rowversion、geometry、geography等特殊数据类型。特殊字段属性支持identity列和computed列。
SQLServer迁移完成以后,可以执行对象校验,对比各种对象和表结构的一致性。
或者执行数据校验来对比迁移后数据是否完全一致。
Redis迁移和校验
本次新增Redis到Redis的数据迁移和数据校验能力,支持Redis 5.0及以上版本。
新建任务之后,DBMotion就会将您在Redis上的16个DB中的所有key和value都同步到目标端。
接下来进入数据校验页面,可以对迁移过去的数据进行校验,DBMotion将对比所有DB中的key和value值是否一致。
MySQL to Kafka
新增MySQL到Kafka的数据同步功能,用户可以选择需要抽取的MySQL数据库。
源库中MySQL的数据如下:
数据同步到Kafka以后,显示如下:
列映射
DBMotion之前仅支持库级别和表级别的名称映射,本次新增了列级别的映射,用户可以在映射和过滤阶段,设置库和表的映射。
点击进入某个表的“映射与过滤”页面,设置列的映射。
迁移完成后,进入目标库查看,可以看到库、表和字段均显示为迁移过程中我们所设置的映射名。
限速
迁移同步期间,源库/目标库还在提供业务访问。如果迁移的流量过大,可能会对源库造成一定影响,从而对业务产生一定的影响。
为了避免对系统造成过大的负担,有效地控制数据迁移的速度,DBMotion在本版本中支持按照吞吐量(MB/s)对传输任务进行限速。
限速后,DBMotion保证吞吐量最大不超过设置的最大值,保护数据库业务的正常运行。
校验任务独立
部分客户会自己使用MySQLdump或者其他类似的工具来做迁移或者同步,但是希望使用我们的校验工具对比一下迁移对象和数据是否完全一致。在DBMotion这个新版本中,开始支持独立的校验任务。用户可以进入“数据校验”任务列表展示页面上,点击“添加任务”进入页面。
与新建数据传输任务一样的页面,您可以根据向导填好任务相关选项并进行预检查,新建一个纯对象/数据校验的任务。
任务新建成功以后,就可以在任务详情页面查看对象对比和数据对比的结果,确认到底有哪些对象/数据存在不一致的问题。校验不一致的数据可以点击“详情”查看具体的不一致情况,或者点击“订正SQL”,查看要执行怎样的SQL才能让目标库跟源库保持一致。
抽样校验
对于数据量特别大的表,由于校验时间太长,客户可能并不想校验所有的数据。DBMotion在本期提供了抽样校验的选项,在新建校验任务阶段可以配置校验的抽样比例。
在抽样校验任务完成后,查看校验结果。51232行数据,进行30%的抽样后,共校验了17171行数据,符合目标预期。
总结
总体来说,本次共修复和更新了二十多项功能:
SQL Server
-
对象迁移:支持table、 view、function、 procedure、trigger、sequence, synonym、type和xml schema
-
全量数据迁移:支持常规类型,支持LOB类型、uniqueidentifier、hierarchyid、rowversion、 geometry和geography等特殊数据类型;支持identity列和computed列
-
对象校验:支持对各种迁移过去的对象进行校验,展示对象校验详情,生成订正SQL
-
数据校验:支持各种数据类型的校验,查看不一致数据,生成订正SQL
-
其它:支持一次迁移多个数据库
Redis
-
数据迁移:支持全量迁移、全量的断点续传
-
数据校验:全量校验、抽样校验、不一致详情查看
MySQL
-
新增MySQL到Kafka,支持全量数据迁移,全量迁移断点续传
-
MySQL到ClickHouse支持无主键表迁移
-
MySQL到ClickHouse数据类型优化
-
支持列映射,创建任务时可以指定目标端列名
-
支持列脱敏,对于敏感信息可以选择脱敏
-
支持敏感信息识别
-
增量失败后支持修正或跳过错误
-
支持快速复检
-
优化对象校验详情展示,详情新增具体校验内容
其它功能
-
支持创建独立校验任务,支持结构校验和数据校验,校验不再依赖迁移任务
-
数据校验支持周期停止
-
支持分片续传,在全量迁移阶段,暂停任务后,已经完成的分片不再重新传输
-
Docker线下版开始支持限速
问题修复
-
修复了目标端未开启binlog,结束迁移时任务失败问题
-
修复了MySQL mrg_myisam表迁移失败问题
-
修复了MySQL 表中有生成列迁移失败问题