温馨提示×

Ubuntu Oracle数据库更新升级

小樊
41
2025-11-11 05:39:26
栏目: 云计算

Ubuntu环境下Oracle数据库升级升级指南

一、升级前准备

1. 备份数据库

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

2. 检查系统要求

  • 内核参数调整:修改/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
    
  • 关闭防火墙与SELinux:临时禁用防火墙和SELinux(生产环境需谨慎评估风险):
    sudo ufw disable
    sudo setenforce 0
    

3. 下载新版本软件

从Oracle官方网站下载适用于Ubuntu的新版本Oracle Database软件包(通常为RPM或DEB格式)。若下载的是RPM包,需转换为DEB格式(Ubuntu原生支持DEB):

sudo alien -dv oracle-package.rpm  # -d表示生成DEB包,-v显示详细过程

4. 安装依赖项

安装Oracle运行所需的依赖库,避免安装过程中报错:

sudo apt update
sudo apt install alien libaio1 unixodbc libc6:i386 libstdc++6:i386 libaio-dev -y

5. 创建Oracle目录并配置环境变量

  • 创建Oracle软件和数据库目录(如/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
    
  • 配置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使配置生效。

二、执行升级操作

1. 停止数据库服务

以SYSDBA身份登录,关闭数据库(确保无活动会话):

sqlplus / as sysdba
SQL> shutdown immediate;
SQL> exit;

2. 安装新版本Oracle软件

  • 静默安装(推荐):使用dpkg命令静默安装转换后的DEB包,避免图形界面依赖:
    sudo dpkg -i oracle-19c-database-home_19.0.0.0.0-1_amd64.deb
    
  • 图形界面安装:运行安装程序(如./runInstaller),按照向导完成软件安装(需手动指定安装目录和环境变量)。

3. 执行数据库升级

  • 使用DBUA(Database Upgrade Assistant,推荐)
    DBUA是Oracle提供的图形化升级工具,可自动处理升级脚本和兼容性检查。启动命令:
    dbua
    
    按照向导选择“升级现有数据库”,指定数据库SID和数据文件位置,点击“开始升级”即可。
  • 手动升级
    若选择手动升级,需登录数据库并运行升级脚本(以11g升级到19c为例):
    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;  # 启动数据库
    

4. 验证升级结果

重启数据库后,检查版本信息确认升级成功:

sqlplus / as sysdba
SQL> select * from v$version;
SQL> exit;

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

三、升级后操作

1. 数据迁移(跨版本升级需执行)

若升级过程中未自动迁移数据,可使用expdp(导出)和impdp(导入)工具迁移数据:

# 导出原数据库数据
expdp username/password@原数据库 schemas=模式名 dumpfile=expdp.dmp

# 导入到新数据库
impdp username/password@新数据库 schemas=模式名 dumpfile=expdp.dmp

2. 更新应用程序连接

修改应用程序配置文件中的数据库连接字符串,确保指向新版本的数据库(如修改JDBC URL、Oracle客户端版本)。

3. 清理与测试

  • 删除旧版本残留文件(如旧版本的$ORACLE_HOME目录,需确认备份无误后操作)。
  • 测试应用程序功能(如登录、查询、事务处理),确保升级后业务正常运行。

4. 监控系统性能

升级后监控系统资源使用情况(如CPU、内存、磁盘I/O),调整SGA_TARGETPGA_AGGREGATE_TARGET等参数优化性能。

四、注意事项

  • 测试环境验证:务必在测试环境中完成升级流程,验证兼容性和业务逻辑,避免生产环境故障。
  • 依赖冲突处理:若安装过程中出现依赖冲突,需手动卸载冲突的包(如sudo apt remove 冲突包名)或调整依赖关系。
  • 官方文档参考:不同版本的Oracle Database升级步骤可能存在差异,需参考Oracle官方升级指南(如《Oracle Database升级脚本》)获取版本特异性要求。

0