Oracle 19c RAC 自动应用RU补丁简明版

环境:Oracle RAC(GI 19.3 + DB 19.3)
本文应用补丁信息, 19.16 RU:

  • p34130714_190000_Linux-x86-64.zip

本文主要演示使用opatchauto apply自动应用补丁的过程。

  • 1.更新OPatch版本
  • 2.使用opatchauto应用补丁
  • 3.应用补丁后操作

1.更新OPatch版本

在所有节点的GI HOME和DB HOME下,都更新为符合应用补丁需求的OPatch版本。 将之前OPatch备份,解压新版本的OPatch到$ORACLE_HOME目录下,最后检查OPatch版本。
--更新OPatch版本 @all nodes including GI HOME and DB HOME
mv OPatch OPatch_bak
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch version

OPatch Version: 12.2.0.1.35

2.使用opatchauto应用补丁

使用opatchauto应用补丁,具体需要参照补丁包中附带的readme来操作。 根据readme中描述,对于GI HOME和DB HOME都不共享的情况下,使用root用户在每个节点执行opatchauto的具体命令即可实现自动应用补丁。

先确认补丁包的解压目录(各节点保持一致,方便操作):

$ cd /u01/media/ru
$ unzip /u01/media/p34130714_190000_Linux-x86-64.zip

然后使用opatchauto apply应用补丁,

--opatchauto apply @all nodes
# <GI_HOME>/OPatch/opatchauto apply <UNZIPPED_PATCH_LOCATION>/34130714
# $ORACLE_HOME/OPatch/opatchauto apply /u01/media/ru/34130714
...

这个opatchauto的过程会自动关闭数据库和集群,打完补丁之后自动启动集群和数据库。
同样,第一个节点成功后,在第二个节点应用补丁,输出基本一样,不再演示。

此外,特别值得一提的是,19c还有个便捷操作,如果安装时已经准备好RU补丁,可以在安装软件时直接指定同时applyRU。
比如,在安装DB软件时同时指定RU:

[oracle@bogon db_1]$ ./runInstaller -applyRU /u01/media/ru/34130714/
Applying the patch /u01/media/ru/34130714/...
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2022-12-23_02-59-12PM/installerPatchActions_2022-12-23_02-59-12PM.log
Launching Oracle Database Setup Wizard...

The response file for this session can be found at:
 /u01/app/oracle/product/19.3.0/db_1/install/response/db_2022-12-23_02-59-12PM.rsp

You can find the log of this install session at:
 /tmp/InstallActions2022-12-23_02-59-12PM/installActions2022-12-23_02-59-12PM.log
Moved the install session logs to:
 /u01/app/oraInventory/logs/InstallActions2022-12-23_02-59-12PM
[oracle@bogon db_1]$ 
[oracle@bogon db_1]$ 
[oracle@bogon db_1]$ 
[oracle@bogon db_1]$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

[oracle@bogon db_1]$ 

需要注意,OPatch版本同样需要安装前更新好,否则会报错。

3.应用补丁后操作

最后就是根据readme具体说明,在数据库执行:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> startup
SQL> alter pluggable database all open;
SQL> quit

% cd $ORACLE_HOME/OPatch
% ./datapatch -verbose

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

Check the following log files in $ORACLE_BASE/cfgtoollogs/sqlpatch/34133642/<unique patch ID> for errors.

总的来说,这个opatchauto不出问题的情况下,操作上要比手工打补丁简单的多。

AlfredZhao©版权所有「从Oracle起航,领略精彩的IT技术。」
本文转载于网络 如有侵权请联系删除

