Oracle 19C RAC集群补丁升级

文章目录

  • 一、补丁包概述
  • 二、OPatch检查和更新
    • Grid用户更新OPatch
    • Oracle用户更新OPatch
  • 三、验证Oracle Inventory的有效性
  • 四、运行 OPatch 冲突检查
  • 五、运行opatch命令检查GI HOME下是否有足够的空间
  • 六、补丁冲突检测与解决(修补程序)
  • 七、使用root用户应用补丁【节点1打完,再打节点2】
  • 八、将修改后的SQL文件驾照到数据库中
  • 九、回退补丁升级

一、补丁包概述

补丁升级包
链接:https://pan.baidu.com/s/16uTAePiCRNdCOiLn1zc48A?pwd=k3w0
提取码:k3w0

将以下补丁包上传到/soft下
p6880880_190000_Linux-x86-64.zip (更新opatch)

p35940989_190000_Linux-x86-64.zip(GI包,grid软件升级包)

p35943157_190000_Linux-x86-64.zip(DB包,数据库升级包)

这里也可以先查看一下打补丁包之前的版本19.3

column product format A30
column version format A15
column version_full format A20
column status format A15
select * from product_component_version;

在这里插入图片描述

二、OPatch检查和更新

注意:所有节点分别操作

Grid用户更新OPatch

查看一下OPatch的版本信息

opatch version

在这里插入图片描述
在这里插入图片描述

将6880880补丁下载,并解压 $ unzip -o “6880880.zip”
在这里我们直接一次性解压所有的补丁包

# 注意以下所有操作都是root用户执行的,但是进行查询版本的时候需要进入配置过环境变量的用户
su - root
cd /softchown -R grid:oinstall /soft
su - grid -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/19.3.0/grid"
su - grid -c "unzip -q /soft/p35940989_190000_Linux-x86-64.zip -d /soft"
chown -R oracle:oinstall /soft
su - oracle -c "unzip -q -o /soft/p35943157_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/db"
su - grid
opatch version

在这里插入图片描述
在这里插入图片描述

Oracle用户更新OPatch

查看一下OPatch的版本信息

opatch version

在这里插入图片描述
在这里插入图片描述

su - oracle -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/db"
su - oracle
opatch version

在这里插入图片描述
在这里插入图片描述

三、验证Oracle Inventory的有效性

在这里插入图片描述

注意:所有节点都操作,以节点1为例。

GI HOME 和DB HOME 都需要验证,分别使用grid和oracle用户执行如下命令,确保返回SUCCESS。
oracle用户:

$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME 

在这里插入图片描述
在这里插入图片描述
grid用户:
这一步时间会比oracle用户更长一点,耐心等待即可

$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、运行 OPatch 冲突检查

在这里插入图片描述
在这里插入图片描述

注意:所有节点都操作

进行补丁验证(grid用户下)

cd /u01/app/19.3.0/grid/OPatch/ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35940989/33575402$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35940989/35943157$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35940989/35956421$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35940989/35967489$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35940989/36115038

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

进行补丁验证(Oracle用户下)

su - oracle
cd /u01/app/19.3.0/grid/OPatch$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35940989/35943157$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35940989/35967489

在这里插入图片描述
在这里插入图片描述

五、运行opatch命令检查GI HOME下是否有足够的空间

注意:所有节点都操作

在这里插入图片描述

tip:在创建文件的时候可能回遇到权限问题,可以先使用root用户创建修改内容,然后再切换到相应的用户执行检查命令

grid用户:

vim /soft/patch_list_gihome.txt/soft/35940989/35943157
/soft/35940989/35967489
/soft/35940989/35956421
/soft/35940989/36115038
/soft/35940989/33575402

在这里插入图片描述

$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /soft/patch_list_gihome.txt

在这里插入图片描述
在这里插入图片描述

oracle用户:

vim /soft/patch_list_dbhome.txt/soft/35940989/35943157
/soft/35940989/35967489
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /soft/patch_list_dbhome.txt

在这里插入图片描述
在这里插入图片描述

六、补丁冲突检测与解决(修补程序)

在这里插入图片描述
应用修补程序补丁:

su - root
cd /
/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35940989 -analyze 

如果要回滚修补程序,请运行以下命令(现在是安装过程,不用执行,了解就行):
rollback

su - root
/u01/app/19.3.0/grid/OPatch/opatchauto rollback /soft/35940989 -analyze 

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

七、使用root用户应用补丁【节点1打完,再打节点2】

在这里插入图片描述

  • 这里节点1和节点2都需要执行,否则在执行过程会报错
