Ubuntu中Oracle版本如何升级
导读:Ubuntu下Oracle数据库升级实操指南 一 升级前准备与兼容性检查 明确目标版本与升级路径:若目标为Oracle 21c,仅支持从19c/18c/12.2直接升级;更早版本(如11.2)必须先升级到12.2,再升级到21c。多步升级...
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变更与回退方案。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中Oracle版本如何升级
本文地址: https://pptw.com/jishu/755503.html
