温馨提示×

Ubuntu中Oracle数据库升级方法

小樊
48
2025-10-02 00:50:20
栏目: 云计算

Ubuntu环境下Oracle数据库升级流程

一、升级前准备

1. 备份数据库

升级前必须对现有数据库进行完整备份,确保数据可恢复。常用工具及命令:

  • RMAN全量备份(含归档日志)
    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
    

2. 检查系统兼容性

  • 确认Ubuntu系统版本(如22.04 LTS)符合Oracle目标版本要求;
  • 核对硬件资源(内存、磁盘空间:Oracle安装目录需预留至少10GB,数据库文件需足够空间);
  • 下载Oracle官方升级脚本(如preupgrade.jar,用于预检查兼容性问题)。

3. 安装依赖项

Ubuntu需安装Oracle运行所需的库文件:

sudo apt update
sudo apt install alien libaio1 unixodbc unixodbc-dev libmotif-common libmotif4

4. 配置内核参数

编辑/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

5. 调整用户资源限制

编辑/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软件

1. 下载并转换安装包(若为RPM格式)

Oracle官网下载的Linux版本多为RPM格式,需转换为DEB格式(Ubuntu原生支持):

sudo alien -d oracle-database-19c-x86_64.rpm

2. 安装Oracle软件

使用dpkg安装转换后的DEB包:

sudo dpkg --install oracle-database-19c-x86_64.deb

3. 配置环境变量

编辑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

三、执行升级操作

1. 使用DBUA(图形化工具,推荐新手)

  • 启动DBUA:
    dbua
    
  • 按向导步骤操作:选择“升级现有数据库”→ 指定旧数据库SID → 确认预检查项(如兼容性问题)→ 开始升级。
  • 升级完成后,DBUA会自动重启数据库。

2. 手动升级(命令行方式)

  • SYSDBA身份登录SQL*Plus:
    sqlplus / as sysdba
    
  • 启动数据库至升级模式:
    SHUTDOWN IMMEDIATE;
    STARTUP UPGRADE;
    
  • 运行升级脚本(路径随版本变化,以19c为例):
    @?/rdbms/admin/catupgrd.sql
    @?/rdbms/admin/utlrp.sql  -- 编译无效对象
    
  • 重启数据库至正常模式:
    SHUTDOWN IMMEDIATE;
    STARTUP;
    

四、升级后验证

1. 检查版本信息

SELECT * FROM v$version;

输出应显示目标版本(如“Oracle Database 19c Enterprise Edition Release 19.0.0.0.0”)。

2. 验证数据完整性

  • 登录数据库,查询关键表数据是否与升级前一致;
  • 检查应用功能是否正常(如连接、查询、事务处理)。

3. 清理旧版本文件

  • 删除旧版本的$ORACLE_HOME目录(确认备份后);
  • 更新/etc/oratab文件,移除旧版本条目。

五、常见问题排查

  • 预检查失败:根据preupgrade.jar输出的日志修复问题(如缺失参数、权限不足);
  • 升级脚本报错:查阅Oracle官方文档对应版本的“升级脚本错误解决方法”;
  • 性能下降:升级后收集统计信息(exec dbms_stats.gather_schema_stats('SCHEMA_NAME');),优化SQL执行计划。

提示:升级前务必在测试环境验证流程,避免生产环境故障。建议参考Oracle官方升级指南(如《Oracle Database升级手册》)获取版本特异性要求。

0