DBMotion x Chat2DB:高效迁移,优雅同步,数据腾飞不再愁

在这里插入图片描述

DBMotion

在这里插入图片描述

基本介绍

数据传输服务DBMotion是一款轻量、绿色的数据库迁移同步校验工具。支持国产化数据迁移、支持容灾演练、支持两地三中心和异地多活;源库无感知、简单易集成、丝滑高性能。助您在多云之间随心迁移、自由容灾。

功能介绍

已支持的数据库

v1.0.0 DBMotion插件 支持 MySQL to MySQL的对象迁移、全量数据迁移、增量同步;目前支持 5.6、5.7、8.0 三个版本的同版本迁移或向高版本迁移。


待支持的数据库

下面是已经实现支持,待集成进DBMotion插件的数据库类型

PostgreSQL to PostgreSQL 的对象迁移, 全量数据迁移,增量同步(暂不支持DDL和双向同步)。 目前支持 9.6 以上版本的同版本迁移或向高版本迁移。

MySQL to Clickhouse 的对象迁移、全量数据迁移、增量同步;支持 MySQL 5.6、5.7、8.0 到 Clickhouse 22 以后的版本。

MongoDB to MongoDB 的对象迁移、全量数据迁移、增量同步;目前支持 MongoDB 3.6 以上版本的同版本迁移或向高版本迁移。

openGauss to openGauss 的对象迁移、全量数据迁移、增量同步;支持 5.0.0 以上版本的单向和双向同步。

GaussDB to GaussDB 的对象迁移、全量数据迁移、增量同步;支持 503.1 以上版本的同版本迁移或向高版本迁移。

Oracle to GaussDB 的全量数据迁移和增量同步。

SQL Server to SQL Server 的对象迁移、全量数据迁移;目前支持 2017/2019 同版本的相互迁移。

Redis to Redis 的全量数据迁移和增量同步;目前支持 5.0 及以上版本的同版本迁移或向高版本迁移。

MySQL to Kafka 的全量数据迁移。

PostgreSQL/GaussDB/openGauss to Kafka 的全量数据迁移,增量订阅。


应用场景

一、机房内、云上云下数据库迁移

DBMotion支持Docker线下版和云上版本,用户可以下载线下版本在自己机房内做数据库迁移操作。 也可以直接使用云上的SAAS版来进行云上迁移或者跨云迁移,支持云上迁移到云下,云下迁移到云上,支持对RDS的到ECS或者线下机房的容灾同步。

二、国产化数据库迁移

通过可视化透明迁移工具将非国产数据库迁移到国产数据库,海外云迁移到国产云。 支持表、索引等结构也支持存储过程、自定义函数等代码的转换;通过内置专家经验和最佳实践保证业务高效、透明、安全的进行全量和增量同步数据,可实现零停机迁移;支持对象和数据的校验,兜底数据一致性;支持反向同步,随时可回滚。

三、异地多活数据同步

支持MySQL和openGauss的双向同步,有效的避免循环复制,支持覆盖、忽略和报错三种冲突解决策略。支持两地三中心/异地多活架构,支持容灾演练。


优势特点

  • 零停机:整个迁移过程中不需要业务停机,对源库不加任何锁。源库在迁移过程中可以做各种DDL操作

  • 方便直观:采用可视化操作,点点鼠标就可以完成数据的迁移和校验

  • 并发高性能:对象、全量、增量、校验过程全部采用多线程并发,同步性能能到达40M/s

  • 安全高效:支持SSL连接,保证传输数据安全

  • 稳定可靠:支持断点续传,源端断开自动重连,目标端失败自动重试

  • 预检查:正式迁移前提前预检查,预先发现迁移过程中可能出现的问题

  • 数据校验:迁移后支持数据校验,为数据切换保驾护航

  • 双向同步:主动避免循环复制,支持冲突策略处理

  • 对象映射/where条件过滤:支持源库和目标库的对象名映射,支持同步时忽略部分敏感数据

  • 热修改:同步过程中支持热修改同步对象

  • 跨网络访问:通过代理网关可以访问内网或者云上RDS


资费

DBMotion插件Chat2DB Pro会员限时免费使用。


使用限制

1. 带宽限制

源库到DBMotion和DBMotion到目标库的网络带宽会限制迁移的速度。如果任何一端的网络带宽较差都会导致迁移性能下降,达不到规格标称的迁移速度。

2. 数据库性能限制

