MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移

简介: MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移

一、准备环境

1. 源库创建(Oracle)

  • 创建Oracle 11.2.0.4
docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_11g_ee_lhr_11.2.0.4:1.0
docker run -itd --name oracle -h oracle --privileged=true -p 1521:1521 -p 222:22 -p 1158:1158 lhrbest/oracle_11g_ee_lhr_11.2.0.4:1.0 init

MTK程序迁移Oracle需要安装Oracle客户端

  • 安装Oracle客户端
wget https://download.oracle.com/otn_software/linux/instantclient/211000/oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/211000/oracle-instantclient-sqlplus-21.1.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm oracle-instantclient-sqlplus-21.1.0.0.0-1.x86_64.rpm
export LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib

2. 目标库创建(MogDB)

二、迁移

1. 上传程序,编写配置文件

迁移为Oracle下的scott用户

  • 编写配置文件
[root@mogdb-kernel-0005 mtk]# cat mtk_config.json 
{
  "source": {
    "type": "oracle",
    "connect": {
      "version": "",
      "host": "172.16.0.176",
      "user": "system",
      "port": 1521,
      "password": "system",
      "dbName": "LHR11G",
      "dsn": ""
    },
    "parameter": {
      "debugTest": false
    }
  },
  "target": {
    "type": "openGauss",
    "connect": {
      "version": "",
      "host": "172.16.0.106",
      "user": "mogdb",
      "port": 26000,
      "password": "Enmo@123",
      "dbName": "mtk",
      "dsn": ""
    },
    "parameter": {
      "dropExistingObject": true,
      "truncTable": true,
      "ignoreTableDDLCompErr": true,
      "parallelInsert": 1
    }
  },
  "limit": {
    "parallel": 2
  },
  "object": {
    "schemas": [
      "SCOTT"
    ]
  },
  "dataOnly": false ,
  "schemaOnly": false,
  "reportFile": "./report_Oracle2OpenGauss_all.html"
}

2 迁移

  • 执行迁移命令
