尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Oracle 19c数据库升级PSU版本及Patch安装操作指南

Oracle 19c数据库升级PSU版本及Patch安装操作指南
📅 发布时间:2026/6/20 5:16:08

Oracle 19c数据库升级PSU版本及Patch安装操作指南

前言

本文适用于Oracle 19c RAC(Real Application Clusters)环境,详细记录了从低版本升级至19.9.0版本的完整流程,以及针对大表分区操作报错(ORA-600:[kkpapDIPObjNum1])的临时补丁Patch 31667096安装步骤。操作过程需在两个节点依次执行,核心前提为OPatch版本需≥12.2.0.1.19,全程需严格区分grid、oracle、root用户权限,避免权限不足导致操作失败。

一、Oracle 19c升级至19.9版本

1.1 前提条件:OPatch工具升级

升级19.9版本前,需先确保grid和oracle用户的OPatch版本≥12.2.0.1.19,以下是OPatch升级步骤:

操作步骤:

  1. 上传OPatch安装包p6880880_190000_Linux-x86-64.zip至所有节点的/tmp目录。
  2. 分别以grid和oracle用户登录节点1,解压安装包至各自的$ORACLE_HOME目录:
    # grid用户解压
    [grid@tbase1 tmp]$ unzip -q -o p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME# oracle用户解压
    [oracle@tbase1 tmp]$ unzip -q -o p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
    
  3. 验证OPatch版本(两个用户均需执行):
    # grid用户验证
    [grid@tbase1 ~]$ $ORACLE_HOME/OPatch/opatch version
    # 预期输出:OPatch Version: 12.2.0.1.40(需≥12.2.0.1.19)
    # OPatch succeeded.# oracle用户验证
    [oracle@tbase1 ~]$ $ORACLE_HOME/OPatch/opatch version
    # 预期输出:OPatch Version: 12.2.0.1.40
    # OPatch succeeded.
    
  4. 节点2重复上述步骤,确保两个节点的grid和oracle用户OPatch版本均满足要求。

1.2 补丁一致性检查(升级前状态确认)

在应用升级补丁前,需检查当前grid和oracle用户的Oracle Home已安装补丁状态,留存基线信息:

# grid用户执行(节点1、2均需执行)
[grid@tbase1 OPatch]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME# oracle用户执行(节点1、2均需执行)
[oracle@tbase1 OPatch]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

注意:保存执行结果,便于后续对比补丁是否成功应用。

1.3 升级补丁上传与解压

本次升级使用补丁包p31750108_190000_Linux-x86-64.zip,操作如下:

操作步骤:

  1. 以root用户在节点1创建补丁目录并授权:
    [root@tbase1 /]# mkdir /opatch
    [root@tbase1 /]# chown -R grid:oinstall /opatch
    
  2. 上传补丁包p31750108_190000_Linux-x86-64.zip至/opatch目录。
  3. 以grid用户在节点1解压补丁:
    [grid@tbase1 opatch]$ unzip -q p31750108_190000_Linux-x86-64.zip -d /opatch
    
  4. 节点2重复步骤1-3(需先在节点2创建/opatch目录并授权,再上传解压补丁包):
    [grid@tbase2 opatch]$ unzip -q p31750108_190000_Linux-x86-64.zip -d /opatch
    

1.4 补丁冲突检查

需分别以grid和oracle用户检查补丁与现有环境的冲突,避免升级失败:

1.4.1 grid用户冲突检查(节点1、2均需执行)

# 检查子补丁冲突
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /opatch/31750108/31771877
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /opatch/31750108/31772784
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /opatch/31750108/31773437
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /opatch/31750108/31780966# 检查主补丁冲突(注意:此命令可能报错,无需处理)
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /opatch/31750108/

1.4.2 oracle用户冲突检查(节点1、2均需执行)

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /opatch/31750108/31771877
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /opatch/31750108/31772784

