---
title: 如何通过Datakit工具完成MySQL到openGauss的数据迁移-官方技术文章-鲲鹏社区
description: 如何通过Datakit工具完成MySQL到openGauss的数据迁移
keywords: Datakit,MySQL,Gauss,如何通过,工具完成,的数据迁移,官方技术文章,鲲鹏社区
url: https://www.hikunpeng.com/developer/techArticles/20231211-3?envFlag=1
section: (其他)
---

# 如何通过Datakit工具完成MySQL到openGauss的数据迁移-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20231211-3?envFlag=1
描述: 如何通过Datakit工具完成MySQL到openGauss的数据迁移
关键词: Datakit,MySQL,Gauss,如何通过,工具完成,的数据迁移,官方技术文章,鲲鹏社区

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

如何通过Datakit工具完成MySQL到openGauss的数据迁移

如何通过Datakit工具完成MySQL到openGauss的数据迁移

发表于 2023/12/11

0

## MySQL迁移

### 1.  前置操作

（1）实例管理中创建数据源

MySQL和openGauss数据库启动后可在datakit平台--资源中心--实例管理中创建对应的数据源。

创建MySQL数据源：

此处可添加“启停命令总结”小节创建好的MySQL用户和密码

ip为实际ip

port为默认端口3306

用户名：mysql_test

密码：password123

创建openGauss数据源：

此处可添加“启动数据库”小节创建好的openGauss用户和密码。

ip为实际ip

port为默认端口5432

用户名：opengauss_test

密码：Sample@123

创建完成后DataKit平台界面会显示对应的数据源：

（2） DataKit服务器管理中添加服务器

在datakit平台--资源中心--服务器管理中添加对应的服务器，被管理的机器才可用于安装迁移插件，本次实验用本机作为迁移插件的执行机。

请注意这里密码为root用户的密码，并需要勾选记住密码，否则将不能用作迁移插件的执行机。

服务器添加完成后DataKit平台会显示对应的服务器信息：

在用户管理界面添加个人用户test。

用户添加完成后会显示在用户列表中显示已添加的用户。

（3）MySQL端预置数据

连接MySQL，并执行如下SQL语句：

```
mysql -h xx.xx.xx.xx -P 3306 -u mysql_test -ppassword123 -S
```

其中-h指定的参数 xx.xx.xx.xx需修改为实际ip。

本次实验中给MySQL端预制一些数据，主要包括表、数据、索引。

```
drop database if exists source_db;
```

## 迁移过程

MySQL迁移全流程包括全量迁移、全量校验、增量迁移、增量校验和反向迁移五个阶段，下面将详细介绍迁移全流程。

### 1. 创建迁移任务

在Datakit平台数据迁移--迁移任务中心--创建迁移任务，选定源端数据库（source_db）和目的端数据库（target_db），添加子任务，迁移过程模式选择在线模式。

迁移模式包括离线和在线两种模式，其中离线模式包括全量迁移和全量校验两个阶段，在线模式包括全量迁移、全量校验、增量迁移、增量校验、反向迁移和五个阶段，本次实践选择在线模式，囊括业务割接的整个过程。

详细描述如下：

（1）在Datakit平台数据迁移--迁移任务中心--创建迁移任务

（2）选定源端数据库（source_db）和目的端数据库（target_db），添加子任务，迁移过程模式选择在线模式

（3）编辑配置参数

可直接使用默认参数，无需修改，或者根据实际自定义。

### 2. 安装迁移插件

首次创建迁移任务时，需安装迁移插件，针对服务器管理中添加的服务器，选择开始安装即可。

若无对应的物理机，请记得将要安装插件的机器添加至服务器管理中，并添加。

插件安装分为离线安装、在线安装和导入安装三种方式，本次实验推荐离线安装方式，需提前下载好安装包，并上传对应的安装包即可。

针对不同操作系统的迁移插件安装包可从如下链接获取：

https://gitee.com/opengauss/openGauss-migration-portal/tree/5.1.0/#%E5%AE%89%E8%A3%85%E5%8C%85%E5%AE%89%E8%A3%85 [了解详情](https://gitee.com/opengauss/openGauss-migration-portal/tree/5.1.0/#%E5%AE%89%E8%A3%85%E5%8C%85%E5%AE%89%E8%A3%85)

（1）在线安装，指定安装用户（“前置操作”小节中服务器管理中管理的机器添加的个人用户）和安装目录。

（2）离线安装，指定安装用户（“前置操作”小节中服务器管理中管理的机器添加的个人用户）和安装目录，并上传安装包。

（3）导入安装，指定安装用户（3.1.1节中服务器管理中管理的机器添加的个人用户）和安装目录。

### 3. 启动迁移任务

