百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

实用数据库同步工具汇总,帮你找到迁移转换的“最优”选择!

sinye56 2024-09-16 14:21 7 浏览 0 评论

引言

作为资深的DBA同胞你是否在工作中也存在这样的情况呢?公司要搭建数据平台,首要的工作就是把旧库的数据导入到新库中,虽然各种数据库都提供了导入导出的工具,但是数据需要存储到各个地方,MongoDB、HBase、MySQL、Oracle等各种各样的不同数据库,同步起来就有一些困难了。那么如何做好两个数据库之间、不同类型的数据库之间的相互迁移转换呢?

今天小编就常用的数据库同步、迁移转换工具进行一个汇总,以便大家在需要的时候,选择到合适的工具完成自己的工作~

一、SQLyog

SQLyog简介

SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让你从世界的任何角落通过网络来维护远端的MySQL数据库。它也是小编工作一直使用的MySQL管理客户端工具哦。

SQLyog特点

  1. 方便快捷的数据库同步与数据库结构同步工具;
  2. 易用的数据库、数据表备份与还原功能;
  3. 支持导入与导出XML、HTML、CSV等多种格式的数据;
  4. 直接运行批量SQL脚本文件,速度极快;
  5. 新版本更是增加了强大的数据迁移

二、Navicat

Navicat简介

Navicat是一套快速、可靠并且价格相当便宜的数据库管理工具,Navicat提供多达 7 种语言供客户选择,被认为是最受欢迎的数据库前端用户界面工具。它可以用来对本地或远程的 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 数据库进行管理及开发。

Navicat支持功能

  1. 数据模型
  2. 数据传输
  3. 数据同步
  4. 结构同步
  5. 导入、导出、备份、还原、报表创建工具及计划以协助管理数据

三、Ottor

Ottor简介

Otttor是由阿里巴巴开源的一个数据同步产品,它的最初的目的是为了解决跨国异地整个机房的架构为双A,两边均可写。开发时间长达7年,并持续到现在。目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了Otter。Otter基于数据库增量日志解析,支持mysql/oracle数据库进行同步,在最新的v4.2.13已经支持mysql5.7以及阿里云提供的RDS数据库。小编已经在实际项目中使用。

Ottor特点

  1. 基于Canal开源产品,获取数据库增量日志数据。 (什么是Canal,详情查看https://github.com/alibaba/canal)。
  2. 典型管理系统架构,manager(web管理)+node(工作节点),manager运行时推送同步配置到node节点,node节点将同步状态反馈到manager上。
  3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.(otter node依赖于zookeeper进行分布式调度,需要安装一个zookeeper节点或者集群)。

Ottor运行原理

  • db : 数据源以及需要同步到的库
  • Canal : 用户获取数据库增量日志,目前主要支持mysql
  • manager : 配置同步规则设置数据源同步源等
  • zookeeper : 协调node进行协调工作
  • node : 负责任务处理处理接受到的部分同步工作

四、ESF Database Migration

ESF Database Migration简介

ESF Database Convert是一款强大的商业数据库转换工具。支持常见数据库之间相互转换,目前网上能找到“免费”版本,如有不同数据库相互转的需求,可以用此工具解决你的问题。

官方地址为:https://www.easyfrom.net/

ESF Database Migration特点

它支持Oracle, MySQL, SQL Server, PostgreSQL, Visual Foxpro, FireBird, InterBase, Access, Excel, Paradox, Lotus, dBase, Text...之间互相转换

五、DB2DB

DB2DB简介

DB2DB 是目前经过测试速度最快、最稳定实现多种数据库之间进行数据转换的工具。支持 SQL Server、MySQL、SQLite、Access 等多种数据库类型,通过该工具可以把原来的系统,方便快速地部署在不同的数据库甚至是云端数据库下。在大数据情况下(千万级别以上),处理速度比国内外同类软件要高出300%以上。并针对云端数据库中使用最多的 MySQL 数据库进行优化,使得从源数据库复制到新数据库时保留更多的数据表属性设置。这样大大减少程序员、DBA、实施人员将大型数据库进行迁移时的等待、测试和调试时间,减少公司为了测试某系统转换到新数据库系统时的人力成本。

官方地址:http://www.szmesoft.com/DB2DB

DB2DB支持功能

  • 任意类型数据库间进行转换;
  • 数据库表结构自动同步;
  • 数据表索引自动同步;
  • 数据表字段默认值自动同步;
  • 支持对二进制字段数据的同步;
  • 支持各种数据库中自增型字段的处理;
  • 支持同步前对数据表进行检查,避免出现由于数据库自身限制的原因而导致同步失败的情况;
  • 支持把同步内容导出为 SQL 文件的功能;
  • 支持自定义选择需要同步的数据表;
  • 支持将配置保存为方案,以方便日后重新使用;
  • 针对不同的机器配置,可以选择单线程或多线程同步方式。
  • 通过灵活的方式(可按月/周/天/小时/分钟)设定程序不限次定时执行同步动作。

六、 Kettle

Kettle简介

Kettle是一款国外开源的ETL工具,使用突破性的元数据驱动方法提供强大的提取,转换和加载(ETL)功能。在Windows、Linux、Unix上均可运行,数据抽取高效稳定。Kettle 中文名称叫水壶,它凭借图形化,拖放式设计环境以及可扩展、数据集成等特点,越来越成为组织的选择。

Kettle特点

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

七、SyncNavigator

SyncNavigator简介

号称国内做的最好的数据库同步软件,傻瓜式同步数据库,只需要你设置好来源数据库和目标数据库的账号和密码,一键开启,后台自动同步,断点续传,增量同步,几乎不占内存和CPU资源。并且还支持异构数据库,也可以同步部分表或者部分字段,都可以进行更为精准的设置操作。

syncnavigator特点

是一款专业的SQLSERVER,MySQL数据库同步软件,它为你提供一种简单智能的方式完成复杂的数据库数据同步,分发操作。

  • 支持同构数据库同步,异构数据库同步,定时同步,增量同步,断点续传
  • 完整支持Microsoft SQL Server 2000,2005,2008
  • 支持Mysql4.1,5.0,5.4,5.5
  • 支持大容量数据库快速同步。

八、DataX3.0

DataX3.0特点

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。

DataX3.0特点

DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

  • Reader:Reader 为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

支持的数据库:

经过几年积累,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。DataX目前支持数据如下:

大家如有更好的工具推荐,欢迎在留言区补充~

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: