温馨提示×

Ubuntu下Oracle数据库如何升级

小樊
42
2025-10-12 09:29:38
栏目: 云计算

Ubuntu下Oracle数据库升级详细步骤

一、升级前准备

1. 备份数据库

升级前必须对当前数据库进行完整备份,确保数据安全。推荐使用**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

2. 检查系统兼容性

  • 确认Ubuntu系统版本满足新版本Oracle的要求(如Ubuntu 22.04 LTS支持Oracle 21c及以上);
  • 安装必要依赖项:
    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
    

3. 下载并安装新版本Oracle软件

  • 从Oracle官方网站下载对应Ubuntu架构(如x86_64)的新版本Oracle Database软件包(如.rpm.zip格式);
  • 若下载的是.rpm包,需转换为.deb格式(Ubuntu原生支持.deb):
    sudo alien -dv oracle-21c-database.rpm
    
  • 安装转换后的.deb包:
    sudo dpkg --install oracle-21c-database.deb
    

4. 配置环境变量

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

二、执行升级

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

  • 启动DBUA:
    dbua
    
  • 按照向导步骤操作:
    1. 选择“升级现有数据库”;
    2. 指定数据库SID和ORACLE_HOME路径;
    3. DBUA会自动执行预检查(如兼容性、空间充足性),修复部分配置问题;
    4. 确认升级选项后,开始升级过程(期间会重启数据库)。

2. 手动升级(命令行方式,适合高级用户)

  • 启动数据库到升级模式:
    sqlplus / as sysdba
    SQL> shutdown immediate;
    SQL> startup upgrade;
    
  • 运行升级脚本(位于$ORACLE_HOME/rdbms/admin目录):
    SQL> @catupgrd.sql
    
    该脚本会自动执行以下关键步骤:
    • 升级数据字典;
    • 迁移无效对象;
    • 更新系统表结构。
  • 升级完成后,清理临时文件并重启数据库:
    SQL> @utlrp.sql  -- 重新编译无效对象
    SQL> shutdown immediate;
    SQL> startup;
    

三、升级后验证

1. 检查数据库版本

sqlplus / as sysdba
SQL> SELECT * FROM v$version;

输出应显示新版本号(如“Oracle Database 21c Enterprise Edition Release 21.0.0.0.0”)。

2. 验证数据完整性

  • 检查关键表数据是否完整;
  • 运行应用程序基本功能测试,确保业务不受影响。

3. 清理旧版本文件

  • 删除旧版本的Oracle软件目录(如/u01/app/oracle/product/19c);
  • 清理备份文件(如不再需要的RMAN备份集)。

四、注意事项

  • 测试环境优先:务必先在测试环境完成升级流程,验证兼容性和业务功能;
  • 监控升级过程:升级期间记录日志(位于$ORACLE_HOME/cfgtoollogs/dbua),及时处理错误;
  • 回滚方案:若升级失败,可通过备份恢复旧版本数据库;
  • 参考官方文档:Oracle官方提供了详细的版本升级指南(如《Oracle Database升级脚本》),需结合具体版本调整步骤。

通过以上步骤,可在Ubuntu系统上安全完成Oracle数据库的升级操作。

0