温馨提示×

linux下oracle怎么升级

小樊
38
2026-09-28 14:47:05
栏目: 云计算

在 Linux 下升级 Oracle 数据库,通常分为 小版本升级(Patch / PSU) 和 大版本升级(如 11g → 12c → 19c)。下面我按 常见场景 给你一个清晰、可操作的升级思路。


一、升级前准备(非常重要)

1. 确认环境

uname -a
cat /etc/os-release
sqlplus / as sysdba
SELECT * FROM v$version;

2. 备份(必做)

  • RMAN 全备
  • 导出重要用户(expdp)
  • 备份 ORACLE_HOME 和 pfile/spfile
  • 备份 /etc/oratab、/etc/oracle

3. 检查支持矩阵

  • Oracle 官方 Certification Matrix
  • 确认 Linux 版本是否被目标 Oracle 版本支持

二、小版本升级(PSU / RU / RUR)

适用于:
11.2.0.4 → 11.2.0.4 PSU
19.3 → 19.18

步骤

  1. 停止数据库和监听
lsnrctl stop
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
  1. 安装 OPatch
unzip p6880880*.zip -d $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch version
  1. 应用补丁
cd patch_dir
$ORACLE_HOME/OPatch/opatch apply
  1. 加载 SQL 变更
cd $ORACLE_HOME/sqlpatch
sqlplus / as sysdba
@catbundle.sql PSU apply
  1. 启动数据库
startup

三、大版本升级(如 11g → 19c)

方式一:DBUA(图形化,推荐新手)

  1. 安装新版本 Oracle Software(不建库)
  2. 设置环境变量
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
  1. 启动 DBUA
dbua

按向导完成升级


方式二:手动升级(生产常用)

1. 安装新 ORACLE_HOME

runInstaller

2. 预升级检查

$NEW_ORACLE_HOME/jdk/bin/java -jar \
$NEW_ORACLE_HOME/rdbms/admin/preupgrade.jar

按提示修复问题

3. 关闭旧库

shutdown immediate;

4. 用新 HOME 启动升级

export ORACLE_HOME=$NEW_ORACLE_HOME
sqlplus / as sysdba
STARTUP UPGRADE;

5. 执行升级

@?/rdbms/admin/catupgrd.sql

6. 重启并跑后脚本

SHUTDOWN IMMEDIATE;
STARTUP;
@?/rdbms/admin/utlrp.sql

四、升级后检查

SELECT COMP_NAME, STATUS FROM DBA_REGISTRY;
SELECT * FROM v$timezone_file;

检查监听、参数、账号、性能。


五、常见坑点

  • Linux 内核参数不够
  • /tmp 空间不足
  • 用户属主和权限错误
  • 没跑 preupgrade
  • 忽略无效对象

六、建议

  • 测试环境先跑一遍
  • 使用 GoldenGate / Data Guard 做回滚方案
  • 大版本升级优先用 19c(长期支持)

如果你能告诉我:

  • 当前 Oracle 版本
  • 目标版本
  • Linux 发行版(RHEL / CentOS / OL)

我可以给你 精确到命令的升级方案。

0 踩