su - root
# 下面这个文件节点2可能没有,建议从节点1copy在授权 scp -r /u01/app/oraInventory/ContentsXML/oui-patch.xml root@p19c02:/u01/app/oraInventory/ContentsXML
chmod 777 /u01/app/oraInventory/ContentsXML/oui-patch.xml
cd /soft/35940989/35967489/files/bin/
chmod 777 *
  • 关闭监听,数据库(对哪个节点打补丁就关哪个,以下代码是关闭节点1的)
su - grid
lsnrctl stop
srvctl stop instance -d p19c0 -i p19c01
  • 以下是启动监听,数据库的代码(记得节点1打补丁完成之后,在打节点2的补丁之前要启动)
su - grid
lsnrctl start
srvctl start instance -d p19c0 -i p19c01
  • 以下是GI和DB一起打补丁的步骤(如果运行内存比较小的话可以参考下面分开打的步骤)(我是通过这种方法成功的)
# 节点1
su - root
cd /
export ORACLE_BASE=/u01/app/grid 
export ORACLE_HOME=/u01/app/19.3.0/grid 
export PATH=/u01/app/19.3.0/grid/bin:/u01/app/19.3.0/grid/OPatch:$PATH 
# 打补丁
/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35940989
或
opatchauto apply /soft/35940989 # 节点2,在打节点2之前,注意先把节点一的服务启动
su - root
cd /
# 打补丁
/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35940989
或
opatchauto apply /soft/35940989 # 查看版本的命令
opatch lspatches 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 以下是GI和DB分开打的步骤
# 以下均以root用户在根目录下执行
# 以下是结点1的/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35940989 -oh /u01/app/19.3.0/grid
# 这里如果报错的话查看报错日志,我这里也报错了,日志主要显示没有读写权限,解决办法如下:
# 1、重启虚拟机(因为这里报错的话你的grid集群就不能使用了,需要重启修复)
# 2、cd /soft/35940989/35967489/files/bin/
# 3、chmod 777 */u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35940989 -oh /u01/app/oracle/product/19.3.0/db
# 启动结点1的数据库
/u01/app/oracle/product/19.3.0/db/bin/srvctl start instance –d p19c0 -n p19c01# 以下是结点2的
/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35940989 -oh /u01/app/19.3.0/grid
# 启动结点2的数据库
/u01/app/oracle/product/19.3.0/db/bin/srvctl start instance –d p19c0 -n p19c02

在这里插入图片描述
在这里插入图片描述

八、将修改后的SQL文件驾照到数据库中

在这里插入图片描述

sqlplus / nolog
Connect / as sysdba
startup
quit
cd $ORACLE_HOME/OPatch
./datapatch -sanity_checks
./datapatch -verbose

在这里插入图片描述
在这里插入图片描述

九、回退补丁升级

su - root
cd //u01/app/19.3.0/grid/OPatch/opatchauto rollback /soft/35940989
或
opatchauto rollback /soft/35940989 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完结。
在这里插入图片描述

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

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

相关文章

Linux - 第三节

改变用户类型 su 仅单纯的进行身份变化 依旧处于普通用户里面 su - 进行重新登录更改身份 退出用exit / ctrld su 用户名 改成成其他身份 对一条命令进行提权 sudo command r:可读 w:可写 x:可执行 -:对应的权限位置,没有权限 去掉所有权限 chmod u…

MongoDB聚合运算符:$linearFill

文章目录 MongoDB聚合运算符:$linearFill语法使用对比$fill和$linearFill 举例使用线性插值填充缺失值在单个阶段中使用多种填充方法 MongoDB聚合运算符:$linearFill $linearFill聚合运算符在一个窗口中基于附近字段的值使用线性插值填充null和缺失字段…

Kafka开机自启脚本

1.虚拟机编辑定时任务 crontab -e reboot /usr/local/startShell.sh 2.编辑自定义启动脚本 #!/bin/sh# 进入kafka安装目录 cd /usr/local/kafka_2.12-3.7.0# 初始化java变量 export JAVA_HOME/usr/local/jdk1.8.0_401 export JRE_HOME${JAVA_HOME}/jre export PATH$PATH:${J…

多视图三维重建-SFM简介

背景 掌握传统的多视图三维重建基本流程 总体流程 多视图三维重建的Pipieline如下图,总共分为四个步骤: 拍摄场景多视角的图像建立这些图像之间的联系(Data Association)SFM稀疏重建MVS稠密重建 Data Association 建立图像…

向开发板上移植ip工具:将ip工具移植到开发板系统中

一. 简介 前面一篇文章对 ip工具源码进行了交叉编译,生成了ip工具。文章如下: 向开发板上移植ip工具:交叉编译 ip工具-CSDN博客 本文对生成的 ip工具进行移植,即移植到开发板系统中,并确定是否可用。 二. 向开发板…

Nagios工具

