Ubuntu环境下Oracle数据库升级升级指南
升级前必须对数据库进行全量备份,确保数据安全。推荐使用RMAN工具,命令如下:
rman target / run {
allocate channel c1 type disk;
backup database plus archivelog; # 备份数据库及归档日志
release channel c1;
}
同时备份关键配置文件(如/etc/oratab、$ORACLE_HOME/network/admin/tnsnames.ora、$ORACLE_HOME/dbs/init<SID>.ora)。
/etc/sysctl.conf,确保以下参数满足新版本Oracle要求(以12c及以上为例):fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
执行sysctl -p使参数生效。/etc/security/limits.conf,添加Oracle用户(如oracle)的限制:oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
sudo ufw disable
sudo setenforce 0
从Oracle官方网站下载适用于Ubuntu的新版本Oracle Database软件包(通常为RPM或DEB格式)。若下载的是RPM包,需转换为DEB格式(Ubuntu原生支持DEB):
sudo alien -dv oracle-package.rpm # -d表示生成DEB包,-v显示详细过程
安装Oracle运行所需的依赖库,避免安装过程中报错:
sudo apt update
sudo apt install alien libaio1 unixodbc libc6:i386 libstdc++6:i386 libaio-dev -y
/u01/app/oracle/product/19c/dbhome_1),并设置权限:sudo mkdir -p /u01/app/oracle/product/19c/dbhome_1
sudo chown -R oracle:oinstall /u01/app/oracle
sudo chmod -R 775 /u01/app/oracle
~/.bash_profile):export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
export ORACLE_SID=orcl # 替换为你的数据库SID
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG='AMERICAN_AMERICA.UTF8'
执行source ~/.bash_profile使配置生效。以SYSDBA身份登录,关闭数据库(确保无活动会话):
sqlplus / as sysdba
SQL> shutdown immediate;
SQL> exit;
dpkg命令静默安装转换后的DEB包,避免图形界面依赖:sudo dpkg -i oracle-19c-database-home_19.0.0.0.0-1_amd64.deb
./runInstaller),按照向导完成软件安装(需手动指定安装目录和环境变量)。dbua
按照向导选择“升级现有数据库”,指定数据库SID和数据文件位置,点击“开始升级”即可。sqlplus / as sysdba
SQL> @?/rdbms/admin/catalog.sql # 升级数据字典
SQL> @?/rdbms/admin/catproc.sql # 升级PL/SQL包
SQL> @?/rdbms/admin/utlrp.sql # 重新编译无效对象
SQL> shutdown immediate;
SQL> startup; # 启动数据库
重启数据库后,检查版本信息确认升级成功:
sqlplus / as sysdba
SQL> select * from v$version;
SQL> exit;
输出应显示新版本的Oracle Database版本号(如“Oracle Database 19c Enterprise Edition Release 19.0.0.0.0”)。
若升级过程中未自动迁移数据,可使用expdp(导出)和impdp(导入)工具迁移数据:
# 导出原数据库数据
expdp username/password@原数据库 schemas=模式名 dumpfile=expdp.dmp
# 导入到新数据库
impdp username/password@新数据库 schemas=模式名 dumpfile=expdp.dmp
修改应用程序配置文件中的数据库连接字符串,确保指向新版本的数据库(如修改JDBC URL、Oracle客户端版本)。
$ORACLE_HOME目录,需确认备份无误后操作)。升级后监控系统资源使用情况(如CPU、内存、磁盘I/O),调整SGA_TARGET、PGA_AGGREGATE_TARGET等参数优化性能。
sudo apt remove 冲突包名)或调整依赖关系。