实录:电话咨询数据库数据迁移“100” 个问题

科技   2024-11-06 08:18   北京  


开头介绍一下个人微信群,如果感兴趣 MOP MySQL ,Oracle,PostgreSQL 以及国产数据库等有问题,有需求都可以加群,群内有各行业大咖,ACE,也许能解决你的问题。加群请微信联系 JiekeXu_DBA

      参加 “央企” 项目改造会后的,“数据库瞎想”

      这段时间国产数据库的话题频繁出现,新时代新需求,最近研究如何替换MySQL到国产数据库的过程中,发现有这样的需求。不乏一些老的系统,软件没人维护,之前编写软件的开发人员已经找不到踪影,应用系统的数据一直增长上涨,这些客户共同的特点,数据库要国产化,导致数据迁移的问题,说难不难,说简单也不简单,要求系统不停机,业务连轴转,增量数据快速上涨的情况下追平数据,业务代码不能改造,要求数据同步能及时,减少切换等待的时间,这里查询了一些资料,也咨询了一些成熟的产品。

      比如“阿里云DTS” ,在央国企项目里面不能有国外产品,什么OGG、Kettle这些ETL软件不能出现在项目的名单上,产品涉及政治政策问题是不能妥协的,技术中有些开源的产品如Datax,Canal,这些开源产品在出现问题后并不能保证100%解决其中开源软件的问题,满足不了形形色色的企业需求。

      最终方案必须在国产的软件里面寻找,必须保证满足核心项目中出现数据传输维内托后,有软件的厂商进行解决成为寻找软件的必要选项。

关于需求目前比较笼统,几句话总结:

1  从MySQL同步到国产数据库,哪个国产库目前并不能完全确认,且ETL软件能支持的国产数据库越多越好 

2  需要进行增量的同步,且同步数据的速度要快要及时,尤其增量数据的同步部分

需求比较模糊,在寻找解决方案的过程中需要落地详细的方案,以防后面客户收紧需求,让现在的工作变成无用功,这里对任务进行了拆解。

1  需要数据同步功能和数据迁移的功能完美的结合和切换 

2  支持国产数据库产品种类要丰富,做到大部分国产数据库都支持,后期成为一个标准型的方案 

3  需要长期稳定的增量同步,最小化影响生产库源库的性能 

4  纯国产软件,有商业支持,有后续的维保支持

在传统方案中不花钱的数据同步和迁移的方案可以总结

1  Canal 

2  Kettle 

3  阿里云 DTS 迁移 

4  各个数据库厂商自身的迁移软件

这些方案都有各自的优势,其中各个软件都有各自在国产化项目中的硬伤

1 Canal 本身对数据库的源库的种类有要求:

必须是MySQL,作为通用性的方案显然是不实际的。

2 Kettle 国外的ETL软件:

这不符合国内央国企的,项目中的软件全面国产化的硬性要求。

3 阿里云DTS:

在性能上阿里云的DTS是无可挑剔的,但使用的范围限于云上,这点使用的范围很窄,不能作为通用性方案。

4 各个厂商的迁移软件:

大部分厂商的迁移软件都是适配自身的数据库产品,对其他数据库产品的兼容性有问题,所以不能作为通用性方案。

以上这些软件和方案无法满足国产化项目中的数据同步或迁移工作的通用性方案。

       在为央国企大型客户服务的过程中,ETL软件在整体项目中的作用不容忽略,甚至这是整体项目能否成功的关键因素之一,这些是数据库人需要考量和思虑的问题。因为之前并未对ETL软件有过多的研究,所以把这个问题抛给了一些数据库专业群群,看看大家的意见和方案,给出各种答案都有,其中一些群里的群友提供了一些国产的数据库数据同步的软件,有几个人都提到了TapData。

       虽然万能的群友给出了答案,这里还需要进一步对软件进行更多的了解,并且弥补一下ETL方面的缺少的知识,以便在后续的工作中,能应对甲方的质询和疑问,做到对答如流。随即这里找到了TapData的联系方式,直接拨打电话进行咨询,下面是通话的记录。

我:喂,你好,是钛铂数据对吧?