一 nagios 相关概念 Nagios 是一款开源的免费网络监视工具,能有效监控 Windows、Linux 和 Unix 的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第 一时间通知网站运维人员,在状态恢复后…

CY2300相位对齐时钟乘法器

这份文件是关于Cypress Semiconductor Corporation生产的CY2300型号的Phase-Aligned Clock Multiplier(相位对齐时钟乘法器)的技术手册。以下是该文件的核心内容概述: 产品特性: 4倍频输出配置。单一锁相环(PLL&#x…

顶顶通呼叫中心中间件-声音编码自适应配置方法(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-声音编码自适应配置方法讲解(mod_cti基于FreeSWITCH) 声音编码自适应介绍 声音编码自适应,通常在语音通信和音频处理领域中指的是一种能够根据信号特性和传输环境自动调整编码参数的技术。其目的是在不同的网络状况和音质要求下,…

6.1物联网RK3399项目开发实录-驱动开发之ADC驱动(wulianjishu666)

物联网嵌入式开发源码例程: 链接:https://pan.baidu.com/s/1B3oqq5QBhN-VmTFt9CI-7A?pwd2ihg ******************************************************************************************* ADC 使用 简介 AIO-3399J 开发板上的 AD 接口有两种…

服务未注册到nacos通过gateway转发的配置

1.现实场景 服务需要部署到内网阿里云,通过edas可以进行服务的自动部署和注册,但是有些服务需要调用同一环境中的C命令,于是通过建立ECS服务器,进行jar包的部署,那么在新建的ECS部署的jar包如何通过gateway转发&#…

5-规范设计(下):commit信息风格迥异、难以阅读,如何规范?

我们在做代码开发时,经常需要提交代码,提交代码时需要填写 Commit Message(提交说明),否则就不允许提交。 所以在 Go 项目开发时,一个好的 Commit Message 至关重要: 可以使自己或者其他开发人…

基于SSM的百货中心供应链管理系统设计与实现(论文+源码)_kaic

摘 要 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。本次开发一套百货中心供应链管理系统有管理…

u盘插在电脑上显示要格式化磁盘怎么办

咨询:“U盘插入电脑,提示需要先格式化 才可使用。对于此种情况,在不需要格式化的情况下,是否可以恢复U盘内容?谢谢” 当我们尝试将U盘插入电脑时,有时会遇到一个令人困惑的提示:电脑要求我们格式…

Game Audio Programming

音频编程时游戏开发中最容易忽略,学习资源又是很少的环节。接下来,你将和我探索人耳的工作机制。 what is sound? 我们可以解释电视机是如何通过眼睛传递视觉信息的,但却往往无法对听觉信息做出类似的解释。 对声音的科学研究被称为声学&…

vlan间单臂路由

【项目实践4】 --vlan间单臂路由 一、实验背景 实验的目的是在一个有限的网络环境中实现VLAN间的通信。网络环境包括两个交换机和一个路由器,交换机之间通过Trunk链路相连,路由器则连接到这两个交换机的Trunk端口上。 二、案例分析 在网络工程中&#…

【测试开发学习历程】Python数据类型:字符串-str(下)

目录 5.5 format()方法 5.6 count()方法 5.7 join()方法 5.8 replace()方法 5.9 split()方法 5.10 rstrip()/lstrip()/strip() 方法 5.11 capitalize()方法 5.12 upper() 5.13 lower() 5.14 title() 5.15 endswith()方法 5.16 startswith()方法 5.17 以is开头的方…

跃然纸上的灵感再现,手绘风格的开源绘图白板工具:Excalidraw

Excalidraw:即绘即思,直观呈现未来流程图!- 精选真开源,释放新价值。 概览 在撰写文章或构建演示案例的过程中,为了增强视觉表现力和信息传达深度,适时融入图表或图形显得至关重要。Excalidraw作为一款基于…

pyrhon 中__call__的用法

使用背景 一般情况下类方法的调用是通过先创建类对象再通过a.b()的方式来调用,但是如果类中只有一个方法或者一个方法的使用频率非常高,那么就可以为这个方法命名为__call__来简化调用。 call 存在__call__方法的类对象被称为可调用对象,它…

深度选择器/deep/、::v-deep、:deep的区别

在 Vue.js 和某些其他前端框架中,/deep/、::v-deep 和 :deep 都是用于穿透组件作用域的选择器。它们的主要目的是允许开发者在父组件中直接选择并样式化子组件内部的元素,即使这些元素被封装在子组件的作用域内。 /deep/ /deep/ 是一个深度选择器&#…

nginx符号链接介绍

符号链接(Symbolic link)是一种特殊类型的文件,它是指向另一个文件或目录的符号。在 Nginx 中,符号链接通常用于启用或禁用特定站点的配置文件。 要查看是否存在符号链接以及符号链接指向的目标文件或目录,您可以使用…