源库或者目标库的性能会导致DBMotion迁移性能的下降。源库性能差会导致DBMotion取数据慢,目标库性能差会导致DBMotion存数据慢。

3. MySQL binlog格式问题

binlog需要使用ROW格式,来保证DBMotion能正确解析出数据的修改,以便增量同步到目标端 DDL变更时,建议使用use db1;alter table tb1类似的方式,而不是使用alter table db2.tb1的方式,避免DBMotion误判数据库导致判断这个变更是否要过滤时出错。

4. 源库对象选择无法区分全选一个节点还是全选当前所有子节点

界面上选择一个schema下所有表时,无法区分是勾选了界面上显示的所有表,还是勾选了整个schema。目前按照勾选整个schema来同步,也就是说,这个schema下当前所有的表和后面创建的表全部都会同步到目标端。

5. 对象依赖层数过多仍然会报错

DBMotion目前会处理对象依赖层数在10层以内的。也就是说view v10依赖于v9,v9依赖于v8,… v2依赖于v1的情况,DBMotion会自动处理,但是大于10层的依赖可能会报错。

6. 对象迁移到全量迁移过程中创建的表无法同步

用户选择了迁移整个schema(db1),但是在对象迁移到全量迁移的这段时间间隔内创建了一个表db1.tb1。由于对象迁移的时候db1.tb1还没有,对象迁移不会把db1.tb1的表结构迁移过去,所以全量迁移的时候会报错说表结构不存在。

7. 其他
Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=' MySQL 8.0默认使用utf8mb4_0900_ai_ci的Collation作为utf8mb4的校对规则,跟5.6和5.7的utf8mb4_general_ci默认值不一样,如果有view使用convert(tt.ID using utf8mb4 )可能会出现对象迁移时迁移到目标端报错,Illegal mix of collations,建议手工在目标库将view改成convert(tt.ID using utf8mb4 ) COLLATE utf8mb4_general_ci以绕过这个问题。

操作指南

1. 插件安装

打开Chat2DB,点击左侧工具栏的插件图标,点击右侧的Installing插件按钮,点击安装即可。

在这里插入图片描述

2. 打开插件

点击Launch打开插件,等待插件加载完成即可。

在这里插入图片描述

3. 创建任务

在这里插入图片描述

  1. Name字段中输入任务的名称。例如,task-01qu6D。
  2. 根据需要选择虚拟机的规格。选项包括:Tiny,Small,Medium,Large。默认选择的是Tiny。
  • 每个规格的说明:
  • Tiny:最小规格,使用2核4G内存,1线程用于迁移。
  • Small、Medium和Large规格根据需求增加资源。
  1. 源数据库引擎 (Source database engine)
  • 选择源数据库引擎类型。在此例中,选择的是MySQL。
  • 支持的版本包括:5.6、5.7、8.0。
  • 支持的数据库类型包括:自建数据库、ECS自建数据库和云数据库。
  1. 目标数据库引擎 (Target database engine)
  • 选择目标数据库引擎类型。在此例中,选择的是MySQL。
  • 支持的版本包括:5.6、5.7、8.0。
  • 支持的数据库类型包括:自建数据库、ECS自建数据库和云数据库。

在这里插入图片描述

在填写完所有必要的信息后,点击页面右下角的Create按钮,即可创建新任务。

在这里插入图片描述

4. 选择源和目标数据库
  1. 数据库类型
  • Source information(源信息)部分选择你的原始数据库类型。在这个例子中,我们选择了"MySQL"。
  • 同样,在Target information(目标信息)部分选择你想要将数据迁移到的目标数据库类型。同样,这里也选择了"MySQL"。
  1. 数据库IP:端口
  • Source information部分输入你的原始数据库的IP地址和端口号。
  • 对于Target information部分,你需要提供目标数据库的IP地址和端口号。
  1. 账户与密码
  • Source information部分需要你提供访问原始数据库的用户名和密码。用户名默认是root。
  • Target information部分则需要你提供用于访问目标数据库的用户名和密码。
  • 如果你不知道用户名,可以点击下方Auth script操作,获取授权用户。
  1. SSL运输
  • 如果你的数据库配置了SSL加密连接,则可以选择启用SSL传输。否则,请保持禁用状态。
  1. 测试连接
  • 输入所有必要的信息后,你可以点击Test connection来验证你提供的信息是否正确,并且能够成功地连接到你的数据库。

在这里插入图片描述

