rman target / → BACKUP DATABASE;)或Data Pump导出(expdp system/password@db schemas=SCHEMA_NAME dumpfile=SCHEMA_NAME.dmp),确保数据安全。yum安装Oracle要求的依赖包,避免升级失败:yum install -y gcc libaio-devel compat-libstdc++-33 elfutils-libelf-devel glibc-devel glibc-headers gcc-c++ libstdc++-devel
oracle-database-19c-linux-x86-64.zip),并上传至服务器。ORACLE_HOME、ORACLE_SID等环境变量设置(编辑~/.bash_profile或~/.bashrc,注释相关行);groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd 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 # 加载环境变量
lsnrctl stop;sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
exit
listener.ora、tnsnames.ora、sqlnet.ora等配置文件(位于$ORACLE_HOME/network/admin),便于升级后恢复。/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
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
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
/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使参数生效。/u01/app/oracle/product/11.2.0/dbhome_1),释放磁盘空间。$ORACLE_HOME/cfgtoollogs/dbua(DBUA日志)或$ORACLE_HOME/cfgtoollogs(手动升级日志)中的日志文件,排查错误;