[root@mogdb-kernel-0005 mtk]# ./mtk -c mtk_config.json --reportFile mtk_report.html --logfile mtk_report.log --debug
'''''
-----------------------
ObjectName Type Summary
-----------------------
+--------------+---------------------+---------------------+------------+--------+-------------+------------+
|     Type     |      StartTime      |       EndTime       |    Time    | Status | Success Num | Failed Num |
+--------------+---------------------+---------------------+------------+--------+-------------+------------+
| Schema       | 2021-06-15 12:00:46 | 2021-06-15 12:00:46 | 18 ms      | finish |           1 |          0 |
| ObjectType   | 2021-06-15 12:00:46 | 2021-06-15 12:00:47 | 450 ms     | finish |           0 |          0 |
| Domain       | 2021-06-15 12:00:47 | 2021-06-15 12:00:47 | 0 ms       | finish |           0 |          0 |
| CustomType   | 2021-06-15 12:00:47 | 2021-06-15 12:00:47 | 0 ms       | finish |           0 |          0 |
| Sequence     | 2021-06-15 12:00:47 | 2021-06-15 12:00:47 | 5 ms       | finish |           0 |          0 |
| Queue        | 2021-06-15 12:00:47 | 2021-06-15 12:00:47 | 0 ms       | finish |           0 |          0 |
| Table        | 2021-06-15 12:00:47 | 2021-06-15 12:00:47 | 335 ms     | finish |           4 |          0 |
| TableDDLCom  | 2021-06-15 12:00:47 | 2021-06-15 12:00:47 | 0 ms       | finish |           0 |          0 |
| TableData    | 2021-06-15 12:00:47 | 2021-06-15 12:00:49 | 2 s 45 ms  | finish |           4 |          0 |
| Constraint   | 2021-06-15 12:00:49 | 2021-06-15 12:00:49 | 445 ms     | finish |           3 |          0 |
| Index        | 2021-06-15 12:00:49 | 2021-06-15 12:00:51 | 1 s 894 ms | finish |           0 |          0 |
| Trigger      | 2021-06-15 12:00:51 | 2021-06-15 12:00:51 | 0 ms       | finish |           0 |          0 |
| View         | 2021-06-15 12:00:51 | 2021-06-15 12:00:51 | 86 ms      | finish |           0 |          0 |
| TableDataCom | 2021-06-15 12:00:51 | 2021-06-15 12:00:52 | 39 ms      | finish |           4 |          0 |
+--------------+---------------------+---------------------+------------+--------+-------------+------------+
------------------
Table Data Summary
------------------
+----------------+----------------+---------------------+---------------------+-----------+---------+-------------+-------------+-------------+------+
|    SrcName     |    TgtName     |      StartTime      |       EndTime       |   Time    | Status  | Select Rows | Insert Rows | Ignore Rows | Size |
+----------------+----------------+---------------------+---------------------+-----------+---------+-------------+-------------+-------------+------+
| SCOTT.EMP      | SCOTT.EMP      | 2021-06-15 12:00:47 | 2021-06-15 12:00:48 | 1 s 18 ms | succeed |          14 |          14 |           0 |  773 |
| SCOTT.SALGRADE | SCOTT.SALGRADE | 2021-06-15 12:00:47 | 2021-06-15 12:00:48 | 1 s 29 ms | succeed |           5 |           5 |           0 |   44 |
| SCOTT.DEPT     | SCOTT.DEPT     | 2021-06-15 12:00:48 | 2021-06-15 12:00:49 | 1 s 17 ms | succeed |           4 |           4 |           0 |   68 |
| SCOTT.BONUS    | SCOTT.BONUS    | 2021-06-15 12:00:48 | 2021-06-15 12:00:49 | 1 s 16 ms | succeed |           0 |           0 |           0 |    0 |
+----------------+----------------+---------------------+---------------------+-----------+---------+-------------+-------------+-------------+------+
-----------------------------
Table Data Comparison Summary
-----------------------------
+----------------+----------------+---------------------+-------+---------+------------+------------+-------+
|    SrcName     |    TgtName     |      StartTime      | Time  | Status  | SourceRows | TargetRows | Error |
+----------------+----------------+---------------------+-------+---------+------------+------------+-------+
| SCOTT.EMP      | SCOTT.EMP      | 2021-06-15 12:00:51 | 1 ms  | succeed |         14 |         14 |       |
| SCOTT.SALGRADE | SCOTT.SALGRADE | 2021-06-15 12:00:51 | 39 ms | succeed |          5 |          5 |       |
| SCOTT.DEPT     | SCOTT.DEPT     | 2021-06-15 12:00:51 | 1 ms  | succeed |          4 |          4 |       |
| SCOTT.BONUS    | SCOTT.BONUS    | 2021-06-15 12:00:51 | 1 ms  | succeed |          0 |          0 |       |
+----------------+----------------+---------------------+-------+---------+------------+------------+-------+
  • 日志截图
  • 主界面
    9a5ef2f8e554c128d40c61faf4752410_20210615-c6b4c094-1613-4ff8-bac7-739b214fe370.png
  • 对象
    11993bbdba1a4662c93bc803d76676fc_20210615-052bc91a-875f-4a76-a3e4-28ae19ae9e20.png
  • 表数据
    98c660187c155da44f32dd64c62388c9_20210615-aa6ab68b-54d9-4b42-8fe4-612be03554f0.png

目录
相关文章
|
3月前
|
SQL 存储 关系型数据库
IDEA中居然有碾压Navicat的数据库管理工具
【8月更文挑战第12天】IDEA中居然有碾压Navicat的数据库管理工具
164 3
IDEA中居然有碾压Navicat的数据库管理工具
|
3月前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
3月前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
6天前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
14 3
|
2月前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
288 15
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
25天前
|
SQL 数据可视化 关系型数据库
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
【数据库工具】DBeaver:一款免费的通用数据库工具和 SQL 客户端
46 1
|
12天前
|
Rust 关系型数据库 Linux
Rainfrog: 轻量级数据库管理工具
【10月更文挑战第3天】
|
13天前
|
NoSQL 关系型数据库 MySQL
AWS Database Migration Service 助力数据库搬迁
AWS Database Migration Service 助力数据库搬迁
|
3月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
353 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
2月前
|
SQL Java 数据库连接
数据库迁移不再难:Flyway 与 Liquibase 大比拼,哪个才是你的真命天子?
【9月更文挑战第3天】数据库迁移在软件开发中至关重要,尤其在使用 ORM 框架如 Hibernate 时。为确保部署时能顺利应用最新的数据库变更,开发者常使用自动化工具。Flyway 和 Liquibase 是当前流行的两种选择,均能有效管理数据库版本控制。Flyway 采用 SQL 脚本表示变更,简单易用;Liquibase 支持多种脚本格式,功能更强大,适合复杂项目。本文将对比这两种工具的特点,并通过示例展示各自的优缺点,帮助开发者根据项目需求做出合适的选择。
350 1