2. 验收依据与标准体系
PostgreSQL 企业项目验收最容易出现的争议,不是“数据库能不能跑”,而是“到底按哪份文件判定合格”。合同 SOW 写的是交付范围与里程碑,需求规格写的是功能与非功能指标,设计文档写的是架构与参数取舍,国标行标给出通用底线,企业内控标准又叠加了安全、运维与审计要求。这些文件往往由不同角色在不同阶段编写,颗粒度、术语、指标口径都不一致。验收准则若直接从其中某一两份文件摘抄,就会出现“合同要求 99.9% 可用性、需求规格写 RTO≤30 分钟、设计文档写流复制同步提交、内控标准要求异地备份可恢复”这类彼此交叉却无法直接判定的局面。因此,验收工作的第一步不是测试,而是建立一套可追溯的映射关系:把每一份依据中的要求,翻译成可观测、可测量、可判定的验收条目。
一、六类依据的定位与冲突处理顺序
六类依据并非平行关系,而是有层级和优先级的。合同 SOW 是法律与商务层面的最高约束,界定“交付什么、不交付什么、什么算完成”;需求规格是业务与功能层面的承诺,界定“系统要满足哪些业务能力与性能指标”;设计文档是技术实现层面的说明,界定“用什么架构、参数、拓扑去满足前两者”;国标行标(如 GB/T 22239 等级保护、GB/T 20988 灾难恢复、金融/电信行业相关规范)是合规底线,属于强制或推荐的外部约束;企业内控标准是组织内部的安全、运维、审计与变更管理要求;验收准则则是把上述五类依据转化为判定规则与证据清单的操作性文件。
当依据之间出现冲突时,建议的处理顺序是:法律法规与强制性国标行标优先于合同,合同优先于需求规格,需求规格优先于设计文档,企业内控标准在不低于外部合规底线的前提下可严于合同。若设计文档的实现方式与需求规格指标冲突,应以需求规格为准并触发设计变更;若合同指标低于强制国标,则必须按国标执行并在验收报告中说明差异。这个顺序必须在验收准则开篇写明,否则后期争议无解。
二、映射方法:从“要求语句”到“验收条目”
映射的核心动作是把自然语言要求拆成四元组:要求来源、验收对象、判定指标、证据形式。例如需求规格中“订单查询在 500 并发下 P95 响应时间不超过 200ms”,映射后为:来源=需求规格第 4.2 节;对象=订单查询接口及其依赖的 PostgreSQL 实例与索引;指标=P95≤200ms、并发 500、数据量按生产基线;证据=压测报告、pg_stat_statements 采样、执行计划截图。再如企业内控标准“核心库每日全备、WAL 归档保留 30 天且可恢复至任意时间点”,映射后为:对象=备份策略与归档链路;指标=全备成功率 100%、归档延迟≤5 分钟、PITR 恢复验证通过;证据=备份日志、归档目录清单、恢复演练记录。
映射时要注意三个易错点。第一,指标必须带口径:可用性 99.9% 是按自然月还是按季度、是否剔除计划内维护窗口,必须写清。第二,对象必须落到 PostgreSQL 的具体对象:是实例、数据库、表、索引、复制槽、还是备份集,不能只写“数据库系统”。第三,证据必须可复现:命令、脚本、报告模板、采样时间窗都要在验收准则中固定,避免验收时临时定义。
三、映射表的落地形式与填写要点
映射关系最终应固化为一张《验收依据映射表》,作为验收准则的附件。表头建议包含:条目编号、要求来源(文件+章节)、要求原文摘要、验收对象(PostgreSQL 具体对象)、判定指标(含口径)、证据形式、责任方、判定结论。填写时,要求原文摘要应保留关键数值与限定条件,不要只写“性能良好”;验收对象要精确到可操作层级,例如“主库 pg_stat_replication 中 standby 的 replay_lag”;判定指标要写明单位、统计方式与时间窗;证据形式要写明具体命令或报告名称,例如“pg_stat_statements 按 calls 排序前 20 条”“pg_basebackup 日志与恢复后 pg_controldata 输出”。
对于无法直接量化的要求,例如“设计文档应说明高可用切换流程”,映射时应转化为可检查项:是否存在切换流程图、是否覆盖主库故障与网络分区两种场景、是否明确切换后应用连接串更新方式、是否有演练记录。这样把主观判断转为客观检查,减少验收争议。
四、常见映射缺陷与规避
第一类缺陷是“来源缺失”:验收条目只写指标不写来源,导致后期无法判断该指标是否必须满足。第二类是“对象模糊”:只写“数据库”不写实例或表,测试时无法定位。第三类是“口径漂移”:同一指标在需求规格与验收准则中统计方式不同,例如一个按平均值、一个按 P95。第四类是“证据不可复现”:只写“提供测试报告”,未规定工具、参数与数据量。规避方法是在映射表评审时,由需求方、DBA、运维、安全、项目管理五方共同确认,重点检查每条条目是否满足“来源可查、对象可指、指标可测、证据可复现”四项标准。
完成映射后,验收准则才具备可执行性。后续的验收测试设计、证据收集与判定,都应严格以映射表为索引,逐条闭环,避免遗漏或重复。