客服:是的,这边是TapData

我:这边有一个需求,想和您咨询一下,您看方便吗?

客服:方便,您这边有什么需求

我:这边我们需要将MySQL同步到一个国产数据库,现在这个国产数据库还不好说,我们就以OceanBase作为一个假设的目的库,这里需要数据的传输方式是同步性质的,不是仅仅是迁移数据,ETL软件必须为国产自主,且适合云上云下进行部署,云下部分情况不能将数据库暴露走公网,要确保可以单独部署,云上部署时可以有托管的方式,数据同步的性能要有一定的保证,出现问题咱们要第一时间解决客户的问题,我这边的需求您清楚吗?

客服:我这边在重复一下,MySQL同步到国产数据库,具体哪个国产数据库暂不清楚,暂定OceanBase,部署的方式要灵活,在出现问题的情况下,需要ETL厂商进行干预和支持,大致需求是这样的对吗?

我:对,您看可以吗?

客服:您稍等,这样的需求是我们软件的基本功能,最近也经常有客户过来咨询,我来把之前一些客户数据同步方案中,技术的部分和您介绍一下,基于客户的信息的敏感性,我们只能对技术的部分进行阐述您看行吗? 

      TapData有成熟的文档,您有微信吗?  这里把技术页面推给您,您边看,咱们边聊可以吗?我可以快速的和您过一下相关的内容。

我:可以的,您说的稍微慢一点,我这边记录一下。

客服:您看微信的链接,您点击一下,首先您看第一页,对您点击一下链接,您看我们目前支持国产的数据库有,达梦,人大金仓,南大通用,华为openGauss,OceanBase,阿里云全系的产品,腾讯云全系的产品,华为GaussDB,您看这些产品作为数据源都是可以的。https://docs.tapdata.net/prerequisites/supported-databases

我:好,这边时间有点紧,直接问比较快,我把我可能需要的同步源和目标库的情况给您,你看看行不行,咱们快速过一下。

1 MYSQL --- OceanBase  或者OB Cloud 

2 MYSQL --- 达梦 

3 MYSQL --- PostgreSQL 

4 MYSQL --- MSSQL (Sql Server) 

5 MYSQL --- Doris 

6 MYSQL --- GAUSSDB 

7 MYSQL --- PolarDB for MySQL 

8 MYSQL --- TDSQL 

9 MYSQL --- TIDB

客服:看到了,您这边提供的信息,我看了一下,您问比较挺全,最近有大量的客户也在问,我们都支持,稍等我在对一下,OK对我们都支持。

我:好的感谢。另外我们单位的客户,现在就有一个问题,我顺便问一下,他们购买了一个ETL软件,我就不提名字了,别的还行,就是做不了MongoDB的双向复制,我们也咨询了很多公司和方案,目前我们唯一得到确认可以做MongoDB 双向复制的,只有阿里云,使用阿里云的托管的MongoDB产品,阿里云告诉我们,他们可以做MongoDB双向复制的原理是修改了MongoDB的源代码,但客户的MongoDB是线下的,目前我找不到方案解决这个问题。咱们有方案可以解决MongoDB 双向复制的问题吗?

客服:您这个问题,我们有成熟的案例,还是一个比较大的国企的案例。

我:我打断一下,我说的是MongoDB 双向复制,不是单向复制。现在阿里云也说线下的他们也没办法,通过开源的Mongoshake进行同步也不行,所以咱们这边是确认,MongoDB 双向同步是没有问题,有成熟的案例?

客服:您放心,我们做MongoDB是非常专业的,这边TapData还有MongoDB的运维团队,最近我们和一个知名的国企大客户实施了MongoDB双向复制的工作,不用修改MongoDB的源码,稍后让我们的技术老师给您解释一下方案。

我:我再问一下,如果是Oracle同步到国产数据库,有方案吗,我发名单到您微信。

POSTGRESQL --Kingbase 

POLARDB --- OceanBase 

ORACLE---OceanBase 

ORACLE --- 达梦 

ORACLE --- OceanBase 

ORACLE --- GAUSSDB

