文章目录

  • 前言
  • 一、Navicat
  • 二、DataX
  • 三、TurboDX
  • 总结

前言

之前在项目中,收到一个紧急需求,要把数据从 PostgreSQL 迁移到 TiDB 中。由于时间紧任务重,来不及调研高效的方式,直接使用了 Navicat 内置的功能,把数据从 PostgreSQL 迁移到了 TiDB。

项目结束后,我深入调研了几个同步迁移工具,本期就跟大家一起看看,几个迁移同步工具的实现步骤和各自的优缺点,以便在后续项目中能够选择最佳的工具,高效完成


一、Navicat

Navicat Premium 是一套多连接数据库开发工具,让你在单一应用程序中同时连接多种类型的数据库:MySQL、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL,可一次快速方便地访问所有数据库。

我们先来一起看看它的迁移能力 ⬇

  • Step 1: 增加数据源与目标库


  • Step 2: 打开数据传输工具填写好相关信息:工具->传输工具

  • Step 3: 选择全部表

  • Step 4: 同步结果

4步操作就实现了数据库同步迁移。


二、DataX

DataX 是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台

DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。

我们可以把Datax的同步功能当作迁移功能使用,看看效果如何 ⬇

  • Step 1: 环境准备

  • Linux

  • JDK(1.8以上,推荐1.8)

  • Python(2或3都可以)

  • Apache Maven 3.x (Compile DataX)

我们这里只简单介绍工具包安装:

yum install -y java-1.8.0-openjdk# python2 自带了,这里不做安装。
# 用工具包安装,不需要部署 Apache Maven
  • Step 2: Datax部署

1、直接下载DataX工具包

下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202210/datax.tar.gz;

2、上传到Linux中

3、解压

tar -zxvf datax.tar.gz;

4、验证环境是否正常

python ./datax/bin/datax.py ./datax/job/job.json

5、验证结果

  • Step 3: 编写Job

1、查看配置模板

python ./datax/bin/datax.py -r postgresqlreader -w mysqlwriter

2、编写配置模板


{"job": {"content": [{"reader": {"name": "postgresqlreader","parameter": {"connection": [{"jdbcUrl": ["jdbc:postgresql://10.3.70.132:30118/dc-master-data-management-pg_migrate_test"],"table": ["crm_lead"]}],"password": "****","username": "****","column": ["*"]}},"writer": {"name": "mysqlwriter","parameter": {"connection": [{"jdbcUrl": "jdbc:mysql://10.3.65.137:4000/test?characterEncoding=utf8&useSSL=false&useServerPrepStmts=true&prepStmtCacheSqlLimit=1000&useConfigs=maxPerformance&rewriteBatchedStatements=true&defaultfetchsize=-2147483648","table": ["crm_lead"]}],"username": "root","password": "****","writeMode": "insert","column": ["*"]}}}],"setting": {"speed": {"channel": "1"}}}
}
  • Step 4: 启动Datax

1、启动Datax

python ./datax/bin/datax.py ./datax/pg2tidb.json

2、完成结果


三、TurboDX

TurboDX for MySQL 专门针对兼容MySQL路线的数据库作为目标库的实时同步工具软件,支持Oracle(RAC)、SQLServer、MySQL、PostgreSQL、DB2、Informix等,全量+增量实时同步到MySQL/TiDB/Oceanbase/TDSQL/GlodenDB/SequoiaDB/GreatDB/HotDB等。

  • Step 1: TurboDX 安装部署

1、准备⼀台Windows环境的机器

2、下载数据迁移⼯具(TurboDX for MySQL),并成功安装

3、启动

打开Windows 服务控制面板(可直接使用Windows 自带的搜索功能,输入 “服务” 即可快速进入),找到TurboDXDB、TurboDX Server、TurboDXWEB 三项服务,并按顺序依次启动。

  • Step 2: TurboDX 使用

1、访问 TurboDX

本机访问:http://127.0.0.1:8422/turbodx

进入TurboDX 控制中心,默认登录用户密码为 admin/admin

2、配置数据源 PostgreSQL

3、配置需要迁移的库

4、配置目标数据库TiDB

5、配置迁移任务

在右侧选项菜单中,找到任务管理,选择子菜单,复制同步,点击左上角新建按钮,配置集群信息,注意全量与增量选项都要勾选,然后保存。

6、完善任务配置

选中任务,并点击打开。



7、迁移目标库表结构

选择迁移库表,调整对应字段,点击确定。

8、启动迁移任务

点击运行

点击确定

9、解决报错

解决方法:执行 SQL 并重启 postgresql。

ALTER SYSTEM SET wal_level = 'logical';

总结

  • Navicat

-优点:方便快捷,操作简单,对于经常使用 Navicat 的小伙伴来说,更加熟悉,简单的数据迁移没有问题。

-缺点:一方面是收费,另外迁移表结构的时候,有时候会报错,应该是字段类型对应关系没做好。

  • DataX

-优点:对数据同步友好

-缺点:对数据迁移不够友好

