数据库要升到 PG 19 或 MySQL 26.7 了,K3 账套先做这五项体检
✦
← 金蝶 K3 实战

数据库要升到 PG 19 或 MySQL 26.7 了,K3 账套先做这五项体检

楼主:超级管理员 · 2026-10-12 12:10 · 浏览 13

K3 数据库 升级
超级管理员 楼主

数据库要升到 PG 19 或 MySQL 26.7 了,K3 账套先做这五项体检

PostgreSQL 19 计划 10 月 29 日 GA,MySQL 26.7.0 也已发布。如果你的 K3 后端跑在这两者上,升级前建议先做一轮账套体检。

第一项:编码与排序规则

PG 19 把 standard_conforming_strings 强制开启,MySQL 26.7 也进入了新的版本体系。含中文的物料名称、客户名称、备注字段是最敏感的部分。做法是导出一份全表的字符集和排序规则清单,确认没有混杂。

第二项:存储过程与自定义函数

ERP 系统里通常积累了大量自定义函数和存储过程。PG 19 里 json_array() 空结果从 NULL 变成空数组,这类行为变更会直接影响函数返回值。逐个过一遍,凡是依赖返回 NULL 做判断的地方都要改。

第三项:锁与并发

PG 19 的 max_locks_per_transaction 从 64 改成 128。听起来是放宽,但如果你手动调过这个值,沿用旧数字反而只剩一半容量。月末结账时的大批量过账最容易触发。检查当前值,需要的话翻倍。

第四项:长事务与 vacuum

PG 19 加入了索引的并行 autovacuum 和选表评分机制,这是好消息。但升级前要先摸清当前的长事务分布——如果有跑几个小时不提交的批处理,再好的 autovacuum 也救不了。

第五项:备份可恢复性验证

这一项最容易被跳过。不要只确认备份任务成功,要真的恢复一次到临时实例并跑通查询。备份成功率 100% 但恢复失败的情况,在实际运维里并不罕见。

升级路径

先在测试环境起新版本实例,用新版本的导出工具导一份全量,恢复后跑一轮完整的月结流程。旧实例至少保留一个完整的会计期间。

一个容易被忽略的点

K3 的客户端和中间件版本对数据库的兼容性有要求。数据库升了但中间件没跟上,问题会比不升级更麻烦。先查兼容性矩阵。

数据库要升到 PG 19 或 MySQL 26.7 了,K3 账套先做这五项体检 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

褚鹏

备份可恢复性验证最容易被跳过,只确认任务成功不够,要真恢复一次跑通查询。另外中间件版本对数据库的兼容性也要一起查,光升数据库会出更多问题。

钱亦凡

第二项存储过程最容易被忽略,ERP 里自定义函数一堆,PG 19 的强制开关一开,字符串转义写法不合规的直接报错。建议升级前把存储过程全量导出做个静态扫描,比事后一条条调快得多。另外备份一定要先验证能恢复再动。

登录 后参与回复