相关文章

  • 官网下载Java连接MySql驱动jar包

    大家好,又见面了,我是你们的朋友全栈君。官网地址:http://dev.mysql.com/downloads/connector/1.选择下载驱动2.选择下载3.可以不登录直接下载4.下载下来的是zip压缩包,解压之后,文件夹中有Java连接MySql的驱动jar包转载于:https://www.cnblogs.com/it-mh/p/11205866.html发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143525.html原文链接:https://javaforall.cn

  • EasyCVR修改设备通道信息保存图片时,页面一直加载如何优化?

    EasyCVR平台是我们支持协议最全面的视频平台,它能支持主流协议包括国标GB/T28181、RTMP、RTSP/Onvif协议,以及厂家的私有协议,如海康Ehome、海康SDK、大华SDK等。平台可拓展性强、部署轻松、视频能力丰富,支持海量视频设备接入、视频汇聚与管理、转码与分发、告警上报、平台级联、智能分析等。我们在测试平台功能时发现,在EasyCVR项目的设备管理模块,点击设备通道后,再次修改通道信息,将显示的图片的信息保存到数据库,再次调用接口时数据量太大导致接口调用缓慢,页面一直在加载数据,接口数据高达1M。于是我们对此处进行了代码优化,在修改数据时,将不再保存转码后的数据。优化后,接口调用的数据更加轻量化,只有85KB,当数据量降低时,接口加载更快,不再长时间loading,用户体验得到极大提升。随着安防视频监控市场不断趋向于智能化、深度化、融合化方向发展,EasyCVR平台基于云边端一体化架构,充分发挥视频接入、汇聚与管理、分发、智能分析、数据共享等能力,不断在安防实际场景中落地应用。

  • 打造优质的车联网体验,需要数据安全保护

    随着5G、物联网等技术的不断发展,车联网的应用进程也不断推进,近年来,国家有关部门相继出台了一系列相关政策法规鼓励行业的发展,为行业的发展提供了良好的政策环境。但伴随的数据安全、网络安全等问题也值得我们重视起来。一、车联网是什么车联网(InternetofVehicle),简称为IOV,就是指把汽车连接起来,组成网络。汽车和汽车组成车网,车网与互联网相连,三者基于统一的协议,实现人、汽、路、云之间数据互通,并最终实现智能交通、智能汽车、智能驾驶等功能。车联网的概念其实源自于互联网。把节点从PC换成了智能手机,把以太网,换成了移动通讯网络,就成了移动互联网。而对车联网来说,不过是把节点换成了车载电脑ECU、OBD这些车载电子设备。通过移动通讯网络连接,就是车联网。从广义上说,车联网是移动互联网的一部分,而移动互联网是互联网的一部分。二、车联网的用处伴随者5G网络以及车载智能设备领域的发展,车内信息通信、数据传输、无线控制等都有了质的发展:手机互联:车联网的通信系统以WIFI、移动网络、无线网络、蓝牙网络为主,车联网的大部分网络需求需要和网络运营商合作,以便和用户的手机随时连接,轻松实现手

  • 按 user 分组统计视图|全方位认识 sys 系统库

    在上一篇《按host分组统计视图|全方位认识sys系统库》中,我们介绍了sys系统库中按host分组统计的视图,类似地,本期的内容将为大家介绍按照user进行分类统计的视图。下面请跟随我们一起开始sys系统库的系统学习之旅吧。01user_summary,x$user_summary查看活跃连接中按用户分组的总执行时间、平均执行时间、总的IOS、总的内存使用量、表扫描数量等统计信息,默认按照总延迟时间(执行时间)降序排序。数据来源:performance_schema.accounts、sys.xuser_summary_by_statement_latency、sys.xuser_summary_by_file_io、sys.x下面我们看看使用该视图查询返回的结果。#不带x$前缀的视图 admin@localhost:sys12:54:32>select*fromuser_summarylimit1\G ***************************1.row*************************** user:admin statements:90530

  • R语言多分类logistic逻辑回归模型在混合分布模拟单个风险损失值评估的应用

    原文链接:http://tecdat.cn/?p=14017通常,我们在回归模型中一直说的一句话是“ 请查看一下数据 ”。在上一篇文章中,我们没有查看数据。如果我们查看单个损失的分布,那么在数据集中,我们会看到以下内容:>n=nrow(couts)>plot(sort(couts$cout),(1:n)/(n+1),xlim=c(0,10000),type="s",lwd=2,col="green")复制看来我们的数据库中有固定成本索赔。在标准情况下,我们如何处理?我们可以在这里使用混合分布,与小额索赔的分布,例如指数分布狄拉克分布,即分布,例如Gamma分布或对数正态分布>I1=which(couts$cout<1120)>I2=which((couts$cout>=1120)&(couts$cout<1220))>I3=which(couts$cout>=1220)>(p1=length(I1)/nrow(couts))[1]0.3284823>(p2=length(I

  • Golang高效实践之interface、reflection、json实践

    前言反射是程序校验自己数据结构和类型的一种机制。文章尝试解释Golang的反射机制工作原理,每种编程语言的反射模型都是不同的,有很多语言甚至都不支持反射。Interface在将反射之前需要先介绍下接口interface,因为Golang的反射实现是基于interface的。Golang是静态类型语言,每个变量拥有一个静态类型,在编译器就已经确定,例如int,float32,*MyType,[]byte等等。如果我们定义:typeMyIntint variint varjMyInt复制int类型的I和MyInt类型的j是不同类型的变量,在没有限制类型转换的情况下它们不能相互赋值,即便它们的底层类型是一样的。接口interface类型是最重要的一种数据类型,代表的一些方法的集合。interface变量可以存储任意的数据类型,只要该数据类型实现了interface的方法集合。例如io包的io.Reader和io.Writer://ReaderistheinterfacethatwrapsthebasicReadmethod. typeReaderinterface{ Read(p[]by

  • 去解决更多的问题,而不是如何最好地解决一个问题

    有些人非常勤奋,别人休息和娱乐的时候,都在工作学习。但是努力了一辈子,人生也没有显著的提升,就像报道里经常说的:"某某在平凡的岗位上,勤勤恳恳工作了一辈子"。 另一方面,很多成功者似乎也没有特别努力,就取得了许多成就,过上了好日子。蔡志忠以自己为例,他从小就喜欢画画,然后一直画,不知不觉就成了大漫画家,名利双收,从没有觉得过得很辛苦。老师或父母老是说,努力就会走到巅峰----才怪。如果这样,不是所有人都走上巅峰了吗?没有人开始不努力,为什么后来不努力,因为努力没有效果。" 人生不是走斜坡,你持续走就可以走到巅峰;人生像走阶梯,每一阶有每一阶的难点,学物理有物理的难点,学漫画有漫画的难点,你没有克服难点,再怎么努力都是原地跳。所以当你克服难点,你跳上去就不会下来了。成功的人生是台阶式向上,而不是一条水平线。努力只是说明你拼命在走,跟你能不能向上走,关系不大。那些努力却没有结果的人,根本原因就在于,他一直走在平面上,没有走到更高的台阶。也就是说,垂直方向的努力更有意义,水平方向的努力意义不大。你把同一件事情勤奋地做上十遍,还是只会做这一件事;你做完这件事后

  • 将String转化成HTML格式

    一个String显示在网页上,不会安置原来的格式显示,比如说,回车符在网页上就显示成了一个空格, 下面这个方法可以将String改为HTML可以辨认的格式。 publicstaticStringtoHTMLString(Stringin){        StringBufferout=newStringBuffer();        for(inti=0;in!=null&&i<in.length();i++){            charc=in.charAt(i);            if(c=='/'')                out.append("&#039;");            elseif(c=='/"')                out.append("&#034;");            elseif(c=='<')                out.append(

  • 11.09 VR扫描:苹果最早将于2019年推AR头显;腾讯正式对外开放QQ-AR平台

    苹果最早将于2019年推AR头显 今日消息,苹果公司正寻求突破性的产品取代iPhone,现正研发能够在2019年前构建出的AR头显技术,或在2020年之前推出产品。据悉,其与目前使用智能手机作为引擎和屏幕的VR头显不同,苹果的设备将拥有独立显示屏,并在新的芯片和操作系统上运行。这款操作系统在内部被称为“rOS”,代表“现实操作系统”。 VRPinea独家点评:苹果将推VR头盔取代iphone,是否预示未来的趋势? 腾讯正式对外开放QQ-AR平台 昨日上午,腾讯在成都召开的2017腾讯全球合作伙伴大会上,正式宣布对外开放QQ-AR平台。该平台是手机QQ基于AR技术,用新的交互方式将线上线下进行无缝连接。其实现了零门槛制作AR互动场景,登陆后台后无需进行相关研发,只要在QQ-AR平台上传一张照片、一个视频和一个网址链接,即可在QQ上实现AR创意,达到线上线下互动的效果。 VRPinea独家点评:那以后是不是小白如我也可以制作AR内容了? uSens推全球首款手势交互AR头显 硅谷三维人机交互方案商uSens将与中国台湾AR头显厂商LEAPSY合作,于本月19日正式推出全球首款嵌入式手势高端

  • salesforce 零基础开发入门学习(七)PickList的value值获取

      之前介绍过PickList类型的声明以及赋值,但是如何取出呢?一个sObject对象可以理解为一条数据。通过sObject直接取恐怕很难做到,因为他只会显示一个值。这时候就要用到Schema命名空间中的类与方法以及System命名空间下的Schema类来实现。Schema类  Schema命名空间和Schema类不是同一个概念。Schema类属于System命名空间下,Schema命名空间包含很多类处理Schema元数据信息。  Schema类的方法包含schema信息描述。  Schema类主要方法如下:publicstaticMap<String,Schema.SObjectType>getGlobalDescribe():  返回一个map,这个map表示所有的sObject名称(key)到sObjecttokens(value)的map,其中tokens可以为在你的项目中标准的和自定义的Object对象。  这个map具有以下的特征:  1.动态的,根据权限在运行时生成sObject;  2.sObject名称不区分大小写;  3.key可以映射出Object是

  • 十年老苹果(A1286)强升Catalina及Win10踩坑记

    前言 手头有一台十年老苹果,MacBookPro,A1286,连视网膜屏都没有,电池也早就衰减以后直接拆掉了(减重)。 早些年用得还挺多,后来家里也弄了台式,用得逐渐少了,再后来时不时Windows会蓝屏,查了是内存的问题,觉得用得少又懒得换内存,就用得更少了。 中间间或还用Mac系统处理一下Mac办公套件出来的文件,直到OSCatalina出来,发现连这个版本也不让我升级了,只允许HighSierra了,再想想早几年换了个固态进去,把原来的机械放到了光驱位,现在固态也便宜不少了,以及本本的四个脚垫也脱落了两个…… 一团糟之下,决心重理软硬件,来个大改造! 硬件 首先仔细检验原来就加上的两条内存,在内存上没发现问题后,判断是内存槽不干净使得之前总会时不时有蓝屏,用牙刷好好刷过之后,该问题看上去是解决了,用了一段时间都没有再蓝屏。 然后卸下旧的机械数据盘,换上狗东618买的联想1T固态,599元,还是相当实惠的。这个过程中要注意一定要用吸附磁性比较好的起子,避免小螺丝掉进主板缝隙内拿不出来。我这里用到了十字起子和梅花起子。整个过程中需要先拆卸边缘一侧的两个螺丝、把天线插板先能揭开,然后在

  • 如何使用GitHub创建Maven私有仓库

    【Github上创建仓库】 首先,在GitHub上创建自己的仓库(mvn-repo):   【配置本地setting文件】 找到本地的mavensettings文件,配置server: 有两种选择,可以选择配置username和password,或者选择配置Personalaccesstokens<OAUTH2TOKEN>(也是填充到password字段)。 优先使用Personalaccesstokens,因为有些公司内部可能会对用户名和密码做限制(我也不知道为什么)。 前者即是GitHub的用户名以及密码,后者需要在GitHub上进行申请,步骤如下:       选择对应的权限,并标注Note: 然后点击查看:   上图红框即是你的personalaccesstoken。    注:此token会不断发生变化,每一次查看都会更新,更新后之前的不可用,所以要妥善保存。   【增加本地临时存储库】 在pom文件中增加 <build> <plugins>

  • Spring框架源码分析

    Spring核心知识 Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。 为什么说Spring是一个一站式的轻量级开源框架呢?EE开发可分成三层架构,针对JavaEE的三层结构,每一层Spring都提供了不同的解决技术。 •WEB层:SpringMVC •业务层:Spring的IoC •持久层:Sp

  • Docker常用命令

    安裝docker   yumupdate:升级所有包同时也升级软件和系统内核   yumupgrade:只升级所有包,不升级软件和系统内核   yuminstalldocker:安装docker   systemctlstartdocker:启动docker服务:   systemctlenabledocker:设置docker服务开机自启动:中途如有提示按Y和回车确定。   dockerps–a:测试docker是否安装成功: 容器操作:   dockerstop容器id   dockerstart容器id   dockerrestart容器id   列出当前所有正在运行:dockerps   查看所有容器,包括关闭的:dockerps-a   查看当前有些什么images:dockerimages   下载image:dockerpullimage-name   删除images,通过image的id来指定删除谁:dockerrmi   强制删除容器,不论是否正在运行:dockerrm-f docker操作 dockernetworkcreatedefault_network

  • 上交所实时行情文件汇总

    一、前言   前面我们将实时行情文件mktdt00-04都简单梳理了一遍,总的来说实时行情包含有“股票、债券、基金、期权、指数”5个类别,分别是在“竞价、综业、新债券、期权、港股通”5个平台进行交易。下面就对这些内容进行整理和汇总。 二、按平台汇总        如上图所示,比较特殊的是债券行情,在竞价、综业和新债券平台都有,股票则是科创板的盘后固定价格交易在综业平台,港股在港股通平台。   另外比较特殊的是新债券,他没有单独的新债券平台接口,而是与基金通、B2H业务共享一个IS124接口。       接下来我们继续顺着行情这条线来解析接口。

  • Kotlin 或将取代 Java&mdash;&mdash;《Java 编程思想》作者 Bruce Eckel [转]

    BruceEckel是《Java编程思想》、《C++编程思想》的作者,同时也是MindView公司的总裁,该公司向客户提供软件咨询和培训。他是C++标准委员会拥有表决权的成员之一,拥有应用物理学学士和计算机工程硕士学位。从1984年至今,他已经发表了超过150篇计算机技术文章,出版了6本书。他的《C++编程思想》一本书在1995年被评为“最佳软件开发图书”,《Java编程思想》被评为1999年JavaWorld“最受读者欢迎图书”,并且赢得了编辑首选图书奖。这两本书的英文影印版及中文版均已由机械工业出版社引进出版。这两天,BruceEckel来到中国,与我们分享了关于编程语言的一些思考,并讲解了Kotlin的一些优势。本文在此分享完整演讲稿,希望能让你开脑洞、涨姿势!以下为演讲全文:大家经常会问我,Java之后的继承者会是哪一门语言?我给出的答案可能是带有偏见的,因为我在写这本关于Kotlin的书《AtomicKotlin》,所以从我的个人想法来看,Kotlin将会成为Java的下一个继承者。这就是今天为什么我来分享这本书。这个就是这本书的封面,我和SvetlanaIsakova共同写

  • 剑指 Offer 栈与队列

    09.用两个栈实现队列 没啥意思不要想复杂了就是暴力 classCQueue{ public: CQueue(){ } /* 一个主栈一个缓存栈 来回导得到队头 copy后一端变空了 */ stack<int>stk,cache; voidcopy(stack<int>&a,stack<int>&b){ while(a.size()){ b.push(a.top()); a.pop(); } } voidappendTail(intvalue){ stk.push(value); } intdeleteHead(){ if(stk.empty())return-1; copy(stk,cache); intres=cache.top(); cache.pop(); copy(cache,stk); returnres; } }; 复制 30.包含min函数的栈 classMinStack{ public: /**initializeyourdatastructurehere.*/ MinStack(){ } stack<

  • Linux下root用户无法启动pgsql,授权777 权限过大也无法启动

    Linux下root用户无法启动pgsql,授权777权限过大也无法启动 1)创建postgres用户   groupaddpostgres//用户   useraddpostgres-gpostgres   passwdpostgresbjca2012//密码 2)设置用户和权限   命令:chown-Rpostgres:postgres/opt/pgsql   命令:chmod-R0700/opt/psql/data   切换postgres启动   命令:supostgres   命令:/opt/pgsql/bin/postmaster-D/opt/pgsql/data&————————————————版权声明:本文为CSDN博主「u010786396」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u010786396/article/details/84031927 改变世界,改变自己!

  • 有理数均值

    本题要求编写程序,计算N个有理数的平均值。输入第一行给出正整数N(≤100);第二行中按照a1/b1a2/b2…的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。 #include<stdio.h>intgcd(intp,intq){if(q==0)returnp;intr=p%q;returngcd(q,r);}intmain(){intN,sumA=0,sumB=1;scanf("%d",&N);for(inti=0;i<N;i++){inta=0,b=1;scanf("%d/%d",&a,&b);sumA*=b;sumA+=a*sumB;sumB*=b;if(i==N-1)sumB*=N;intdivisor=gcd(sumA,sumB);sumA/=divisor;sumB/=divisor;}if(sumA==0)printf("0");elseif(sumB==1)prin

  • 记录一下 as打开项目之后 报错 attpa: error: resource android:attr/lstar not found

       可以在自己的配置文件中 找  相对应的+号 进行删除 或者进行版本的固定修改 即可

  • 卡夫卡监听类的判断

    System.err.println("接收到了消息"); Stringvalue=data.value(); System.err.println("消息类型:"+value); if(value.startsWith("save")){ String[]split=value.split("="); Planplan=JSON.parseObject(split[1],Plan.class); planretest.save(plan); System.err.println("添加的内容同步到es"); } if(value.startsWith("update")){ String[]split=value.split("="); Planplan=JSON.parseObject(split[1],Plan.class); planretest.save(plan); System.err.println("修改的内容同步到es"); redisTemplate.delete("plan"); System.err.println("同步Redis"); }复制  

相关推荐

推荐阅读