Datax主要是做数据同步的,在数据迁移方面有诸多不方便的地方,比如Datax是用多个task来实现数据同步的,每个task需要手动编写 json ,并指定表名与同步的字段名。

如果数据迁移的表与字段太多,task的配置就是非常耗时的一件事情,这对于数据迁移来说实在太麻烦。而且使用Datax之前,下游数据库的表结构要自己创建,工作量一下就大了。所以数据量少的时候,可以用Datax来做数据迁移,但是有大量数据的情况下,不建议使用 Datax

  • TurboDX

-优点:部署简单;操作简单易懂;能全库全表迁移,也能自由过滤指定表迁移;迁移不需要人为干预,功能齐全;表结构迁移与数据迁移是分开的两个功能,可以单独操作。

-缺点:社区版需要使用Windows,Linux版本需要联系官方索要

以上就是本期关于数据库同步迁移的调研分析内容,大家在实际项目中,可以根据自己的情况酌情选择适合的。

说明:文章由神州数码武汉云基地团队实践整理输出,转载请注明出处。

3种常见的数据库迁移同步工具对比,哪个更适合你?相关推荐

  1. 不同库表数据库迁移工具_Microsoft提供的数据库迁移助手工具概述

    不同库表数据库迁移工具 This article gives the overview of the Database Migration Assistant Tool to access, plan ...

  2. 4种常见分支模式解析及优劣对比 | 研发效能提升36计

    摘要:4 种常见分支模式解析及优劣对比.团队研发的本质并不是团队规模越大,研发的效率就越高.我们以为团队规模越大,研发效率就会越高,可以做越多的东西,但是我们发现团队规模大到一定程度,整个研发效率是会 ...

  3. 异构数据库数据同步工具DataX教程,安装、数据同步、java执行

    前言 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase.TableStor ...

  4. 人大金仓(Kingbase)数据库迁移——KDMS工具(人大金仓数据库迁移工具迁移失败可使用此方法)

    使用KDMS工具迁移 注意事项: 使KDMS工具迁移数据库时只能迁移除数据库表数据之外的内容之后再结合金仓数据库本身的工具进行迁移数据 相关推荐:金仓工具进行迁移数据  https://blog.cs ...

  5. oracle迁移几种方式,Oracle数据库迁移的几种方式

    Oracle数据库迁移的几种方式 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上.迁移到远程的机房.迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一.exp/imp逻 ...

  6. 不同数据库同步方式|异地数据库同步|mysql数据库实时同步工具|数据库实时同步

    SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构 ...

  7. mysql定时同步数据库|mysql数据库实时同步工具|mysql 同步数据库

    SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构 ...

  8. 加密文件的识别和破解工具—比elcomsoft更适合中国市场的密码破解工具—掘密

    被滥用的加密技术 数据加密技术是通过加密密钥和加密算法将一则消息转换成无意义的密文.在当今的信息社会中加密技术至关重要,由其是人们在日常生活中使用的一系列通用信息和通信技术的基础,数据加密变成了对信息 ...

  9. 用程序同步mysql数据库表_初次用Java写了个数据库表同步工具

    介绍 java 程序编写,真正跨平台. 传入一定的参数,即可在相同或不同的数据库间进行表的同步,包括表结构的同步及数据的同步.作业由调度工具进行调度,比如 moia,本项目旨在提供一种数据库间表同步的 ...

最新文章

  1. ValueError: urls must start with a leading slash
  2. 万能头文件#include<bits/stdc++.h>更新GCC10.2.0版本
  3. 独家 | 麦肯锡教我的数据科学家的五大黄金法则
  4. java基础面试题:抽象类中是否可以有静态的main方法?
  5. c++中的数组和指针,引用
  6. 配置 Windows 环境变量的方法
  7. 特别策划:视频会议协作平台的机会与技术挑战
  8. [译] RESTful API 设计最佳实践
  9. 360浏览器广告太多怎么办_360浏览器如何关闭广告自动推送
  10. linux 25端口漏洞,一封突如其来的邮件443端口漏洞
  11. 性能服务器如何放进ppt,Linux服务器性能评估与优化.ppt
  12. JavaScript之 函数
  13. 谷歌排名第一的编程语言,死磕这点应用,小白也能转型!
  14. Python print 语句(Python 2 与 Python 3)
  15. Android移动应用基础教程【Android事件处理】
  16. bitmap位图详解
  17. 利用canvas画钟表
  18. 自相关法谱估计matlab,自相关法估计功率谱密度
  19. 事事有着落,件件有回音——MyAppsp平台督查督办管理系统
  20. matlab figure 虚线圆,flutter 画圆,虚线圆,渐变圆

热门文章

  1. 程序设计所遵循的一般步骤
  2. NEXTCHIP-图像优化师
  3. PyCharm控制台显示unicode乱码(python程序)
  4. STL源码剖析---红黑树原理详解上
  5. buuctf web warmup详细题解
  6. xmp打开方式是计算机程序,五步打开XMP文件
  7. [xsy3553]游戏
  8. 百度小程序版帝国cms插件
  9. Twitter推特爬虫工具开发
  10. Arrays.aslist新建的list集合不能add()、remove()你知道吗?