DBAtlas · 数据库运维图谱

版本升级 / 补丁回退

症状

升级/打补丁后出现问题:性能回退、应用不兼容或数据库无法打开。

1. 先停下来:你有回退方案吗?

若在生产环境升级之前没有做完整备份 +(如有可能)存储快照,最安全的做法是向前修复。在大多数数据库中,回退意味着从备份还原。这一步本应在升级之前就规划好。

2. 对问题进行分类

是优化器计划回归(查询变慢)、应用/驱动不兼容,还是无法打开/损坏?解决路径会因此大不相同。

3. 各数据库的回退路径

Oracle:用 datapatch 回退补丁,或使用 Flashback Database(若已创建 guaranteed restore point)。PostgreSQL:pg_upgrade 之后的回退 = 旧二进制文件 + 旧数据目录的备份。MySQL:原地降级(DOWNGRADE)通常不受支持——请从备份还原。SQL Server:不支持降级——从升级前的备份还原。无论哪种情况:快照/备份都是你的保险。

4. 若是计划回归:无需回滚即可修复

通常不需要回滚整个版本;只是计划发生了变化。

Oracle

ALTER SYSTEM SET optimizer_features_enable='19.1.0';  -- pin to the old behavior
-- or lock in the good plan with a SQL Plan Baseline

PostgreSQL

ANALYZE;  -- fresh statistics first
-- if needed, temporarily: steer the plan with settings such as SET enable_nestloop=off;

5. 永久措施:下一次

先在预发布环境用真实负载测试升级,采用金丝雀/滚动升级,创建 guaranteed restore point / 快照,并记录回退流程。

在 DBAtlas 中打开 →