去O不是一件难事,鹅厂DB天团专家揭秘自研之路

时间:2022-10-06 00:57:43

在数据库国产化背景下,“去O”是一件不得不面对的事情。其实,“去O”不难,难的是找到正确的方法以及能系统性地解决数据库问题的产品。

去O不是一件难事,鹅厂DB天团专家揭秘自研之路

近日,一场“硬核”数据库沙龙成功举办,鹅厂DB天团为开发者带来干货分享。在DBTalk自研荟专场活动中,腾讯云数据库专家重点探讨了国产自研数据库突破和创新,并具体分享了在政企、金融等实际业务场景中的可行性路径。

01 数据库是“基础软件皇冠上的明珠”

回顾国产数据库发展史,“去O”一直是时代最强音,只不过因技术限制以及应用环境影响,“去O”之路并不顺畅。2013年到现在,国产数据库百花齐放,以腾讯云为代表的企业开始加入国产DB能力建设中,缩小了与国外产品的差距。

在腾讯云看来,数据库是“基础软件皇冠上的明珠”,也是技术的“大动脉”,要想做到信息技术自主可控,数据库国产化是必经之路。只不过,去O之路非常复杂,很多时候并不是简单地进行数据库品牌的替换,更不是“左手”换“右手”。

去O是一项系统性的工作,TDSQL去O考虑到各个方面的内容会比较多,首先是以内核为基础的语法和功能的兼容,包含数据类型、内置函数、Oracle特有的SQL语法, PLSQL等基础语法,也有一些Oracle功能特性的兼容, 如分区表维护,MERGE INTO, CONNECT BY, 自治事务等这些功能层面的兼容。” 腾讯云数据库专家工程师孙旭,首先从TDSQL与Oracle兼容能力方面进行了解读。

要想让数据库实现平滑过渡,除了基础语法, 少不了要遇到功能特性层面的兼容,包括Oracle里的压缩能力, 索引, 结果集缓存, 自动负载管理等,还有相关的诊断能力都需要兼容。但腾讯云数据库的兼容能力并不满足于此,除了内核层面的兼容,还实现了生态工具方面的兼容, 包括迁移评估工具, 开发工具, 和数据访问接口 (包括JDBC/ODBC和 Pro*C)的兼容。其中,JDBC的兼容一般是配合内核能力去做一些兼容,比如:内核里面增加了一个数据类型,需要配合这个特性去做开发,因为JDBC对数据库返回的数据类型都要对应生成一些JAVA对象,所以新增类型意味着可能要对JDBC里面已有的,与此类型相关的对象进行修改。如果没有同类数据类型,就新增一个Java对象与之对应。另外,也有其它的相关修改,如新增语法,JDBC都要进行处理,包括要实现与Pro*C相关的一些兼容。

以反洗钱系统为例,反洗钱系统是HTAP混合场景,也需要Oracle兼容。腾讯云数据库完全可以平滑迁移,实现了分布式系统改造,大幅提升性能。再比如,在保险系统生态环境中,替换TDSQL后更新表结构效率可以提升50%,Oracle兼容能力本身兼容度比较高,帮助了业务在短期迁移上线,也做到同城容灾双中心,大幅提升系统的可靠性。

02 异构数据库迁移是一个系统性工程

当企业确定好数据库产品,解决了兼容性问题,下一步就是具体的迁移方案,如何通过现代化的技术方法和手段,实现业务系统的平滑过渡?选择适合的异构数据库迁移方案和工具,可避免踩坑!

“异构数据库迁移的整体方案分为三个部分:迁移前、迁移中和迁移后。腾讯云数据库通过迁移工具完成整个迁移的过程。目前,在私有云独立部署的有两个迁移数据库工具:一个是DBbridge,一个是TMT。” 腾讯云数据库工程师温浩,以数据库迁移失败案例为切入点,重点剖析了异构数据库成功迁移的关键点。

异构数据库迁移,要解决两个数据库存在的不同特点和特性问题,哪怕两者之间存在的非常细微化的差异,也会影响迁移结果,如果测试不充分,很容易导致失败。比如:Oracle的数据类型是按照字节计算长度,而TDSQL是按照字符计算,所以在迁移前需要解决二者差异化问题。

很多数据库迁移之所以失败,主要是迁移方案比较粗糙,写迁移步骤的时候只有一个大致说明,但没有一个具体的步骤。例如,迁移需要用户给授权,但没有写具体的权限,或者没有一个具体的操作,实际迁移的过程中可能就会手忙脚乱。同时,异构数据库迁移涉及的部门比较多,会有跨部门合作的问题,包括业务部门、测试、运维,也有可能涉及到应用的第三方厂商,需要更好地解决各个部门之间的沟通效率问题。更重要的是,在工具的选择上,也比较混乱,不同厂商提供的都是各自的迁移工具,数据库兼容性不够友好。

腾讯云数据库提供的DBbridge,是商业化版本,我们可以把它定位为数据管理平台,能够支持各种异构数据库的迁移、数据同步和数据订阅等,工具本身还是平台化版本,具备高可用特性,可以分布式部署,不管是一台机器,还是多台机器,都可以支持,可支持的最大限节点是50个。而TMT是一个免费版本,是专门针对Oracle迁移到TDSQL场景时的使用,就像Oracle或者MySQL导入导出工具,目的主要是为了快速实现Oracle到TDSQL的数据迁移。

03 智能化管控为数据库的高可用 “保驾护航”

迈过数据迁移的坎儿,剩下的就是平台的架构与管控问题!

“一套架构、两类场景(公有云/私有云)、三种输出模式(公有云/TCE/独立部署)。”在腾讯云数据库高级工程师 程鹏看来,TDSQL能在保险、银行、通信、政务这些行业帮助客户深度“去O”,是因为产品本身具有平台化和智能化管控能力,外加周边生态的持续性建设,能实现数据库可视化管理。

数据库迁移上线后,要有高效的管控流程;TDSQL生命周期流程基于 BPMN工作流模型,这类模型的好处在于做到异步长流程可观测可干预,且自带控制节点。比如:一个备份恢复流程,当流程失败或超时,仅需要调整控制节点参数即可使流程自愈,非常适合自动化流程编排,这也是BPMN模型优于常用DAG模型的一个地方。同时,通过消息队列+分布式锁的机制,能够保证工作流的调度和自身容灾。而在执行机制上,大原则是Center节点是进行编排和调度的节点,Agent节点原则上只执行原子操作。

而从容灾备份的角度来看,TDSQL支持了丰富的备份介质,如NAS、HDFS、对象存储COS、S3、NBU等主流的备份软件,提供了灵活的备份策略,包括全量、增量物理备份和库表级逻辑备份。另外还有精细化的备份控制,比如:备份周期、保留的备份数、并发数和压缩算法等等。

从Oracle内核兼容到迁移、管控,再到实际场景落地,TDSQL不仅在展示国产数据库设计精髓,更说明 “去O”之路可以变得轻松、简单,同时也让更多企业迎来技术创新的历史机遇。