102024.05

【精读】2023网信自主创新调研报告-数据库

2024.05.10

 经过7个多月的调研和分析整理工作,《2023网信自主创新调研报告》如期和读者见面了。如果说第一年参与调研和报告编写工作是出于兴趣,第二年、第三年是出于情怀,那么连续6年参与这项工作就变成了一种责任。编委会将把这项工作坚持做下去。

    从今天开始,“自主创新如是说”将对报告的各个章节进行连载,希望对读者有提供有益的帮助。




第五章  数据库《2023网信自主创新调研报告》


      

      截止到 2023 年,国产数据库引擎的性能、可扩展性和安全性等方面均有显著提升,完整的国产数据库产品生态已经初步建立,自主数据库解决方案开始与国际巨头竞争,并获得了市场认可。


5.1国产数据库需要解决兼容、迁移和智能运维问题




5.1.1 兼容问题


我国数据库技术来源复杂,主要有自主研发、基于国外开源数据库二次开发、购买国外商业数据库授权包装成国产三条技术路线。发挥国产数据库安全性和自主可控的优势,首要问题是数据库的兼容性。


国外数据库(Oracle、DB2、SOLServer 等)发展较早特别是 Oracle 在国内市场占领了一定先机。

因此,兼容性问题主要存在于两个方面:


一是 Oracle 经过多年的发展,在SOL 语言、性能、实例形态、容灾方案等方面有很多积累扩展。若要实现 Oracle 数据库的国产化替代,首先要解决的就是如何兼容 Oracle 的大量 SOL 方言问题,尤其是 Oracle 的PL/SOL 这一独特的广受欢迎的语法体系。


二是用户经过信息化的长期积累,基于 Oracle 开发了大量的业务系统。为了适配新的国产数据库,必须对这些业务系统的代码进行修改,各数据表的数据类型、函数、语法规则需要进行系统、全面的改造,这就要求国产数据库对原有数据库能够兼容,降低代码改造成本。


5.1.2 迁移问题


国产数据库以“存量替换”的场景为主,因此数据库迁移是一项重要工作。


目前,在迁移方面取得的进展主要表现在以下三个方面:


一是提升了迁移成功率。通过不断的技术迭代,国产数据库针对中国市场的特性,提升了异构数据库迁移的成功率,减少了数据库国产化的工作量。


二是提升了迁移效率。通过数据库本身的优化和高效的迁移工具,国产数据库大幅度缩短了迁移时间,使得用户能够在较短时间内完成迁移工作,减少了对业务的影响。


三是降低了迁移风险。通过完善的迁移方案和技术手段,确保在迁移过程中业务不中断,数据不丢失,降低了迁移风险。

然而,数据库迁移是一个十分复杂的过程,国产数据库在对各类应用场景的适应能力、功能全面性、自动化处理等方面,还需要进一步完善和提高。


目前的挑战主要包括:


一是迁移评估效果不理想。多数数据库厂商的迁移工具提供定功能的异构数据库对象及数据迁移评估,但评估的结果与实际情况往往有较大出入。


二是高级对象迁移能力不强。目前多数数据库厂商的迁移工具只能迁移部分高级对象,且成功率不高,对不能迁移的高级对象往往也不能准确定位问题。


三是应用系统迁移能力弱。不同应用系统涉及到的编程语言和数据库接口方式各异,在技术、架构、处理模式、运维管理等方面有较大的差异性,这些都是应用系统迁移要考虑的因素。目前,多数数据库迁移工具并不提供对应用系统迁移的评估,部分国产数据库提供的应用系统迁移工具功能简单应用系统迁移工作主要依靠人工完成。


万里数据库评估迁移工具软件(英文简称:GreatDTS)是集评估、迁移、同步和校验功能于一体的数据迁移工具,提供便捷部署、易于使用、快速高效的同构和异构数据复制服务。

GreatDTS支持对象迁移评估、应用改造评估、全量数据迁移、增量数据同步和数据校验等功能,具备应用深度分析、语法树分析、断点续传、多线程多任务并行模式、事务级同步和全量数据一致性校验等特性,支持用户将Oracle数据库迁移到GreatDB系列数据库,同时提供GreatDB、Oracle、MySQL、Kafka等多种数据源之间的数据同步。