客服:您提出的这些源到目的,TapData这边都可以进行同步。最近咨询的客户和您类似的情况有一些,我们一天能接到的10多个客户咨询,有80%是这样的需求,要求我们保证从原有的开源或国外的商业数据库迁移或同步到国产数据库,一部分客户开始POC,并准备后续了。

我:刚才提到的数据的实时性的问题,也是需要关注的问题,一些主流的方案对数据的实时性并不能保证。向源端的MySQL写一条数据,要马上在OceanBase上查到,在不考虑目标数据库性能的基础上,ETL软件的流转和传输是关键。另外TapData部署的方式有哪些,不同部署的方式的区别是什么?

客服:实时性传输是TapData的一个优势,我找一下我们的技术人员来回答一下问题,他们对技术问题比我专业,我拉群。

技术人员:您好,这里看到我们客服和您讨论的问题了。

我:TapData部署方式有哪些?安装的方式尽量的简单一些,如果不安装能试用更好,我们希望进行试用。

技术人员:这边可以,TapData有免费的试用,也有开源的版本可以使用,已满足客户短时的需求。不安装软件使用云上的TapData Cloud 版本进行数据的迁移或同步是一个好的选择。开源版本可以升级到企业版本,这里我们可以帮助客户进行试用后的产品升级。

我:麻烦您介绍一下,开源,企业,云上的版本有哪些特点、适应那些对应的场景。技术人员:这里简略的给您介绍一下,TapData的产品部署,有三个方式: 

1 TapData 云版:TapData Cloud版本主要为客户短期迁移数据设计、云上的产品的数据迁移使用。举一个例子,客户想从A云将数据库数据迁移到B云上,通过TapData的云版,迅速的帮助您迁移数据。客户的短期数据迁移也可以用云版本,这样费用低,不占用客户的资源,即开即用,不需要安装和部署。即买即用的模式收到不少客户的青睐。

2 TapData企业版:TapData企业版是企业级别的产品。一些企业核心数据的传输场景非常适合,如数据的迁移、数据的同步、多数据副本传输、异构数据同步、异构数据迁移,多表数据合并(数据多源聚合)。同时企业版有丰富的操作界面,可以进行数据迁移中的图形化操作,方便客户的使用。

      举例:比如A企业的实时数据,需要大数据通过Diors来处理,使用TapData将客户的数据库和Diors进行数据实时同步,不少客户担心,一些常见的问题。

      如:数据链路断了(断点续传)、ETL软件所在的主机死机、ETL软件所在的主机资源不足的问题。TapData企业版在设计之初对数据传输的环节提供高可用,在出现ETL设备异常情况下,进行ETL软件所在的主机进行高可用切换,保证TapData稳定运行持续为客户核心的数据传输做最完善的保证TapData可以完成三节点,二节点高可用搭建和切换,我们有丰富的经验和可操作的管理界面方便客户进行监控和管理数据同步服务。

3 TapData开源版本:TapData开源ETL产品目前支持开源数据库产品之间的数据同步和迁移,其他部分未做任何限制。

我:这里有一个数据增量的问题,在使用kettle做数据同步一些大库,大表经常性因kettle读取增量数据的问题,导致数据抽取和业务争抢数据库资源,TapData 解决了类似的问题吗?

技术人员:这个问题的主要原因有两个 

1 增量抽取数据的并发
2 增量抽取数据的方式 TapData 

解决了这2个问题:

1 TapData 通过有效的灵活的参数,在发现数据抽取源库,产生资源争抢的情况下,调整并发立即生效。

2 利用TapData 特有的功能,数据共享挖掘。通过数据共享挖掘,对增量数据仅一次进行读取。

      TapData有效的将这些数据存储在TapData的内部,从而不需要对源库进行频繁的数据扫描和抽取。与此同时我们建议用户,采用数据库日志增量的方式来对数据进行追取,数据的增量追取将不再影响源库的性能。这部分我们是有案例的,需要的话我发给您。这个功能也是我们在不断的迭代和客户的反馈中锻炼出来的,能及时的解决源库性能的问题。TapData还采用了多线程和批处理技术,在数据库硬件资源充足的情况下,可以调节参数提高同步效率。

