1. 准备阶段:备份数据库,使用RMAN进行完整备份,包括控制文件、参数文件和数据文件。停止所有应用连接,检查当前数据库版本兼容性。下载目标版本的Oracle安装包和补丁。
2. 升级步骤:安装新版本Oracle软件,使用dbua工具启动升级向导,选择数据库,验证先决条件,执行升级。升级完成后,运行utlrp.sql修复无效对象,重启数据库。
3. 回退步骤:如果升级失败,恢复RMAN备份,启动到mount状态,恢复控制文件和数据文件,回滚参数文件到原版本,重启数据库验证。
升级前检查
执行utlu112i.sql脚本检查兼容性,确保所有组件支持升级,如Java池大小、字符集等。清理临时表空间,收集统计信息。
使用CATCTL进行并行升级
设置环境变量,运行catctl.pl -n 8 -l /path/log db1120.sql,其中-n指定并行进程数,监控日志文件实时检查进度。
回退实战案例
升级到19c失败,回退到12c:恢复到升级前备份点,使用flashback database如果启用;否则RMAN恢复,调整spfile参数如compatible=12.2.0。
补丁应用
升级后立即应用RU补丁,使用opatch apply,验证opatch lsinventory确认安装成功。
测试验证
升级后运行SQL性能测试,检查alert日志无错误,验证应用连接正常。
FAQ
Q: 升级失败如何快速回退?
A: 使用RMAN点时间恢复或flashback到升级前时间戳。
Q: 哪些参数需要调整?
A: compatible、java_pool_size、cluster_database等,根据版本变化。
Q: 多实例RAC升级顺序?
A: 先升级所有节点软件,再逐个数据库实例。
Q: 回退需要停机多久?
A: 取决于备份大小,通常几小时内完成。