目前,万里数据库已完成GreatDB安全数据库、数据库运维管理平台GreatADM、评估迁移工具GreatDTS等在内的全系列数据库产品的安全可用性研发,并推出一站式数据库产品与解决方案,支撑金融、运营商、能源、政府、交通等涉及国计民生的重点行业超 1000个业务场景实现数字化转型,为客户提供稳定、易用、高效的数据库解决方案,满足复杂、多元、差异性的各类场景需求。



5.1.3 智能运维问题

    

5.2提高兼容性能在很大程度上解决问题

5.2.1对 Oracle 的兼容是主要问题


兼容性问题源于异构数据库的差异性,存在于很多方面如:字符集和时区差异,数据类型差异,数据库索引、序列号、自增字段、物化视图、触发器、全局临时表、系统包、事务隔离级别和 MVCC 等特殊功能差异,SQL语法的差异:hint、sglprofile 等优化 SQL 执行计划能力差异,PL/SQL 差异和多元化应用系统和多种国产化软硬件平台兼容性等。在上述兼容性问题中,国产数据库对 Oracle 的兼容最为突出。由于国内大部分关系型数据库产品基于MySQL和PostgreSQL 二次开发,因此这些产品对 MySQL、PostgreSQI兼容性较好,但没有体系化地兼容 Oracle(尤其是在 PL/SQL方面)。


5.2.2迁移工具的成熟度是主要问题


      如前文所述,数据库迁移问题主要体现在迁移评估、高级对象迁移和应用系统迁移三个方面。迁移评估包括数据库迁移评估和应用迁移评估两方面,评估的内容包括实际迁移时会遇到哪些问题、要花费多长时间等,评估的目的是事先对迁移过程有一个较为全面、相对准确的了解,以便做好相关准备工作,提高迁移成功率、降低迁移风险,从而提升用户对数据库国产化替换的信心。目前迁移评估效果不理想的主要原因在于国产数据库与已广泛使用的国际主流数据库存在较多不兼容性,以及应用系统的千差万别。数据库高级对象是指除表、视图、序列之外的自定义存储过程、函数、触发器、程序包等对象。数据库高级对象迁移涉及到源数据库、目标数据库的多个层面(如自定义存储过程、函数、触发器、程序包等)及多个方面(如数据类型、SOL语法等)的差异性,与数据库的兼容性有直接关系。数据库的兼容性越好,高级对象的迁移工作量越小、相对越容易。因此,解决兼容性问题是解决高级对象迁移问题的本源。在此基础上尽量提升高级对象自动化迁移比例,不能自动化迁移的也要准确定位问题,减小工作难度,减轻工作量。应用系统迁移工作一般由用户或用户的应用供应商完成,有时候也需要国产数据库厂商的参与。因此,相关人员不了解国产数据库与原数据库的差异,而数据库厂商又不了解用户的应用系统,这是问题的根源。实际上,这又回到了数据库的兼容性问题,但国产数据库做到100%兼容国外主流数据库也是不现实的,因此需要提高迁移工具的成熟度,尽可能提升自动化迁移比例,不能自动迁移的部分也能准确定位问题。

5.2.3智能运维面对多方面困难

      

国产数据库运维问题的原因主要包括技术复杂性、人才短缺、运维管理模式落后、缺乏行业标准和规范等。。

(1)技术复杂。

      国产数据库产品种类繁多,不同的数据库技术路线和实现原理各不相同,这使得运维人员需要具备多种技能。每种国产数据库都有其独特的管理、配置和优化方法,运维人员很难掌握所有技术。同时,国产数据库在性能优化、高可用性等方面的支持相对较弱,这给运维带来了更多挑战。

     数据库运维领域的人才储备不足,尤其在国产数据库领域。运维人员需要具备专业的知识和实践经验,但目前国内相关的培训和教育资源有限,无法满足市场需求。这导致运维人才供给不足,给企业的运维工作带来困难。

      (3)运维管理模式落后

      传统的运维管理模式主要是人工操作,效率低下且容易出错。随着数据量的增长,传统方式越来越难以应对日益繁重的运维任务。。

      (4)缺乏行业标准和规范

      国产数据库运维管理尚未形成统一的行业标准和规范,导致用户在运维过程中难以形成统一的管理体系。缺乏标准规范还会影响到运维人员的技能提升和经验分享。


