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

秋天的第一次数据传输!

又双叒叕,丝滑的零停机数据库在线迁移工具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等同构数据库之间的迁移

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

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

Kafka数据流订阅

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

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

  • 投递到一个topic里面时,需要用户选择已有的topic名称;并且选择a) 按库/表名hash到不同partition,b) 按主键hash到不同partition,c) 集中投递到partition0。
  • 如自动创建topic,DBMotion会自动创建按用户的topic命名规则、partition个数、partition副本数要求创建topic,并且按partition投递策略写入Kafka。

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

Redis能力提升

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

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

用户体验优化

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

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

从任务详情返回:

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

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

更加详细的发版修改如下,您可以登录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/KafkaSQL 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

相关推荐
做梦敲代码15 分钟前
达梦数据库-读写分离集群部署
数据库·达梦数据库
苹果醋31 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger1 小时前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud1 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡1 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷1 小时前
Redis
数据库·redis·缓存
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名2 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库