温馨提示×

oracle升级在centos上如何操作

小樊
48
2025-10-02 18:08:50
栏目: 云计算

Oracle Database升级在CentOS上的操作指南

一、升级前准备

1. 备份数据

升级前必须对数据库进行完整备份(包括数据文件、控制文件、归档日志等),推荐使用RMAN进行全量备份:rman target / BACKUP DATABASE PLUS ARCHIVELOG;。同时备份配置文件(如listener.oratnsnames.oraspfile)和预升级脚本。

2. 检查系统兼容性

  • 确认CentOS版本符合Oracle新版本要求(如Oracle 23ai需Oracle Linux 8/9或CentOS Stream 8/9);
  • 检查硬件资源(CPU、内存、磁盘空间)是否满足新版本最低需求;
  • 确认新版本Oracle与现有应用程序、中间件的兼容性。

3. 安装必要依赖包

通过yum安装Oracle要求的依赖包,避免升级失败:
yum install -y gcc libaio-devel compat-libstdc++-33 elfutils-libelf-devel glibc-devel glibc-headers gcc-c++ libstdc++-devel libnsl

4. 下载新版本Oracle软件

从Oracle官方网站下载对应CentOS架构(x86_64)的新版本Oracle Database软件包(如19c、21c、23ai的RPM包或压缩包),并上传至CentOS服务器。

5. 配置Oracle用户和环境变量

  • 确认Oracle用户(oracle)和组(oinstalldba)已存在:id oracle
  • 编辑Oracle用户的.bash_profile文件(vi /home/oracle/.bash_profile),添加环境变量:
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/23ai/dbhome_1  # 新版本路径
    export ORACLE_SID=ORCLCDB
    export PATH=$ORACLE_HOME/bin:$PATH
    
  • 加载环境变量:source /home/oracle/.bash_profile

二、执行升级操作

1. 停止当前数据库服务

  • 关闭监听器:lsnrctl stop
  • 关闭数据库实例:sqlplus / as sysdbaSHUTDOWN IMMEDIATE;exit

2. 备份当前Oracle环境(可选但推荐)

备份现有ORACLE_HOME目录:cp -a /u01/app/oracle/product/19.3.0/dbhome_1 /u01/app/oracle/product/19.3.0/dbhome_1_backup(旧版本路径)。

3. 安装新版本Oracle软件

  • 解压下载的软件包至目标目录(如/u01/app/oracle/product/23ai/dbhome_1):
    unzip linux.x64_23ai_db_home.zip -d /u01/app/oracle/product/23ai/dbhome_1
  • 运行opatch应用最新补丁(如有):
    cd $ORACLE_HOME/OPatch./opatch apply /path/to/patch_file.zip

4. 执行数据库升级

  • 方法1:使用DBUA(图形化工具,推荐新手)
    运行dbua工具:cd $ORACLE_HOME/bin./dbua,按照向导选择“升级现有数据库”,指定旧版本ORACLE_HOME和新版本ORACLE_HOME,完成升级;
  • 方法2:使用命令行工具(手动升级)
    进入新版本BIN目录:cd $ORACLE_HOME/bin,运行升级脚本:
    ./dbupgrade -silent -upgradeDb -sourceHome /u01/app/oracle/product/19.3.0/dbhome_1 -targetHome /u01/app/oracle/product/23ai/dbhome_1 -sid ORCLCDB

5. 升级后检查

  • 检查升级日志(位于$ORACLE_BASE/cfgtoollogs/dbua$ORACLE_HOME/cfgtoollogs),确认无错误;
  • 登录数据库验证版本:sqlplus / as sysdbaSELECT * FROM v$version;
  • 检查无效对象:SELECT COUNT(*) FROM dba_objects WHERE status != 'VALID';(若有无效对象,可运行utlrp.sql重新编译:@?/rdbms/admin/utlrp.sql)。

三、升级后优化与调整

  • 优化初始化参数:根据新版本推荐调整内存参数(如SGA_TARGETPGA_AGGREGATE_TARGET),修改$ORACLE_HOME/config/scripts/init.ora或SPFILE;
  • 更新密码策略:若使用12c及以上版本,检查REMOTE_LOGIN_PASSWORDFILE设置为EXCLUSIVESHARED
  • 迁移非CDB至PDB:若升级前为非容器数据库(Non-CDB),可使用DBMS_PDB包或图形化工具转换为可插拔数据库(PDB);
  • 监控性能:升级后监控系统资源(CPU、内存、磁盘I/O)和数据库性能(AWR报告、ASH报告),调整参数以满足业务需求。

0