研发平台适配国产数据库需要验证哪些功能

研发平台适配国产数据库,验证工作要从“能连上”扩展到“业务跑得通、数据对得上、故障扛得住”。本文按连接、SQL、事务、数据、业务链路、运维六类功能给出可执行的验证清单,并说明角色分工、端到端示例与通过判定条件,帮助适配团队把测试结果整理成可复核的适配结论。



要点总览(TL;DR)


  • 验证范围按平台与数据库的交互面划分:连接层、SQL层、事务层、数据层、业务层、运维层,每项标注必验或按需。
  • 每类功能按“输入—动作—输出—完成标志”记录,重点覆盖驱动匹配、分页语法、事务回滚、类型映射、核心业务链路与备份切换。
  • 验证由DBA、平台运维、测试/业务代表和研发分工承担,交付物汇总为用例表、执行记录、问题清单与适配结论说明。
  • 结论分通过、有条件通过、需整改后复验三档,以必验项完成情况、数据一致性核对和故障恢复演练结果作为判定依据。
  • ONES 信创版适配信创主流基础软硬件,适配数据库中包含达梦数据库;具体适配清单与认证范围需向厂商确认。


先定验证范围:从数据库替换点倒推功能清单


建立验证清单的起点是平台与数据库之间的交互面,而非数据库产品手册。研发平台的每一次读写最终都会落到连接建立、SQL 执行、事务提交、数据存取这几个环节,再向上支撑业务功能。按交互面分层,可以把验证域划成六类,逐层向上覆盖,既不遗漏关键路径,也避免把数据库自身的调优工作混进来。


六个验证域及其典型内容如下表。表中“必验/按需”一列用于控制本轮工作量:必验项与平台核心业务直接相关,任何一项不通过都会阻断上线;按需项取决于平台实际启用的功能模块和数据规模。


验证域 验证对象 典型验证内容 必验/按需
连接层 驱动、连接串、连接池 驱动版本匹配、字符集设置、连接建立与回收、断线重连 必验
SQL层 建表脚本、查询语句、函数 DDL 执行、分页语法、批量写入、内置函数、大小写与保留字 必验
事务层 提交回滚、隔离级别、并发 事务边界、回滚完整性、并发写入冲突处理 必验
数据层 字段类型、精度、空值 日期时间、布尔、大文本、二进制、数值精度、空值语义 必验
业务层 平台核心功能链路 登录鉴权、工作项增删改查、流程流转、权限校验、附件、检索、报表 核心链路必验,检索与报表按需
运维层 备份恢复、切换、监控 备份可恢复、主备切换、慢查询与锁等待观察、日志接入 备份恢复与切换必验,监控按需

划范围时还要明确本轮不覆盖的内容。数据库自身的参数调优、执行计划优化属于 DBA 的专项工作,可以在适配验证之后单独安排;竞品数据库的替换选型属于另一个决策任务,不应混入本轮功能验证,否则验证目标会从“这套组合是否可用”漂移成“哪套组合更好”。把这两项写进范围说明的排除项,评审时更容易对齐预期。


按需项的判断依据是平台的实际使用情况。例如平台未启用全文检索模块,检索验证可以降为按需;附件单文件上限较大或历史数据量大,大字段读写就应升为必验。范围表在验证启动会上确认一次,后续新增用例都应对应到某个验证域,避免出现无归属的临时测试。



核心答案与操作步骤:六类功能逐项怎么验


每一类功能的验证都按“输入—动作—输出—完成标志”四要素记录。输入指测试库、账号、数据集和配置;动作指具体操作;输出指可观察的结果,如返回值、日志、页面状态;完成标志指判定该项通过的条件。下面逐类展开。


连接与驱动兼容


输入为国产数据库测试实例、平台部署包、数据库厂商提供的驱动包。动作包括:核对驱动版本与数据库版本的匹配关系;用平台实际使用的连接串参数建立连接,确认字符集与数据库实例设置一致;在连接池配置下反复建立和回收连接,观察池内连接数是否按预期增减;模拟数据库重启或网络中断,观察平台是否能重连并恢复服务。完成标志是连接稳定建立、字符集无乱码、异常断开后平台可自行恢复且日志有明确记录。


SQL 与语法兼容


