温馨提示×

centos oracle升级步骤是什么

小樊
41
2025-10-11 01:48:07
栏目: 云计算

CentOS环境下Oracle数据库升级步骤

一、升级前准备

  1. 备份数据
    升级前必须对数据库进行完整备份,推荐使用RMAN全量备份rman target /BACKUP DATABASE;)或Data Pump导出expdp system/password@db schemas=SCHEMA_NAME dumpfile=SCHEMA_NAME.dmp),确保数据安全。
  2. 检查系统兼容性
    • 确认CentOS版本符合Oracle新版本要求(如Oracle 19c需CentOS 7/8,Oracle 21c需CentOS 8+);
    • 检查硬件资源(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 
  4. 下载新版本Oracle软件
    从Oracle官方网站下载对应CentOS架构(x86_64)的新版本Oracle Database软件包(如oracle-database-19c-linux-x86-64.zip),并上传至服务器。
  5. 环境准备
    • 取消当前用户的ORACLE_HOMEORACLE_SID等环境变量设置(编辑~/.bash_profile~/.bashrc,注释相关行);
    • 创建Oracle用户及组(若未创建):
      groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle 
    • 配置Oracle环境变量(编辑/home/oracle/.bash_profile):
      export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 # 替换为新版本目录 export ORACLE_SID=orcl # 替换为现有SID export PATH=$ORACLE_HOME/bin:$PATH source /home/oracle/.bash_profile # 加载环境变量 
  6. 停止当前数据库服务
    • 关闭监听器:lsnrctl stop
    • 关闭数据库实例:
      sqlplus / as sysdba SQL> SHUTDOWN IMMEDIATE; exit 
  7. 备份配置文件
    备份listener.oratnsnames.orasqlnet.ora等配置文件(位于$ORACLE_HOME/network/admin),便于升级后恢复。

二、执行升级操作

  1. 安装新版本Oracle软件
    • 解压下载的Oracle软件包至目标目录(如/u01/app/oracle/product/19.0.0/dbhome_1);
    • 进入解压后的目录,运行安装脚本(图形界面或静默模式):
      cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller # 图形界面安装,按向导操作 
      或静默安装(需提前准备响应文件):
      ./runInstaller -silent -responseFile /path/to/response_file.rsp 
    • 安装完成后,运行opatch应用补丁(若有):
      cd $ORACLE_HOME/OPatch ./opatch apply /path/to/patch_file.zip 
  2. 升级数据库实例
    • 方式一:使用DBUA(图形化工具,推荐新手)
      运行dbua工具,选择“升级现有数据库”,跟随向导完成升级:
      cd $ORACLE_HOME/bin ./dbua 
    • 方式二:手动升级(命令行)
      执行升级脚本(需切换至sysdba用户):
      sqlplus / as sysdba SQL> STARTUP UPGRADE; # 以升级模式启动数据库 SQL> @?/rdbms/admin/catupgrd.sql # 执行升级脚本 SQL> @?/rdbms/admin/utlrp.sql # 编译无效对象 SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP; # 正常启动数据库 exit 

三、升级后验证与优化

  1. 验证升级结果
    • 检查Oracle版本:
      sqlplus / as sysdba SQL> SELECT * FROM v$version; exit 
    • 检查数据库组件状态:
      sqlplus / as sysdba SQL> SET linesize 500 pagesize 600 SQL> COL COMP_NAME FOR a30 SQL> SELECT COMP_ID, COMP_NAME, VERSION, STATUS FROM DBA_REGISTRY ORDER BY COMP_ID; exit 
    • 检查无效对象数量:
      sqlplus / as sysdba SQL> SELECT COUNT(*) FROM dba_objects WHERE status != 'VALID'; exit 
  2. 优化系统参数
    根据新版本要求调整内核参数(编辑/etc/sysctl.conf):
    fs.file-max = 6815744 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_max = 4194304 
    执行sysctl -p使参数生效。
  3. 清理旧版本文件
    删除旧版本Oracle软件目录(如/u01/app/oracle/product/11.2.0/dbhome_1),释放磁盘空间。

四、注意事项

  • 日志分析:升级过程中需监控$ORACLE_HOME/cfgtoollogs/dbua(DBUA日志)或$ORACLE_HOME/cfgtoollogs(手动升级日志)中的日志文件,排查错误;
  • 停机时间:升级过程需停机,建议在业务低峰期操作;
  • 回滚计划:若升级失败,可通过备份恢复至旧版本;
  • 官方文档:务必参考Oracle官方升级指南(如《Oracle Database升级脚本》),确保步骤符合版本要求。

0