1.4.3 常见报错处理

  • 报错现象:执行冲突检查命令时报错。
  • 原因分析:命令格式输入错误(如复制粘贴导致的隐藏字符)。
  • 解决方案:手动输入命令,避免复制粘贴。
  • 特殊说明:执行-phBaseDir /opatch/31750108/时可能报错“此命令不支持System Patch”,根据Oracle官方文档(Doc ID 2634165.1),该报错无需处理,直接跳过即可。

1.5 一次性补丁冲突检测(预验证)

以root用户在节点1执行预验证,确认补丁可正常应用:

[root@tbase1 opatch]# /u01/app/19.0.0/grid/OPatch/opatchauto apply /opatch/31750108 -analyze

注意:若预验证通过,再执行后续安装操作;若提示冲突,需先解决冲突再继续。

1.6 自动补丁安装(RAC节点依次执行)

RAC环境不建议两个节点同时安装,需先完成节点1安装,再执行节点2。安装过程中需关闭数据库和监听器,避免告警。

1.6.1 节点1安装步骤

  1. 以grid用户关闭数据库和监听器:
    [grid@tbase1:/home/oracle]$ srvctl stop database -d jdya1
    [grid@tbase1:/home/grid]$ lsnrctl stop
    
  2. 以root用户配置环境变量并执行安装:
    [root@tbase1 opatch]# export PATH=$PATH:/u01/app/19.0.0/grid/OPatch
    [root@tbase1 opatch]# opatchauto apply /opatch/31750108
    
  3. 等待安装完成(约30分钟-1小时,需根据服务器性能调整),确保无报错。

1.6.2 节点2安装步骤

  1. 以grid用户关闭数据库和监听器:
    [grid@tbase2:/home/oracle]$ srvctl stop database -d jdya1
    [grid@tbase2:/home/grid]$ lsnrctl stop
    
  2. 以root用户配置环境变量并执行安装:
    [root@tbase2 /]# export PATH=$PATH:/u01/app/19.0.0/grid/OPatch
    [root@tbase2 /]# opatchauto apply /opatch/31750108
    

1.6.3 节点2常见报错及解决方案

  • 报错现象:
    Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [ROLLING PATCH]. The cluster active patch level is [724960844].
    CRS-1159: The cluster cannot be set to rolling patch mode because Oracle Clusterware is not active on at least one remote node.
    CRS-4000: Command Start failed, or completed with errors.
    OPATCHAUTO-68061: The orchestration engine failed.
    opatchauto failed with error code 42
    
  • 原因分析:滚动模式安装GI补丁时,至少一个远程节点的GI未启动。
  • 解决方案:
    1. 启动节点1的GI软件:
      [root@tbase1 /]# /u01/app/19.0.0/grid/bin/crsctl start crs
      
    2. 若启动GI时报错“CRS-6706: Oracle Clusterware Release patch level 不匹配”:
      # 以root用户执行以下命令解锁并修复补丁级别
      cd /u01/app/19.0.0/grid/crs/install
      ./rootcrs.sh -unlockcd /u01/app/19.0.0/grid/bin
      ./clscfg -localpatch
      ./clscfg -patchcd /u01/app/19.0.0/grid/crs/install
      ./rootcrs.sh -lock# 重新启动GI
      /u01/app/19.0.0/grid/bin/crsctl start crs
      
    3. 若节点1启动数据库时报错“PRCD-1027: Failed to retrieve database jdya1”:
      # 重启集群解决通信问题
      [root@tbase1 /]# /u01/app/19.0.0/grid/bin/crsctl stop crs
      [root@tbase1 /]# /u01/app/19.0.0/grid/bin/crsctl start crs
      
    4. 重新在节点2执行opatchauto apply命令。

1.7 升级验证

  1. 以grid用户检查已安装补丁:
    [grid@tbase1:/home/grid]$ opatch lspatches
    
  2. 验证数据库版本:
    [oracle@tbase1:/home/oracle]$ sqlplus -version
    # 预期输出:Oracle Database 19 Release 19.9.0.0.201020DBRU
    

