Ubuntu下Oracle数据库升级详细步骤
升级前必须对当前数据库进行完整备份,确保数据安全。推荐使用**RMAN(Recovery Manager)**工具进行热备份(数据库处于运行状态):
-- 登录SQL*Plus
sqlplus / as sysdba
-- 开启归档模式(若未开启)
SQL> archive log current;
-- 使用RMAN备份数据库及归档日志
rman target /
RUN {
ALLOCATE CHANNEL c1 TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
RELEASE CHANNEL c1;
}
也可使用Oracle Data Pump导出关键数据(如用户模式):
expdp username/password@old_sid schemas=SCHEMA_NAME directory=DATA_PUMP_DIR dumpfile=schema_name.dmp logfile=expdp_schema_name.log
sudo apt update
sudo apt install alien libaio1 unixodbc unixodbc-dev build-essential
/etc/sysctl.conf):fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
生效配置:sudo sysctl -p
/etc/security/limits.conf):oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
.rpm或.zip格式);.rpm包,需转换为.deb格式(Ubuntu原生支持.deb):sudo alien -dv oracle-21c-database.rpm
.deb包:sudo dpkg --install oracle-21c-database.deb
编辑Oracle用户的~/.bash_profile文件,添加以下变量(以Oracle 21c为例):
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/21c/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
使配置生效:
source ~/.bash_profile
dbua
sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup upgrade;
$ORACLE_HOME/rdbms/admin目录):SQL> @catupgrd.sql
该脚本会自动执行以下关键步骤:
SQL> @utlrp.sql -- 重新编译无效对象
SQL> shutdown immediate;
SQL> startup;
sqlplus / as sysdba
SQL> SELECT * FROM v$version;
输出应显示新版本号(如“Oracle Database 21c Enterprise Edition Release 21.0.0.0.0”)。
/u01/app/oracle/product/19c);$ORACLE_HOME/cfgtoollogs/dbua),及时处理错误;通过以上步骤,可在Ubuntu系统上安全完成Oracle数据库的升级操作。