一、升级前准备工作
listener.ora、tnsnames.ora、spfile)及ORACLE_HOME目录进行完整备份(可使用RMAN或操作系统命令),确保升级失败时可快速恢复。uname -a、cat /etc/redhat-release等命令验证;下载新版本Oracle软件包(如19c/21c)及对应补丁(若需),从Oracle官方网站获取。gcc、glibc、libaio、libaio-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)。二、关闭数据库服务
lsnrctl stop命令停止Oracle监听器,防止升级过程中有新连接干扰。sqlplus / as sysdba),执行SHUTDOWN IMMEDIATE命令正常关闭数据库;若无法正常关闭,可使用SHUTDOWN ABORT(需谨慎,可能导致数据不一致)。三、安装新版本Oracle软件
linux.x64_193000_db_home.zip)解压到新ORACLE_HOME目录(unzip linux.x64_193000_db_home.zip -d /u01/app/oracle/product/19.3/product/)。./runInstaller,选择“安装数据库软件”→“单实例数据库安装”,跟随向导完成安装;若为静默模式,可使用./runInstaller -silent -responseFile /path/to/response_file.rsp。~/.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使变量生效。四、升级数据库实例
sqlplus / as sysdba登录,执行STARTUP UPGRADE命令,将数据库启动到升级模式(此时数据库处于MOUNT状态)。@?/rdbms/admin/utlu102i.sql(10g升级到19c为例,版本需对应)脚本,检查数据库兼容性(如无效对象、不支持的参数),若有错误需提前修复。@?/rdbms/admin/catupgrd.sql脚本,自动升级数据库字典(数据字典、系统表、视图等);升级过程需耐心等待,期间不要中断。@?/rdbms/admin/utlrp.sql脚本,重新编译所有无效的PL/SQL包、存储过程、触发器,确保其正常运行。ALTER DATABASE OPEN;命令,将数据库切换到正常运行状态。五、验证升级结果
SELECT * FROM v$version;命令,确认数据库版本已更新为目标版本(如Oracle 19c)。SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;命令,确保所有组件状态为VALID(有效)。SELECT SYSDATE FROM dual;)、备份恢复(RMAN BACKUP DATABASE;)、用户操作(CREATE USER test IDENTIFIED BY test;),验证数据库功能正常。六、后续操作
web.xml、datasource.properties),将连接字符串中的版本号更新为目标版本(如jdbc:oracle:thin:@localhost:1521/ORCLCDB)。rm -rf /u01/app/oracle/product/11.2.0/dbhome_1),释放磁盘空间。