5.3加强适配迁移能力,引入人工智能技术


5.3.1加强多系统、多平台、多款数据库无缝兼容适配

      针对异构数据库适配主要是高度兼容 Oracle 语法与PL/SQL,支持VARCHAR2/NVARCHAR2、NUMBER 等全部常用数据类型。在PL/SOL语法上,支持控制语句、集合、动态 SQL、子程序、预定义包、错误处理等全部 PL/SOL 语法,通过自主原创 PL/SQL 编译器,支持复杂 PL/SQL 程序,解决 Oracle 业务迁移到国产化数据库的核心痛点问题,并为完善其他兼容性问题提供基础。在 Oracle 数据库对象、DML、函数、系统视图、内置包、驱动等方面,做到常用功能的兼容,满足大部分业务的迁移需求。

5.3.2 通过技术创新和标准化  提高迁移能力


      在增强迁移评估能力方面,一是建立完善的数据库迁移评估体系,包括全面评估现有数据库系统、预测迁移过程中可能遇到的问题并制定解决方案等。二是加强技术研发和创新,通过加强技术创新,结合人工智能等新型技术,不断改进迁移工具,提高迁移评估的适应能力和准确性。三是提高数据库管理员的技能和水平。

      在提升数据库高级对象的迁移能力方面,一是理解源数据库及目标数据库架构的各个方面,以便在迁移过程中能够更好地处理这些对象。二是理解源数据库及目标数据库之间的数据模型转换方法,了解如何将一个数据库系统的对象转换为另一个数据库系统的对象。三是借助其他项目累积的迁移经验和最佳实践,利用人工智能算法以适应新的环境,尽可能提高自动迁移比例和迁移成功率。

      在应用系统迁移方面,主要工作在 SQL 语句的改写上。因此,需要迁移工具遍历应用程序的所有源文件,自动识别出所有访问数据库的 SQL 语句,智能分析 SQL 语句,查找出所有需要改写之处,并进行智能改写,对于不能改写的要标记出来,最后生成SQL 语句改写的报告,以便相关人员检查及对需要人工处理的作进一步处理。


5.3.3  基于人工智能实现国产数据库的智能运维和自治
     

      (1)架构设计

      构建一个具备智能化和自治能力的国产数据库系统,需要在架构设计时就考虑引入人工智能和机器学习技术,通过设计层次化的系统架构,将数据处理、存储、查询等模块与智能运维模块相互独立,便于后期进行智能化的运维和优化。      


      (2)自动化运维

      实现国产数据库自治的关键在于提高运维效率,降低人工干预。可以通过自动化运维工具,对国产数据库的安装配置、备份、恢复、性能监控等日常工作进行自动化处理。同时,结合故障预测和诊断技术,实现国产数据库的自我故障排查和修复,从而降低故障发生率和人工干预次数。


      (3)性能优化

      借助大数据分析和机器学习技术,对国产数据库的性能数据进行实时监控和长期积累,通过分析国产数据库的运行状态和负载情况,自动调整国产数据库参数、索引、分区等实现性能的优化。同时,结合人工智能技术,对国产数据库的性能进行动态评估和预测,提前发现性能瓶颈,为运维决策提供支持。


      (4)智能诊断与预测

      利用人工智能和机器学习技术,对国产数据库的运行日志、性能数据等进行深度分析,实现故障的智能诊断和预测。通过构建故障诊断模型,自动识别和定位故障原因,为运维人员提供精准的故障排查和处理方案。此外,还可以利用预测模型对国产数据库的未来运行状态进行预测,提前采取措施防止潜在问题。


      (5)知识图谱与专家系统

      构建一个涵盖国产数据库运维知识图谱,将各类运维知识和经验进行结构化存储和关联分析。结合专家系统,实现国产数据库运维知识的自动推理和决策,为运维人员提供智能化的决策支持。同时,知识图谱还可以不断学习和优化,提高运维知识的准确性和实用性。


      (6)运维人员赋能

      实现国产数据库自治还需要培养一支具备智能化运维能力的团队。通过培训和实战演练,提高运维人员对人工智能、大数据、机器学习等技术的掌握程度,使其具备运用先进技术进行国产数据库运维的能力。同时,鼓励运维人员积极参与国产数据库智能化技术的研究和开发,不断推动国产数据库自治技术的创新和进步。