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

news/2025/11/30 16:52:36/文章来源:https://www.cnblogs.com/liuziyi1/p/19289647

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 lspatchessqlplus -version验证结果,确保数据库版本和补丁状态符合预期。若在操作过程中遇到其他报错,可参考Oracle官方文档或联系技术支持进一步排查。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/982027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[豪の算法奇妙冒险] 代码随想录算法训练营第九天 | 151-翻转字符串里的单词、Carl55-右旋转字符串、28-实现strStr()、459-重复的子字符串

LeetCode151 翻转字符串里的单词、Carl55 右旋转字符串、LeetCode28 实现strStr()、LeetCode459 重复的子字符串代码随想录算法训练营第九天 | 151-翻转字符串里的单词、Carl55-右旋转字符串、28-实现strStr()、459-重…

JMeter查询快递(以快递100为例)

1. 准备参数:获取快递100的API Key和快递单号(如顺丰、圆通等)。 2. 新建线程组:测试计划→添加→线程组,命名“快递查询线程组”。 3. 添加HTTP请求:线程组→添加→取样器→HTTP请求,命名“查询快递轨迹”。协…

在线调试+JMeter联动(以万维易源接口为例)

1. 在线调试接口:登录万维易源平台开通天气接口,进入接口详情页找到接口地址 https://route.showapi.com/9-2 ,在线调试页输入城市(如烟台)和个人 appKey ,点击调试,确认接口能正常返回天气数据。 2. JMeter配置…

征程 6 | QAT 新版 qconfig 量化模板使用教程

1.前言 随着 征程 6 芯片家族的阵容不断壮大,算法工具链在量化精度方向的优化也在持续深入,具体体现在两个方面:征程 6P 与 征程 6H 工具链已陆续进入发布和试用阶段,在此背景下,QAT(量化感知训练)需要以更高效…

计算机毕设java幼儿园校车管理高效的系统 基于Java的幼儿园校车信息管理系统设计与实现 Java环境下幼儿园校车运营管理平台开发

计算机毕设java幼儿园校车管理高效的系统 基于Java的幼儿园校车信息管理系统设计与实现 Java环境下幼儿园校车运营管理平台开发2025-11-30 16:43 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !impo…

在线调试+JMeter联动(以聚合数据快递接口为例)

1. 在线调试接口:登录聚合数据平台,开通“快递查询”接口,进入接口详情页的“在线调试”功能。输入快递单号、选择快递公司、填写个人API Key,点击“调试”。 确认接口返回正常(如包含“success: true”和轨迹列表…

手艺文档搭建实战:基于PandaWiki的五步自动化方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

JMeter调用中国天气网接口查看天气预报

1. 新建线程组:打开JMeter,右键测试计划选择“添加”→“线程组”,命名为“天气查询线程组”。 2. 配置获取城市代码的HTTP请求:右键线程组添加“取样器”→“HTTP请求”,命名“获取城市代码”。服务器填 toy1.we…

1. 人工智能发展与springAi

View Post1. 人工智能发展与springAi人工智能发展智能本质上就是针对不同情境给出针对性的输出反应。AI,人工智能(Artificial Intelligence),使机器能够像人类一样思考、学习和解决问题的技术。AI发展至今大概可以…

AI元人文构想:回应《自动驾驶技术的伦理认同与社会化应用治理》——规则库的范式分野与价值原语化的理论必然

AI元人文构想:回应《自动驾驶技术的伦理认同与社会化应用治理》——规则库的范式分野与价值原语化的理论必然 引子:2025年7月11日,中国社会科学网的《自动驾驶技术的伦理认同与社会化应用治理》一文(下称“《治理》…

20232315 2025-2026-1 《网络与系统攻防技术》实验七实验报告

20232315 2025-2026-1 《网络与系统攻防技术》实验七实验报告20232315 2025-2026-1 《网络与系统攻防技术》实验七实验报告 目录一、实验基本信息二、实验内容及要求三、实验过程3.1 简单应用SET工具建立冒名网站3.2 e…

NOIP 2025 游记 退役记 回忆录

NOIP 2025 游记 & 退役记 & 回忆录 坐标 HA,高二。 游记 闲话 自从 -s 考完之后,感觉像是没心劲了一样,身体渐渐随着高强度的集训垮了下来,训练的效果也越来越差,模拟赛从 -s 前的场均 200-300 掉到了 10…

ML - F1 score

ML - F1 scoreThe F1 score is a metric used to evaluate the performance of a classification model, especially when the classes are imbalanced. It is the harmonic mean of two other metrics:Precision: Of …

多模态技术深度探索:融合视觉与语言的AI新范式 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

设计模式的6大原则,和23个设计模式

设计模式六大原则核心是 “让代码好改、好用、不浪费”,用大白话拆解如下: 1. 单一职责原则:一个类只干一件事核心:每个类 / 模块只负责一个功能,别让它又当 “厨师” 又当 “服务员”。 举例:订单类只管订单的创…

2025年必看!9款AI写论文工具推荐,查重率低效率翻倍

作者在校园咖啡馆,听为毕业论文发愁的好友抱怨后,决定分享测评过的9款AI论文写作工具。其中包括鲲鹏智写、瑞达写作、PaperFine等。像鲲鹏智写能30分钟生成5万字初稿,还具备智能改稿等多种功能;PubScholar整合中科…

苍穹外卖-异常排查笔记:拆分微服务后出现的401,403报错处理

苍穹外卖微服务模块调用与异常排查笔记 问题背景与要解决的问题 1. 背景 苍穹外卖项目从单体架构拆分为微服务架构,拆分出sky-common(公共模块)、sky-server-gateway(网关模块)、sky-server-admin-operation(管理…

WinForm界面布局

在C# WinForm中,界面布局是创建用户友好且功能完善应用程序的关键部分。以下详细介绍常见的布局方式及其示例。 1. 绝对定位(Absolute Positioning)原理:通过设置控件的 Location 属性(指定控件左上角相对于其父容…

P7137 [THUPC 2021 初赛] 切切糕

Solution 跟 这题 没什么区别。 设 \(f_{i,j}\) 表示切了 \(i\) 个蛋糕,Tinytree 使用了 \(j\) 次“优先选糕权”时他能拿到的最多蛋糕。那么有 \(f_{i,j}=\max(f_{i-1,j-1}+a_i-t,f_{i-1,j}+t),0 \le t \le \frac{a_…

完整教程:【普中STM32F1xx开发攻略--标准库版】-- 第 12 章 STM32 时钟系统

完整教程:【普中STM32F1xx开发攻略--标准库版】-- 第 12 章 STM32 时钟系统2025-11-30 16:22 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x…