对于在线模式的迁移任务，任务启动后，会首先进入全量迁移阶段，将3.1.1小节MySQL端预置的数据迁移至目标库，全量迁移结束后会进入全量校验阶段，会输出每个表的校验结果；之后进入增量迁移阶段，增量迁移阶段会同步执行增量校验。详情界面可以看到迁移过程状态信息。

详细描述如下：

（1）启动迁移任务

详情界面可以看到详细的迁移过程状态信息。

（2）首先进行全量迁移

全量迁移会将表、数据、视图、函数、触发器、存储过程迁移至openGauss数据库，全量迁移结束后，可在openGauss端验证数据及对象是否成功迁移。

图示为全量迁移完成：

openGauss验证结果：

连接数据库，切换至MySQL库同名的schema下，查看表、数据、视图、函数、存储过程、触发器是否正常迁移。

下图示显示全量迁移正常。

（3）全量迁移完成后进行全量校验

全量校验输出每个表的校验结果。

（4）全量校验完成后进行增量迁移

增量迁移会将增量的数据（增删改）和DDL迁移至openGauss数据库,与增量迁移并行执行的还有增量校验。

增量迁移进行增删改操作。

a. 插入操作

MySQL增量迁移过程中插入一条数据：

insert into table1(id,name) values(7,'data');

迁移工具进度信息提示已迁移一条数据。

openGauss端数据正常同步。

b. 修改操作

MySQL增量迁移过程中修改一条数据：

update table1 set name = 'new_data' where id = 6;

迁移工具进度信息提示累计已迁移两条数据。

openGauss端数据同步正常：

c. 删除操作

MySQL增量迁移过程中删除一条数据：

delete from table1 where id = 5;

迁移工具进度信息提示累计已迁移三条数据

openGauss端数据同步正常。

d. DDL操作

MySQL增量迁移过程中执行一条DDL：

create table table2(id int, name varchar(10));

迁移工具进度信息提示累计已迁移四条数据。

openGauss端数据同步正常。

上述提供一些增量迁移的示例，模拟业务增量数据迁移。

### 4. 业务割接

等增量数据全部迁移完成后，可进行业务割接。停止增量迁移，并启动反向迁移，修改应用程序的配置文件，启动应用程序，用openGauss承载业务。

在openGauss端进行增删改操作，验证MySQL端数据是否同步修改。

详细描述如下：

（1）增量数据追平后可进行业务割接

当剩余待写入数据为0条，表示增量数据已追平，可进行业务割接。

（2）停止增量迁移

（3）启动反向迁移

openGauss端进行数据增删改，模拟业务数据，验证业务数据可反向同步至MySQL端。

a. 插入操作

openGauss端插入一条数据：

insert into table1 values(8,'data');

迁移工具进度信息提示已迁移一条数据。

MySQL端数据同步成功。

b. 修改操作

openGauss端进行修改操作：

update table1 set name = 'name' where id = 1;

迁移工具显示已迁移两条数据。

MySQL端数据同步正常。

c. 删除操作

openGauss端删除一条数据：

delete from table1 where id = 3;

迁移工具显示已迁移三条数据。

MySQL端数据同步正常。

上述提供一些反向迁移示例，模拟业务数据反向迁移。

（4）停止反向迁移

反向迁移将数据从openGauss实时迁移至MySQL数据库，可保证源端数据库与目标数据库实时一致。作为一种数据逃生的通道，当目标数据库出现问题时，可及时将应用切回至源端数据库。

当业务平稳运行一段时间后，可停止反向迁移。

至此，已演示业务搬迁的全流程。

## MySQL迁移工具总结

MySQL迁移全流程包括全量迁移、全量校验、增量迁移、增量校验和反向迁移五个阶段，每个阶段都由单独的工具完成。迁移portal集成了所有的迁移和校验工具，实现工具的安装、启停、维护等能力，并实现了迁移任务的编排；DataKit平台集成迁移portal，提供UI界面，实现迁移全流程可视化，实现全场景“简单、完整、高效”的迁移。

| 迁移工具 | 工具简称 | 代码仓 | 说明 |
| --- | --- | --- | ---|
| 全量迁移 | gs_mysync | https://gitee.com/opengauss/openGauss-tools-chameleon | 单个工具 |
| 增量迁移 | gs_replicate | https://gitee.com/opengauss/debezium | 单个工具 |
| 反向迁移 | gs_replicate | https://gitee.com/opengauss/debezium | 单个工具 |
| 数据校验 | gs_datacheck | https://gitee.com/opengauss/openGauss-tools-datachecker-performance | 单个工具 |
| 迁移portal | gs_rep_portal | https://gitee.com/opengauss/openGauss-migration-portal | 集成所有迁移和校验工具 |
| 迁移平台datakit | datakit | https://gitee.com/opengauss/openGauss-workbench | 集成迁移portal，提供UI界面 |

本页内容