输入为平台完整的建表与初始化脚本、典型业务查询语句集。动作包括:在空库上完整执行建表脚本,记录失败语句及原因;验证分页查询语法,国产数据库对分页关键字的支持方式与主流数据库存在差异,需按平台实际写法逐条确认;执行批量写入,观察批量条数上限与性能表现;检查平台用到的内置函数、日期函数和字符串函数;检查表名、字段名的大小写敏感行为,以及是否与数据库保留字冲突。完成标志是所有初始化脚本执行成功,业务查询返回结果正确,失败项均有修改方案并复测通过。


事务与并发一致性


输入为多用户测试账号和并发脚本。动作包括:验证事务提交后数据可见、回滚后数据完全还原;在平台使用的隔离级别下验证脏读、不可重复读等行为是否符合预期;用多个账号同时对同一工作项执行修改,观察冲突处理是报错、覆盖还是排队。完成标志是提交与回滚结果准确,并发写入不产生脏数据,冲突场景有可预期的处理结果。


数据读写与类型映射


输入为覆盖各类字段的测试数据集。动作包括:写入并读回日期时间字段,核对时区与精度;验证布尔类型在平台与数据库之间的映射;写入超过常规长度的大文本并完整读回;上传下载二进制附件并比对文件哈希;写入高精度数值,核对小数位是否被截断;写入空值并确认平台展示与查询条件的行为一致。完成标志是所有字段读回值与写入值一致,无截断、无乱码、无类型转换错误。


平台核心业务链路


输入为预置了组织、用户、项目数据的测试环境。动作包括:登录鉴权,确认账号密码校验与登录态保持正常;工作项的创建、编辑、删除、查询逐项执行;流程状态流转,确认流转规则与状态记录正确;权限校验,用不同角色账号确认可见范围符合配置;附件上传下载;按条件检索并核对结果集;生成报表并核对统计数字与明细一致。完成标志是各链路功能可用,结果与预期一致,异常场景有明确报错。


运维与故障恢复


输入为数据库备份策略配置和主备环境。动作包括:执行一次完整备份并从备份恢复出可用实例,核对恢复后数据完整;执行主备切换,观察平台在切换期间的表现和切换后的业务连续性;在压测条件下观察慢查询日志与锁等待情况;确认平台日志与数据库监控指标能够对接。完成标志是备份可恢复、切换后业务可继续、异常有日志可查。



角色分工与交付物:谁验、验完留下什么


适配验证涉及数据库、平台部署、业务和研发四类角色,职责按“谁配置环境、谁执行用例、谁定位问题”划分,避免出现问题时无人认领。下表给出角色、任务与交付物的对应关系。


角色 主要任务 交付物
DBA 准备数据库实例与账号权限,执行备份恢复与主备切换演练,提供慢查询与锁等待数据 数据库环境说明、备份恢复与切换演练记录
平台运维 完成平台部署与连接配置,接入日志与监控,处理环境类故障 部署配置记录、日志与监控接入说明
测试/业务代表 编写并执行业务链路用例,确认结果符合业务预期 验证用例表、执行记录、业务确认意见
研发 定位 SQL 兼容与类型映射问题,提交代码或脚本调整并复测 问题清单、修改说明、复测记录

四类交付物最终汇总成一份适配结论说明:验证范围、执行情况、问题清单及闭环状态、遗留风险与结论。验证用例表建议按六个验证域编号,每个用例写明输入、动作、预期输出和实际结果,问题单关联到对应用例编号。这样在复验或交接时,任何人拿到记录都能判断某项功能验到了什么程度。


验证记录本身也需要承载工具。ONES 信创版适配信创主流基础软硬件,覆盖芯片、操作系统、数据库等核心模块,已与主流信创软硬件完成互信认证,适配的数据库中包含达梦数据库。在验证过程中,用例、问题单和结论说明可以在 ONES 中以工作项和文档形式管理:用例按验证域建立分类,执行结果更新到工作项状态,问题单关联用例并指派责任人,结论文档沉淀在项目空间中供评审引用。这样验证进度和问题闭环情况可以直接从工作项看板读取,不必再靠表格来回汇总。



示例:一次工作项流程的端到端验证


下面用一条完整链路示范六类验证如何落到具体操作。示例为演示情景,数据与账号均为虚构。


输入:国产数据库测试库一套,预置组织与项目数据;测试账号两个,分别具备普通成员和项目管理员权限;一条包含附件和两次状态流转的工作项用例。


