首页 >
问答 >
云计算 >
Ubuntu中Oracle版本如何升级
Ubuntu中Oracle版本如何升级
小樊
42
2025-11-25 01:49:48
Ubuntu下Oracle数据库升级实操指南
一 升级前准备与兼容性检查
明确目标版本与升级路径:若目标为Oracle 21c ,仅支持从19c/18c/12.2 直接升级;更早版本(如11.2 )必须先升级到12.2 ,再升级到21c 。多步升级时,每一步都要运行对应的预升级脚本。升级前检查数据库的COMPATIBLE 参数:升级到21c 要求源库COMPATIBLE至少为12.2.0 ,且21c的默认值为21.0.0 ;提高COMPATIBLE后将无法降级。查询示例:SELECT name, value FROM v$parameter WHERE name=‘compatible’;
备份与还原点:使用RMAN做全库+归档备份,并建议创建还原点 (保证可回退)。RMAN示例:run { allocate channel c1 type disk; backup as compressed backupset database plus archivelog; backup current controlfile; release channel c1; }
预升级检查与修复:在源库使用目标版本的preupgrade.jar 生成检查与修复脚本(preupgrade_fixups.sql、postupgrade_fixups.sql),并按报告执行修复(如开归档、设置FRA、收集统计信息等)。示例:java -jar $NEW_ORACLE_HOME/rdbms/admin/preupgrade.jar -dir /u01/preup
其他准备:安装目标版Oracle软件 到新ORACLE_HOME 、停掉应用与批处理作业、确保归档日志 与FRA 可用、检查空间与内核参数、准备回退方案。
二 升级路径与方式选择
就地升级(In-place):在同一服务器上保留现有数据文件,安装新版本软件后用DBUA 或手工脚本升级数据库。优点是停机时间相对可控;注意新软件与旧库并存时需管理好ORACLE_HOME 与PATH 。
迁移升级(Out-of-place):在新服务器安装新版本软件,通过**Data Pump(expdp/impdp)**迁移数据。适合跨平台/大版本跃迁或需要重建环境的场景;不受直接升级路径限制,但需额外导出导入窗口与容量规划。
自动化工具:Oracle提供AutoUpgrade 工具,支持“分析-修复-部署”一体化,能并行执行升级任务、生成报告并支持断点续跑,显著降低手工操作风险与耗时。
三 标准升级步骤清单
安装目标版软件:解压并运行新版本安装程序(如runInstaller ),安装到新目录(如**/u01/app/oracle/product/19.0.0/dbhome_1**),完成后用root.sh 执行root级脚本。
执行预升级脚本:在源库运行preupgrade_fixups.sql(CDB需使用catcon.pl并行执行),按输出修复问题(如开归档、设置FRA、字典统计、清理回收站等)。
关闭并启动到升级模式:SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP UPGRADE;(CDB需额外执行:alter pluggable database all open upgrade;)
执行升级:
手工并行升级:使用catctl.pl (或dbupgrade脚本)并行执行升级脚本,示例:$ORACLE_HOME/perl/bin/perl catctl.pl -n 4 -l $ORACLE_HOME/cfgtoollogs catupgrd.sql
图形化升级:运行DBUA ,按向导完成升级。
升级后处理:
运行catuppst.sql (非UPGRADE模式)完成剩余步骤,必要时自动应用PSU/BP;
运行utlrp.sql 重编译无效对象;
运行postupgrade_fixups.sql 完成升级后修复;
运行utlusts.sql 核对组件版本与升级耗时。
还原点与回退:如创建过还原点,可在验证无误后再决定是否移除;若使用AutoUpgrade,可在升级后按指引清理中间产物。
四 多步升级与回退要点
多步路径示例:从11.2 到21c 需先升级到12.2 (运行12.2的预升级脚本并完成升级),再从12.2 升级到21c (运行21c的预升级脚本并完成升级)。每一步都要满足对应版本的兼容性要求与脚本流程。
失败恢复与续跑:升级中断可使用catctl.pl -R (Resume)自动从失败阶段续跑,无需手工定位阶段;也可全量重跑。必要时先修复错误再重启升级。
回退策略:升级前创建还原点 是最稳妥的回退手段;若已提高COMPATIBLE 参数,则无法降级,需依赖还原点或重新迁移导入。
五 Ubuntu与19c/21c注意事项
软件安装形态:Oracle官方主要面向Linux x86-64 提供RPM 安装包;在Ubuntu 上常见做法是用alien 将RPM转换为DEB 后安装,或直接使用官方ZIP包解压运行runInstaller 。无论哪种方式,务必保证新ORACLE_HOME 与旧库分离,避免环境变量与脚本指向错误。
依赖与用户:安装依赖(如libaio1、unixODBC )、创建oracle/oinstall/dba 等用户与目录,并正确设置ORACLE_HOME、PATH、TNS_ADMIN 等环境变量。
升级工具与脚本:DBUA与并行升级工具(catctl.pl/dbupgrade)在Linux上可用;CDB场景注意使用catcon.pl 执行跨PDB的脚本,且部分脚本不能在UPGRADE模式下运行(如catuppst.sql)。
版本提示:若计划升级到21c ,务必确认源库满足直接升级条件(最低12.2 ),并提前规划COMPATIBLE 变更与回退方案。