一、更新Oracle配置前的准备工作
rman target / RMAN BACKUP DATABASE;),备份$ORACLE_HOME目录(包含Oracle软件文件)、$ORACLE_BASE/admin目录(包含数据库配置文件)及listener.ora、tnsnames.ora等网络配置文件,防止更新过程中数据丢失。.zip或.tar.gz格式),并上传至服务器安全目录(如/tmp)。二、停止Oracle相关服务
lsnrctl命令停止监听器,确保无客户端连接干扰更新过程:lsnrctl stop
sysdba身份登录SQL*Plus,执行SHUTDOWN IMMEDIATE命令关闭数据库实例:sudo -u oracle sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;
SQL> EXIT;
三、更新Oracle软件
/u01/app/oracle/product/19.0.0/dbhome_1_backup),便于后续回滚:cp -a /u01/app/oracle/product/19.0.0/dbhome_1 /u01/app/oracle/product/19.0.0/dbhome_1_backup
ORACLE_HOME目录(如/u01/app/oracle/product/19.3.0/dbhome_1):unzip /tmp/oracle_database_19c_software.zip -d /u01/app/oracle/product/19.3.0/dbhome_1
.bashrc文件(/home/oracle/.bashrc),修改ORACLE_HOME、PATH等变量指向新版本路径:export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
使更改生效:source /home/oracle/.bashrc
四、升级Oracle实例
sudo su - oracle
cd /u01/app/oracle/product/19.3.0/dbhome_1/dbua
./runInstaller
按照向导提示选择“升级现有数据库”,指定数据库实例路径(如/u01/app/oracle/oradata/orcl),完成升级流程。sqlplus / as sysdba
SQL> SELECT * FROM v$version;
SQL> EXIT;
五、更新Oracle配置文件
$ORACLE_HOME/network/admin/listener.ora文件,调整监听器参数(如端口号、IP地址、服务名)。例如,将监听端口从1521改为1522:LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
)
保存文件后,重新加载监听器配置(无需重启):lsnrctl reload
$ORACLE_HOME/network/admin/tnsnames.ora文件,更新数据库连接信息(如服务名、主机名、端口)。例如,修改orcl服务的端口为1522:ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
lsnrctl status命令检查监听器状态,确认新配置已加载;使用tnsping命令测试数据库连接:lsnrctl status
tnsping orcl
六、更新后检查与优化
alert.log(位于$ORACLE_BASE/diag/rdbms/orcl/orcl/trace/)和install.log(位于安装目录),确认更新过程中无错误。sga_target、pga_aggregate_target等内存参数,提升数据库性能。