二、安装临时补丁Patch 31667096

2.1 补丁安装前提

2.1.1 版本确认

  • 数据库版本:Oracle Database 19.9.0.0.201020DBRU(已通过上文升级完成)。
  • PSU版本:31771877(升级后默认包含)。
  • OPatch版本:≥12.2.0.1.19(已在1.1步骤中升级)。

2.1.2 环境变量配置

  1. 确认ORACLE_HOME已配置:
    [oracle@tbase1 ~]$ echo $ORACLE_HOME
    # 预期输出:/u01/app/oracle/product/19.0.0/dbhome_1(根据实际环境调整)
    
  2. 确保make、ar、ld、nm命令路径已加入环境变量(默认路径为/usr/bin):
    [oracle@tbase1 ~]$ export PATH=$PATH:/usr/bin
    # 永久生效可添加至~/.bash_profile
    

2.2 补丁解压

  1. 上传补丁包p31667096_190000_Linux-x86-64.zip至两个节点的/opatch目录。
  2. 以oracle用户解压补丁:
    [oracle@tbase1 opatch]$ unzip -q p31667096_190000_Linux-x86-64.zip -d /opatch
    [oracle@tbase2 opatch]$ unzip -q p31667096_190000_Linux-x86-64.zip -d /opatch
    

2.3 补丁冲突检查

以oracle用户在两个节点分别执行冲突检查:

[oracle@tbase1 ~]$ cd /opatch/31667096
[oracle@tbase1 31667096]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

注意:若提示冲突,需先卸载冲突补丁或联系Oracle技术支持。

2.4 补丁应用(节点1→节点2)

操作步骤:

  1. 以oracle用户登录节点1,关闭数据库:
    [oracle@tbase1 31667096]$ sqlplus / as sysdba
    SQL> shutdown immediate;
    SQL> exit;
    
  2. 应用补丁:
    [oracle@tbase1 31667096]$ $ORACLE_HOME/OPatch/opatch apply
    # 执行过程中按提示输入"y"确认
    
  3. 启动数据库:
    [oracle@tbase1 31667096]$ sqlplus / as sysdba
    SQL> startup;
    SQL> exit;
    
  4. 节点2重复步骤1-3(需先关闭节点2的数据库,再应用补丁)。

2.5 补丁安装验证

以oracle用户在两个节点执行以下命令,确认补丁已成功安装:

[oracle@tbase1 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory
# 预期输出中包含"31667096"补丁记录

三、总结

本文详细梳理了Oracle 19c RAC环境升级至19.9版本的完整流程,包括OPatch工具升级、补丁冲突检查、滚动安装及报错处理,同时覆盖了临时补丁Patch 31667096的安装步骤。操作核心在于严格区分用户权限、按节点依次执行、提前验证环境依赖,避免因并行操作或权限不足导致升级失败。升级完成后需通过opatch lspatches和sqlplus -version验证结果,确保数据库版本和补丁状态符合预期。若在操作过程中遇到其他报错,可参考Oracle官方文档或联系技术支持进一步排查。

相关新闻

  • 为什么在anacnda prompt里面运行了激活虚拟环境的命令,却还是没有切换成虚拟环境?
  • 在线调试+JMeter联动(以万维易源接口为例)
  • JMeter调用中国天气网接口查看天气预报

最新新闻

  • 黄金铂金白银回收门店整理,各区均有分店联系方式 - 三大殿
  • 盘锦市闲置黄金变现多少钱?本地5家回收门店最新报价参考 - 千叶啊
  • CurseBreaker未来路线图:插件管理器的发展方向与规划
  • 2026安徽省铜陵市电大中专会计二建报考前置学历最新发布 - cc江江
  • 承德市黄金回收实体店怎么选?这份清单帮你货比三家 - 开始就结束
  • 旧书店

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号