5. 迁移选项
  1. Objects:
  • 这一区域将会列出一系列的数据库名称。你可以通过勾选这些项目来决定哪些数据库表、视图、函数、存储过程、触发器等应该被包含在迁移过程中。

在这里插入图片描述

  1. Migration:

Speed: 这里提供了迁移速度的选择,默认为Unlimited,即不限速。如果需要限制迁移的速度,可以在此处更改。

  • Migrate type: 提供了三种选项——Objects, Data, 和 Sync incremental。根据需求,你可以选择要迁移的对象定义、数据或者增量同步。
  • Objects: 表示迁移数据库中的对象,比如表、视图等。
  • Data: 表示迁移数据库中的数据。
  • Sync incremental: 表示进行增量同步,只迁移自上次迁移以来发生改变的内容。

Sync policy: 这一部分允许你指定同步策略。

  • Sync topology: 可以选择单向或双向同步。
  • unidirectional: 单向同步,数据只会从源数据库流向目标数据库。
  • Bidirectional: 双向同步,数据可以在两个数据库之间相互流动。
  • Conflict policy: 当冲突出现时的处理方式。
  • Cover and continue: 覆盖已有数据并继续迁移。
  • Ignore and continue: 忽略冲突并继续迁移。
  • Report an error and stop: 报错并停止迁移。
  • Filter DDL: 是否过滤掉数据定义语言(DDL)语句。DDL通常用来创建、修改或删除数据库结构。
  1. Upload migrate object configuration file / Download template file:
  • 如果你已经准备好了迁移对象的配置文件,可以通过点击"Upload migrate object configuration file"上传它。
  • 如果需要下载模板文件以便手动编辑,可以点击"Download template file"。

在这里插入图片描述

  1. Advanced configuration:
  • 点击此链接可以进入更详细的配置页面,对迁移任务进行高级定制。

在这里插入图片描述
在这里插入图片描述

  1. 确认信息:
  • 填写完所有必要的信息后,你可以点击Next前进至下一步。

在执行数据库迁移前,确保已仔细检查所有的选项,特别是冲突政策和同步策略,因为它们可能会直接影响到迁移的结果。

6. 映射和过滤

在这里插入图片描述

  • 字段映射是指将一个表中的字段映射到另一个表中的字段,以便在两个表之间进行数据交换或数据同步。
    在MySQL数据库迁移任务配置过程中,用户可以设置库、表、字段在目标库的对象映射名。
    如下图所示,【文字显示墨绿色,加了-sy后缀】的为修改后目标端Schema、表、字段的映射名显示。

注意:修改后的映射名请以英文字母开头,仅允许英文字母(区分大小写)、数字、下划线组合,长度小于等于64

在这里插入图片描述

在这里插入图片描述

迁移完成后,我们进入目标库查看,可以看到库,表,字段均显示为迁移过程中我们设置的映射名。

在这里插入图片描述

  • 在数据迁移或数据复制中,where可以用来过滤出需要迁移或复制的数据,避免不必要的数据传输和处理,提高迁移或复制效率。
    如下图,在MySQL数据库迁移任务配置过程中,点击映射与过滤,支持自由配置数据过滤条件,在文本框输入过滤条件后,移出文本框,在过滤结果预览中就可以查看到过滤效果,以便用户确认是否满足预期。

在这里插入图片描述

设置好表的过滤条件后,在全量和增量同步过程中就会自动带上过滤条件。保证过滤后的数据才会同步到目标端。
此处我们设置的where过滤条件为:CategoryId > 7,过滤结果如下。

  • 源端数据展示:

在这里插入图片描述

  • 目标端数据展示:

在这里插入图片描述

目标库只同步到了CategoryId > 7的数据,符合目标预期。

7. 最后确认
  • 目标数据库中存在相同名字的对象将会被重建,所以在迁移前请仔细检查目标数据库以避免覆盖和损坏数据。建议在非高峰时段进行数据迁移,以减少数据更新和DDL变更的影响。

  • 在确认阶段,用户需要查看提示信息,理解潜在的问题和风险,如数据库版本不一致可能导致的迁移失败。
    同时,他们也可以查看预检查结果,如果有错误或警告,应解决这些问题后再执行迁移。如果一切正常,用户可以点击Save task and execute来保存并执行迁移任务或者点击Save task来暂时保存相关配置信息。

在这里插入图片描述

8. 迁移结果
  • 迁移完成时,用户可以查看迁移结果,包括迁移的进度、状态、错误信息等。

在这里插入图片描述

在这里插入图片描述

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值