我:太好了,我这还有一个关于数据安全的问题和ETL部署的问题,现在一些央企国企的数据要传送到云上做数据备份,基于企业的性质和安全策略,数据同步软件是不能直接通过外网来访问企业的数据库将数据传输到云上,企业的数据库不能开通外网访问,TapData 有方案可以解决这类问题吗?

技术人员:这部分我们有详尽的方案可以支持对数据敏感的企事业单位的数据云备份的工作。一般TapData在这些企业指定的安全区域部署TapData企业版,并对TapData服务器进行安全加固,通过TapData服务器与云上的TapData服务进行数据的传输,达到二次数据保护。

我:后面的一些简单的问题,经过了解我觉得也就不用问了,比如在数据复制中,把原表的字段增加了一个,或减少,TapData都能同步到目的库,且数据不丢失,这个也应该没有问题 ?对了刚才客服同学说您可以解释一下,TapData MongoDB双向同步的功能实现,可以知道细节吗?

      我比较关注MongoDB 复制集同步的数据回环问题,阿里云可以进行MongoDB 双向同步,再修改了MongoDB代码的情况下,在oplog上增加了可以辨别的信息,避免数据的回环,TapData的方案是怎么做到的呢?

技术人员:微信一个图,您看一下

我:不好意思,我没太懂。

技术人员:这张图中的关键是在复制中通过TapData 核验数据的来源,每条数据中都明确标识数据来源,防止数据回环同步的问题,在双向同步中,并不一定要去修改源代码,对传输数据本身来进行标识,对原有的系统破坏小,产生Bug的可能性更小。

我:明白了,TapData更多利用了数据本身,采用轻量化的方案来解决客户的问题。方案很灵活,受教了。还有一个问题,TapData和国产数据库的兼容互认的问题,TapData和国产数据库之间互相兼容的认证有哪些?

客服:目前TapData已经和OceanBase、Kingbase、GauseDB、TiDB、涛思数据TDengine、海量数据库Vastbase等产品都进行了兼容性互认。您随时可以和TapData联系,随时可以协商POC的时间,您还可以去申请免费的线上TapData产品,快速预约TapData产品的演示 https://tapdata.net/h-col-204.html。

我:谢谢您。

总结,经过这次电话的咨询,对数据库的迁移到国产数据库的工作,更加有信心了。在数据迁移的部分有专业的产品和公司可以帮助我们完成后续遇到的数据同步、迁移的难题。


Austindatabases 公众号,主要围绕数据库技术(PostgreSQL, MySQL, Mongodb, Redis, SqlServer,PolarDB, Oceanbase 等)和职业发展,国外数据库大会音译,国外大型IT信息类网站文章翻译,等,希望能和您共同发展。


分享几个数据库备份脚本

一文搞懂 Oracle 统计信息

我的 Oracle ACE 心路历程

MOP 系列|MOP 三种主流数据库索引简介

Oracle 主流版本不同架构下的静默安装指南

关机重启导致 ASM 磁盘丢失数据库无法启动

Oracle SQL 性能分析(SPA)原理与实战演练

Oracle 11g 升级到 19c 需要关注的几个问题

Windows 10 环境下 MySQL 8.0.33 安装指南

SQL 大全(四)|数据库迁移升级时常用 SQL 语句

OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)

Oracle 大数据量导出工具——sqluldr2 的安装与使用

Oracle ACE 视角下的国产数据库现状与选型及应对策略

从国产数据库调研报告中你都能了解哪些信息及我的总结建议

使用数据泵利用 rowid 分片导出导入 lob 大表及最佳实践

在归档模式下直接 rm dbf 数据文件并重启数据库还有救吗?

欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347

CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107——————————————————————————

JiekeXu DBA之路
JiekeXu:Oracle ACE-Pro,获 Oracle OCP/OCM 及 MySQL OCP 认证,墨天轮 MVP,利用闲时间记录菜鸟 DBA 学习成长之路,所发布文字属于个人观点和学习笔记,如有错误及不当之处,敬请批评指正!
 最新文章