温馨提示×

oracle在centos上如何升级

小樊
46
2025-10-25 22:53:12
栏目: 云计算

Oracle在CentOS上的升级流程与注意事项

一、升级前准备

1. 兼容性检查

  • 操作系统版本:确认CentOS版本符合Oracle目标版本的最低要求(如Oracle 19c需CentOS 6.7及以上,Oracle 21c需CentOS 8及以上);若系统版本过旧,可通过安装Oracle提供的oraclelinux-release包模拟兼容环境(如将CentOS 8映射为Oracle Linux 8)。
  • 硬件要求:检查服务器CPU(建议多核)、内存(Oracle 19c建议至少4GB,21c建议8GB及以上)、存储(足够空间存放备份及升级文件)是否符合新版本要求。
  • 软件包依赖:安装Oracle要求的Linux系统包(如binutilscompat-libstdc++gccglibclibaiosysstat等),可通过rpm -q命令验证版本是否符合要求。

2. 备份数据

  • 使用RMAN工具执行完整数据库备份(包括数据文件、控制文件、归档日志),或通过expdp/impdp导出数据;同时备份$ORACLE_HOME目录、/etc/oratab文件、密码文件(orapwd生成的PWD<sid>.ora)及监听配置文件(listener.oratnsnames.ora)。

3. 环境配置

  • 用户与组:确保Oracle用户属于dbaoper组(如未创建oper组,可通过groupadd oper添加,并将Oracle用户加入usermod -aG oper oracle)。
  • 环境变量:编辑Oracle用户的~/.bash_profile文件,设置ORACLE_BASE(如/u01/app/oracle)、ORACLE_HOME(如/u01/app/oracle/product/19.0.0/dbhome_1)、ORACLE_SID(如orcl)、PATH(包含$ORACLE_HOME/bin)等变量,执行source ~/.bash_profile使配置生效。

二、具体升级步骤

1. 关闭现有Oracle服务

  • 使用sqlplussysdba身份登录数据库,执行SHUTDOWN IMMEDIATE关闭数据库实例;
  • 执行lsnrctl stop关闭监听服务;
  • 若安装了OEM(企业管理器),执行emctl stop dbconsole关闭OEM控制台。

2. 安装新版本Oracle软件

  • 解压Oracle目标版本软件包(如oracle_database_19c_linux_x86_64.zip)至ORACLE_HOME目录(如/u01/app/oracle/product/19.0.0/dbhome_1);
  • 运行runInstaller脚本,选择“升级现有数据库”选项,跟随向导配置ORACLE_HOME路径、组件选择(如选择“企业版”),完成软件安装;
  • 安装完成后,在root用户下执行$ORACLE_HOME/root.sh脚本(用于配置系统权限)。

3. 升级数据库实例

  • 自动升级(推荐):使用Database Upgrade Assistant(DBUA)工具,执行dbua命令(位于$ORACLE_HOME/bin目录),选择“Upgrade Oracle Database”选项,跟随向导选择源数据库(ORACLE_HOME)和目标数据库(新ORACLE_HOME),完成实例升级;
  • 手动升级:若需自定义升级流程,可执行sqlplus / as sysdba,输入STARTUP UPGRADE启动数据库至升级模式;执行@?/rdbms/admin/catupgrd.sql脚本(升级数据字典);升级完成后,执行SHUTDOWN IMMEDIATE关闭数据库,再执行STARTUP正常启动;最后执行@?/rdbms/admin/utlrp.sql编译无效的PL/SQL对象。

三、升级后验证与优化

1. 验证升级结果

  • 执行SELECT * FROM v$version;查看数据库版本,确认是否为目标版本;
  • 执行SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;检查所有组件状态(应为VALID);
  • 执行SELECT * FROM utl_recomp_errors;查看是否有编译错误(若有错误需逐一修复)。

2. 优化配置

  • 调整内存参数:根据新版本要求修改sga_targetpga_aggregate_target等参数(如Oracle 19c建议开启自动内存管理MEMORY_TARGET);
  • 更新兼容性参数:检查COMPATIBLE参数(如Oracle 19c默认值为19.0.0),确保其不低于升级前的版本且符合应用需求;
  • 清理旧文件:删除旧版本ORACLE_HOME目录(如/u01/app/oracle/product/11.2.0/dbhome_1),释放存储空间。

3. 监控与回滚

  • 监控性能:使用AWR(自动工作负载仓库)、ASH(活动会话历史)工具监控数据库性能,对比升级前后的响应时间、吞吐量等指标;
  • 回滚计划:若升级失败,可通过备份数据恢复至原版本(如使用RMAN恢复数据文件,重新启动数据库至升级前状态)。

四、关键注意事项

  • 内核参数调整:若升级至Oracle 19c及以上版本,需确保系统内核参数符合要求(如vm.hugetlb_shm_group设置为dba组ID,kernel.semshmmax等参数足够大)。
  • SELinux与防火墙:升级前关闭SELinux(setenforce 0)和防火墙(systemctl stop firewalld),避免端口冲突或权限问题;升级后可重新开启,但需配置相应规则允许Oracle服务通信。
  • 日志分析:升级过程中需监控alert.log(位于$ORACLE_BASE/diag/rdbms/<sid>/<sid>/trace/目录)和install.log(位于$ORACLE_HOME/cfgtoollogs/dbua目录)日志,及时处理错误(如ORA-错误代码)。

0