温馨提示×

CentOS Oracle升级注意事项

小樊
38
2025-12-27 06:13:24
栏目: 云计算

CentOS 上 Oracle 升级注意事项

一 升级前检查与规划

  • 明确升级路径与兼容性:确认当前数据库是否支持直接升级到目标版本。以升级到 Oracle 21c 为例,仅支持从 19c/18c/12.2 直接升级;若源库为 12.1/11.2/10.2 等更早版本,需要先升级到中间版本(如 12.2)再升级到 21c。检查参数:SELECT name, value FROM v$parameter WHERE name=‘compatible’; 目标为 21c 时,源库 COMPATIBLE 至少需为 12.2.0。注意:升级过程中(含 RU/RUR)不要修改 COMPATIBLE;升级完成并充分验证后再提升 COMPATIBLE,一旦提升到新版本最大值将无法降级。如使用 AutoUpgrade,可在配置中启用 file_name_convert 生成数据文件副本,保留原库以便回退(需额外磁盘空间与时间)。同时评估回退策略:企业版可优先用 Flashback Database 回退,但 unplug-plugPDB 转换 不支持闪回,需依赖 RMAN 备份或其他回退方案。最后,完整回答备份策略的可用性、异地存放、可恢复性、演练与 RTO/RPO 等问题,并准备相应预案与演练计划。

二 系统与软件准备

  • 操作系统与依赖:确认 CentOS 版本与目标 Oracle 版本的兼容性与内核/资源要求;安装必要依赖(示例):yum install -y gcc libaio-devel compat-libstdc+±33 elfutils-libelf-devel glibc-devel glibc-headers gcc-c++ libstdc+±devel unixODBC unixODBC-devel ksh。确保 /u01 等目录有足够空间与正确权限(oracle:oinstall)。
  • 软件与补丁:从官方获取目标版本安装介质(ZIP/RPM),先备份旧 ORACLE_HOME,再解压至新目录;更新 OPatch 并应用最新 PSU/RU,避免已知缺陷影响升级。
  • 监听与网络:升级前停止监听 lsnrctl stop,确认 listener.ora/tnsnames.ora 配置正确;升级后在新 ORACLE_HOME 下复核网络配置与连通性。
  • 权限与环境:使用 oracle 用户与 oinstall/dba 组执行升级;核对环境变量 ORACLE_BASE/ORACLE_HOME/ORACLE_SID/PATH 指向新 Home。

三 备份与回退方案

  • 全量备份:使用 RMAN 执行数据库全备(含归档日志)与控制文件备份,确保可恢复到升级前一致性点:RMAN> BACKUP DATABASE PLUS ARCHIVELOG; RMAN> BACKUP CURRENT CONTROLFILE; 同时备份 $ORACLE_HOME、spfile、listener.ora、tnsnames.ora、/etc/oratab 等关键配置。
  • 闪回点回退(可选):若计划用闪回,升级前于 MOUNT 状态创建保证型还原点:CREATE RESTORE POINT upgrade GUARANTEE FLASHBACK DATABASE; 升级失败时 flashback database to restore point upgrade; 然后 alter database open resetlogs; 注意闪回日志占用空间与保留策略。
  • 回退策略优先级:企业版优先 Flashback;不支持的场景用 RMAN 恢复到备份;使用 AutoUpgrade 的 file_name_convert 副本保留原库;若升级中或升级后提升了 COMPATIBLE,将无法降级,需在提升前确认不再回退。

四 升级执行与关键操作

  • 停库与停监听:su - oracle → lsnrctl stop → sqlplus / as sysdba → SHUTDOWN IMMEDIATE;
  • 安装新软件与补丁:解压新版本至新 ORACLE_HOME,运行 runInstaller 或使用 RPM 安装;OPatch apply 最新补丁;
  • 升级方式:
    • 图形化 DBUA:从新 ORACLE_HOME 启动 dbua,按向导选择“升级现有数据库”,指定源/目标 ORACLE_HOME 与 SID/CDB;
    • 命令行/并行升级:STARTUP UPGRADE; 执行 catctl.pl 并行升级(示例:@?/rdbms/admin/catctl.pl -n 4 ?/rdbms/admin/catupgrd.sql);升级完成后正常启动并复核日志;
  • 升级后处理:运行 utlrp.sql 重编译无效对象;收集统计信息;复核组件与对象状态。

五 升级后验证与运维

  • 版本与组件:sqlplus / as sysdba → SELECT * FROM v$version; 检查 DBA_REGISTRY/DBA_REGISTRY_HISTORY 确认组件升级历史与状态;SELECT COUNT(*) FROM dba_objects WHERE status!=‘VALID’; 如存在无效对象执行 utlrp.sql。
  • 网络与连接:复核新 ORACLE_HOME/network/admin 下 listener.ora/tnsnames.ora 与服务注册;应用端回归测试连接与会话。
  • 参数与资源:根据新版本建议调整 SGA_TARGET/PGA_AGGREGATE_TARGET 与内存管理方式;复核告警日志(alert.log)与升级日志($ORACLE_BASE/cfgtoollogs/dbua 或 $ORACLE_HOME/cfgtoollogs)是否有错误/警告。
  • 性能与健康:收集 AWR/ASH 报告,关注 Top SQL、等待事件与 I/O;持续监控 CPU/内存/磁盘,验证业务功能与 SLA。

0