温馨提示×

Linux系统中Oracle如何更新升级

小樊
37
2025-10-24 23:56:22
栏目: 云计算

一、升级前准备工作

  1. 备份数据:对数据库文件(数据文件、控制文件、重做日志文件)、配置文件(listener.oratnsnames.oraspfile)及ORACLE_HOME目录进行完整备份(可使用RMAN或操作系统命令),确保升级失败时可快速恢复。
  2. 环境检查:确认Linux系统满足新版本Oracle的最低要求(如内核版本、glibc版本、内存/CPU资源),并通过uname -acat /etc/redhat-release等命令验证;下载新版本Oracle软件包(如19c/21c)及对应补丁(若需),从Oracle官方网站获取。
  3. 软件准备:安装必要依赖包(如gccglibclibaiolibaio-devel),避免安装过程中报错;创建新的ORACLE_HOME目录(如/u01/app/oracle/product/19.0.0/dbhome_1),并设置正确权限(chown -R oracle:oinstall /u01/app/oracle; chmod -R 775 /u01/app/oracle)。

二、关闭数据库服务

  1. 停止监听器:使用lsnrctl stop命令停止Oracle监听器,防止升级过程中有新连接干扰。
  2. 关闭数据库实例:以SYSDBA身份登录数据库(sqlplus / as sysdba),执行SHUTDOWN IMMEDIATE命令正常关闭数据库;若无法正常关闭,可使用SHUTDOWN ABORT(需谨慎,可能导致数据不一致)。

三、安装新版本Oracle软件

  1. 解压软件包:将下载的新版本Oracle软件包(如linux.x64_193000_db_home.zip)解压到新ORACLE_HOME目录(unzip linux.x64_193000_db_home.zip -d /u01/app/oracle/product/19.3/product/)。
  2. 运行RunInstaller:以Oracle用户身份执行./runInstaller,选择“安装数据库软件”→“单实例数据库安装”,跟随向导完成安装;若为静默模式,可使用./runInstaller -silent -responseFile /path/to/response_file.rsp
  3. 配置环境变量:编辑~/.bash_profile文件,添加以下内容(根据实际路径调整):
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export ORACLE_SID=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    
    执行source ~/.bash_profile使变量生效。

四、升级数据库实例

  1. 启动数据库到升级模式:使用sqlplus / as sysdba登录,执行STARTUP UPGRADE命令,将数据库启动到升级模式(此时数据库处于MOUNT状态)。
  2. 运行预升级检查:执行@?/rdbms/admin/utlu102i.sql(10g升级到19c为例,版本需对应)脚本,检查数据库兼容性(如无效对象、不支持的参数),若有错误需提前修复。
  3. 执行升级脚本:运行@?/rdbms/admin/catupgrd.sql脚本,自动升级数据库字典(数据字典、系统表、视图等);升级过程需耐心等待,期间不要中断。
  4. 重新编译无效对象:升级完成后,执行@?/rdbms/admin/utlrp.sql脚本,重新编译所有无效的PL/SQL包、存储过程、触发器,确保其正常运行。
  5. 打开数据库:执行ALTER DATABASE OPEN;命令,将数据库切换到正常运行状态。

五、验证升级结果

  1. 检查版本信息:执行SELECT * FROM v$version;命令,确认数据库版本已更新为目标版本(如Oracle 19c)。
  2. 检查组件状态:执行SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;命令,确保所有组件状态为VALID(有效)。
  3. 功能测试:执行简单SQL语句(如SELECT SYSDATE FROM dual;)、备份恢复(RMAN BACKUP DATABASE;)、用户操作(CREATE USER test IDENTIFIED BY test;),验证数据库功能正常。

六、后续操作

  1. 更新应用程序连接字符串:修改应用程序配置文件(如web.xmldatasource.properties),将连接字符串中的版本号更新为目标版本(如jdbc:oracle:thin:@localhost:1521/ORCLCDB)。
  2. 清理旧文件:删除旧版本ORACLE_HOME目录(如rm -rf /u01/app/oracle/product/11.2.0/dbhome_1),释放磁盘空间。
  3. 监控性能:使用Oracle Enterprise Manager(OEM)或第三方监控工具(如Zabbix),监控数据库性能(CPU、内存、I/O),确保升级后运行稳定。

0