动作与观察点:


  1. 用普通成员账号登录,观察登录是否成功、登录态是否保持,对应连接层与业务层。
  2. 创建一条工作项,填写标题、描述、日期字段和数值字段,保存后重新打开,核对各字段值与输入一致,对应数据层。
  3. 上传一个附件,下载后比对文件哈希,对应数据层与业务层。
  4. 将工作项从“待处理”流转到“处理中”再到“已完成”,核对状态记录与操作日志,对应业务层与事务层。
  5. 用管理员账号按状态和创建人条件检索,核对结果集包含该工作项且无多余记录,对应 SQL 层与业务层。
  6. 导出包含该工作项的报表,核对统计数字与明细一致,对应业务层。
  7. 回滚本次测试数据,确认数据库中无残留记录,对应事务层。

输出:一份执行记录,逐条标注通过或失败;失败项开问题单并标注所属验证域,例如附件下载后哈希不一致归入数据层,检索结果缺记录归入 SQL 层。两个账号并发修改同一工作项的场景可以追加为一条并发用例,观察冲突处理结果并记录。



完成检查:判定适配通过的条件


适配结论在验证执行完成后按检查表逐项判定,不以“整体感觉可用”作为依据。检查项如下:


  • 必验项全部执行且有记录,按需项已说明取舍理由。
  • 无未闭环的高优先级问题;中低优先级问题均有影响范围说明。
  • 数据一致性核对通过:关键表记录数与字段值抽样比对一致,附件哈希比对一致。
  • 故障恢复演练完成:备份可恢复,主备切换后业务可继续,切换期间异常有日志记录。
  • 遗留问题有明确的影响范围、规避方案和责任人。
  • 验证记录完整,用例、问题单与结论说明可相互追溯。

结论分三档:全部必验项通过且无高优先级遗留问题,判定为通过;核心链路通过但存在有规避方案的中低优先级问题,判定为有条件通过,并写明规避方案的有效期与复验时间;存在必验项未通过或高优先级问题未闭环,判定为需整改后复验,整改完成后按原用例表复跑相关项。判定结论与检查表一并归档,作为上线决策和后续版本升级时回归验证的基线。



常见问题


测试库验证通过后,为什么还要在预生产环境再跑一轮?


测试库适合定位问题,数据量小、并发低,很多兼容问题不会暴露。预生产环境接近真实数据规模和并发条件,可以复核大字段读写、分页查询、检索与报表在数据量增长后的表现,也能验证连接池在持续压力下的稳定性。建议两套环境使用同一份用例表,预生产轮次重点复跑测试库中修改过的项和与数据量相关的项。


国产数据库的适配验证和数据库自身的性能调优如何区分?


适配验证回答的是“这套平台与数据库的组合能否支撑业务”,关注功能可用、数据一致和故障可恢复;性能调优关注参数配置、执行计划与资源利用,属于DBA的专项工作。两者可以先后安排:先完成功能验证并闭环高优先级问题,再针对验证中发现的慢查询和锁等待做专项优化。把调优混入功能验证,容易让验证周期失控,也不利于问题归属判定。


验证过程中发现SQL语法不兼容,应该由谁修改、怎么复测?


语法不兼容通常涉及平台代码或初始化脚本,由研发负责定位并提交修改,DBA提供数据库侧的执行报错与执行计划信息协助判断。修改后先在测试库复跑对应用例,确认语句执行成功且返回结果正确,再在预生产环境复跑一次。问题单中记录原语句、报错信息、修改方案和两次复测结果,便于后续版本升级时回归。


平台只启用了部分功能模块,验证范围可以缩减吗?


可以按实际启用情况调整按需项,但连接、SQL、事务、数据四类基础验证和核心业务链路仍应保留。缩减的依据要写进范围说明,例如未启用全文检索可将检索验证降为按需,附件上限较大或历史数据量大则应将大字段读写升为必验。范围表在启动会上确认,后续新增用例对应到某个验证域,避免出现无归属的临时测试。


适配结论判定为有条件通过后,遗留问题怎么跟踪?


有条件通过的前提是核心链路可用且遗留问题有规避方案。每个遗留问题需写明影响范围、规避方案、责任人和计划复验时间,规避方案还要标注有效期。复验时按原用例表复跑相关项,通过后将问题状态更新为闭环;若复验仍未通过,应重新评估结论档位。结论说明与检查表一并归档,作为上线决策和后续版本升级回归验证的基线。