likes
comments
collection
share

Squids DBMotion新增多款同构数据库迁移

作者站长头像
站长
· 阅读数 3

秋天的第一次数据传输!

又双叒叕,丝滑的零停机数据库在线迁移工具Squids DBMotion再发新版!

Squids DBMotion继续横向扩展数据库能力,本次不仅增加了PostgreSQL、GaussDB和openGauss的同构数据库能力,也提供了这些数据库到Kafka的数据流订阅功能,同时增加了Redis的增量和分片集群同步能力。另外,在任务列表查看,源对象筛选等方面也做了大量优化,大大提升了用户体验。


支持多款同构数据库迁移

不管是世界上最流行的开源数据库(The world's most popular open source database)还是世界上最强大的开源数据库(The world's most advanced open source database),Squids DBMotion现在都可以支持迁移了。在新版本中,DBMotion支持了PostgreSQL、GaussDB和openGauss等同构数据库之间的迁移

Squids DBMotion新增多款同构数据库迁移

其中,PostgreSQL支持的迁移对象较多。目前,DBMotion除了支持table表结构迁移以外,还支持了extension、type、domain、view、procedure、function、trigger、sequence等对象迁移。

Squids DBMotion新增多款同构数据库迁移

DBMotion采用复制槽replication slot的方式来做增量同步。但是,如果DBMotion同步报错或者用户暂停了同步任务,复制槽的位点无法更新,源库无法及时清理日志,可能导致源库磁盘空间占用过大等问题。在“迁移选项配置页面”上,用户可以配置“自动清理 replication slot”的时间,在DBMotion暂停或者报错超过配置的小时数之后,复制槽replication slot会被自动清理掉,以避免源库磁盘空间无法释放的问题。

Squids DBMotion新增多款同构数据库迁移

Kafka数据流订阅

DBMotion新版本,支持Oracle、PostgreSQL、GaussDB和openGauss数据库到Kafka的同步

Squids DBMotion新增多款同构数据库迁移

在迁移对象选择框中,用户只能选择同步哪些表的数据。写入Kafka的时候,用户可以选择投递策略,是投递到一个已有的topic还是自动创建topic。

  • 投递到一个topic里面时,需要用户选择已有的topic名称;并且选择a) 按库/表名hash到不同partition,b) 按主键hash到不同partition,c) 集中投递到partition0。

Squids DBMotion新增多款同构数据库迁移

  • 如自动创建topic,DBMotion会自动创建按用户的topic命名规则、partition个数、partition副本数要求创建topic,并且按partition投递策略写入Kafka。

Squids DBMotion新增多款同构数据库迁移

写入Kafka的序列化格式,本次更新实现了canal-json方式,后续会补充avro格式。

Squids DBMotion新增多款同构数据库迁移

Redis能力提升

本次更新,Redis能力得到进一步提升,DBMotion支持了增量同步。增量同步采用psync方式进行同步,支持4.0及以上的版本。

支持分片集群校验,如果是分片集群的话,单击“获取源库当前位点”,可以获取整个分片集群的所有当前起始位点。

Squids DBMotion新增多款同构数据库迁移

用户体验优化

新版本还进行了部分用户体验的优化。 

用户从任务列表进入任务详情以后:

Squids DBMotion新增多款同构数据库迁移

从任务详情返回:

Squids DBMotion新增多款同构数据库迁移

回到任务列表,还能保留在上次的的分页,并高亮刚刚的任务:

Squids DBMotion新增多款同构数据库迁移

另外,在源端对象选择时,可以输入对象名称,对象选择树上的相关节点会标红,在对象特别多的时候,便于用户快速找到对应名称的对象。

Squids DBMotion新增多款同构数据库迁移

更加详细的发版修改如下,您可以登录console.squids.cn/dts/list 亲自体验起来!

版本更新汇总

新增特性

# Redis

  • 分片集群数据迁移支持全量+增量迁移。
  • 主备集群支持增量迁移。
  • 增加6.x版本支持。

# PostgreSQL to PostgreSQL

  • 对象迁移,全量迁移,增量同步(不支持DDL, 不支持双向同步)。
  • 对象校验,查看不一致详情。
  • 数据校验,查看不一致行,生成订正SQL。

# GaussDB to GaussDB

  • 对象迁移,全量迁移,增量同步(不支持DDL, 不支持双向同步)。
  • 对象校验,查看不一致详情。
  • 数据校验,查看不一致行,生成订正SQL。

# openGauss to openGauss

  • 对象迁移。
  • 对象校验,查看不一致详情。

# PostgreSQL/GaussDB/openGauss to Kafka

  • 全量迁移。
  • 增量订阅。

# SSL/TLS加密传输

  • MySQL/MongoDB/Redis/PostgreSQL/GaussDB/openGauss:
  • 支持加密码传输。
  • 支持输入客户端证书和密钥,满足服务器端验证要求。
  • 支持输入CA证书,验证服务器的身份。

# 前端

  • 支持迁移任务,校验任务高亮显示最后一次操作记录,便于用户查看。
  • 新增对迁移任务中的迁移对象进行查找,便于用户快速选取迁移对象。
  • 优化授权语句查看样式,补全缺失的数据库授权语句文件。

问题修复

# MongoDB

  • 增量位点获取bug。
  • 结构+全量迁移任务中,重复执行迁移任务bug修复。

# Oracle to GaussDB

  • 修复不能迁移zero date的报错。

# 前端

  • 修复迁移任务迁移对象类型展示与实际数据不一致的问题。
  • 修复迁移任务映射与过滤步骤中存在的过滤条件与列映射配置无法清除的问题。

DBMotion能力概览

  • 支持MySQL to MySQL /ClickHouse/KafkaOracle to GaussDB/Kafka、 SQL Server to SQL ServerPostgreSQL to PostgreSQL/KafkaMongoDB to MongoDBRedis to RedisOpenGauss to openGauss/KafkaGaussDB to GaussDB/Kafka
  • 支持MySQL和openGauss的双向同步
  • 支持对象校验和数据校验。对象校验会校验视图存储过程等对象和表的定义;会校验表、列的属性,包括类型、注释、字符集、是否为空等;数据校验会校验行数、列值。
  • 支持查看数据不一致和重新同步不一致的单个表或者某几行。
  • 支持迁移完成后的反向同步。
  • 支持SSL/TLS加密连接。

全新的功能,想先人一步使用吗?

赶紧上Squids体验吧!

SaaS产品,永久免费使用:squids.cn/product/dbmotion