Ubuntu环境下Oracle数据库升级流程
升级前必须对现有数据库进行完整备份,确保数据可恢复。常用工具及命令:
rman target /
RUN {
ALLOCATE CHANNEL c1 TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
RELEASE CHANNEL c1;
}
expdp username/password@old_sid schemas=SCHEMA_NAME directory=DATA_PUMP_DIR dumpfile=SCHEMA_NAME.dmp logfile=expdp_SCHEMA_NAME.log
preupgrade.jar
,用于预检查兼容性问题)。Ubuntu需安装Oracle运行所需的库文件:
sudo apt update
sudo apt install alien libaio1 unixodbc unixodbc-dev libmotif-common libmotif4
编辑/etc/sysctl.conf
,添加或修改以下参数(满足Oracle内存、进程限制):
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用户(如oracle
)添加限制:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
Oracle官网下载的Linux版本多为RPM格式,需转换为DEB格式(Ubuntu原生支持):
sudo alien -d oracle-database-19c-x86_64.rpm
使用dpkg
安装转换后的DEB包:
sudo dpkg --install oracle-database-19c-x86_64.deb
编辑oracle
用户的~/.bash_profile
,添加以下内容(根据实际路径调整):
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/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
SYSDBA
身份登录SQL*Plus:sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
@?/rdbms/admin/catupgrd.sql
@?/rdbms/admin/utlrp.sql -- 编译无效对象
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT * FROM v$version;
输出应显示目标版本(如“Oracle Database 19c Enterprise Edition Release 19.0.0.0.0”)。
$ORACLE_HOME
目录(确认备份后);/etc/oratab
文件,移除旧版本条目。preupgrade.jar
输出的日志修复问题(如缺失参数、权限不足);exec dbms_stats.gather_schema_stats('SCHEMA_NAME');
),优化SQL执行计划。提示:升级前务必在测试环境验证流程,避免生产环境故障。建议参考Oracle官方升级指南(如《Oracle Database升级手册》)获取版本特异性要求。