Oracle 19c RAC 补丁升级 补丁回退

  • 补丁升级流程
    1. 补丁升级
      1. 停止集群备份家目录

两节点分别操作

cd /u01/app/19.3.0/grid/bin/

crsctl stop crs

tar -zcvf /u01/app.tar.gz /u01/app

/u01/app/19.0.0/grid/bin/crsctl start crs

      1. 两节点OPatch替换

--- 表示 root 用户,$ 表示 Oracle 用户提示符,(ASM1)$ 表示 grid 用户

# cd /u01/app/19.3.0/grid

# mv OPatch OPatch.bak20

# chown -R grid:oinstall /soft

# unzip p6880880_19c_19.20_Linux-x86-64.zip

# cp -r OPatch /u01/app/19.3.0/grid/

# chown grid:oinstall -R /u01/app/19.3.0/grid/OPatch

su - grid

cd /u01/app/19.3.0/grid/OPatch

./opatch version

$ opatch version

[grid@p19c01:/u01/app/19.3.0/grid/OPatch]$ ./opatch version

OPatch Version: 12.2.0.1.39

OPatch succeeded.

$ cd $ORACLE_HOME

$ mv OPatch/ OPatch_bak20

su root

chown -R oracle:oinstall /soft

cp -r /soft/OPatch ./

cd OPatch

./opatch version

[oracle@p19c01:/u01/app/oracle/product/19.3.0/db/OPatch]$ ./opatch version

OPatch Version: 12.2.0.1.39

OPatch succeeded.

[oracle@p19c01:/u01/app/oracle/product/19.3.0/db/OPatch]$

升级后:

r19c01(oracle)

r19c01(grid)

r19c02(oracle)

r19c02(grdi)

      1. 收集补丁信息(两节点)

grid用户

su - root

chown grid:oinstall -R /soft

su - grid

$ORACLE_HOME/OPatch/opatch lsinventory > /soft/grid_patch.txt

$ORACLE_HOME/OPatch/opatch lsinv -detail -oh $ORACLE_HOME >> /soft/grid_patch.txt

$ORACLE_HOME/OPatch/opatch lspatches >> /soft/grid_patch.txt

oracle用户

su - root

chown oracle:oinstall -R /soft

chown oracle:oinstall -R /OPatch

su - oracle

$ORACLE_HOME/OPatch/opatch lsinventory > /soft/oracle_patch.txt

$ORACLE_HOME/OPatch/opatch lsinv -detail -oh $ORACLE_HOME >> /soft/oracle_patch.txt

$ORACLE_HOME/OPatch/opatch lspatches >> /soft/oracle_patch.txt

      1. 补丁冲突验证

cd /soft

unzip 19c_19.20_Linux-x86-64.zip

chmod -R  777 35319490

我们可以下载readme文件查看

Grid:

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35319490/35320081

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35319490/35320149

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35319490/35332537

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35319490/35553096

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35319490/33575402

Oracle:

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35319490/35320081

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/35319490/35320149

      1. 补丁空间验证

Grid用户查看

vi /soft/patch_list_gihome.txt

cat  /soft/patch_list_gihome.txt

下面的内容是写到/soft/patch_list_gihome.txt

/soft/35319490/35320081

/soft/35319490/35320149

/soft/35319490/35332537

/soft/35319490/35553096

/soft/35319490/33575402

chown grid:oinstall -R /soft/patch_list_gihome.txt

su - grid

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

Oracle用户查看

su - root

vi /soft/patch_list_dbhome.txt

cat  /soft/patch_list_dbhome.txt

/soft/35319490/35320081

/soft/35319490/35320149

chown oracle:oinstall -R  /soft/patch_list_dbhome.txt

su - oracle

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

    1. 补丁预演

root:

/u01/app/oracle/product/19.3.0/db/OPatch/opatchauto apply  /soft/35319490  -oh /u01/app/oracle/product/19.3.0/db  -analyze

/u01/app/19.3.0/grid/OPatch/opatchauto  apply  /soft/35319490  -oh /u01/app/19.3.0/grid  -analyze

      1. 组件检查,无效对象检查

su - oracle

sqlplus / as sysdba

spool /soft/database_invalid.sql

set lines 200 pages 2000;

show parameter name;

col comp_id for a20;

col version for a20;

col status for a30;

select comp_id,version,status from dba_registry;

select owner,object_type,object_name from dba_objects where status<>'VALID';

spool off;

    1. 补丁更新

可以grid和oracle同时打也可以分开打

首先检测集群的状态,保证集群是正常工作的

su - oracle

srvctl status database -d p19c0

如果没启动,记得启动一下实例

srvctl start instance -d p19c0 -i p19c01

srvctl start instance -d p19c0 -i p19c02

可以在grid中查看

su - grid

cd /u01/app/19.3.0/grid/bin

crsctl status res -t

接着我们按照readme的要求将OPatch的路径加入到.bash_profile中

su - root

vi .bash_profile

export PATH=$PATH:$HOME/bin:/u01/app/19.3.0/grid/bin

export PATH=$PATH:/u01/app/19.3.0/grid/OPatch

source .bash_profile

补丁冲突检查

 ps -ef | grep sqlplus //如果有sqlplus连进去都需要杀掉,两个节点都检查

su - root

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

cd /

opatchauto apply /soft/35319490 -analyze

给grid用户打补丁

 ps -ef | grep sqlplus

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

opatchauto apply /soft/35319490

 ps -ef | grep sqlplus

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35319490 -oh /u01/app/19.3.0/grid -analyze

 ps -ef | grep sqlplus

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

/u01/app/19.3.0/grid/OPatch/opatchauto apply /soft/35319490 -oh /u01/app/19.3.0/grid

给oracle用户打补丁

 ps -ef | grep sqlplus

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

/u01/app/oracle/product/19.3.0/db/OPatch/opatchauto apply /soft/35319490 -oh /u01/app/oracle/product/19.3.0/db -analyze

 ps -ef | grep sqlplus

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

/u01/app/oracle/product/19.3.0/db/OPatch/opatchauto apply /soft/35319490 -oh /u01/app/oracle/product/19.3.0/db

      1. 补丁检查

opatch lsinventory

      1. 回退补丁

opatchauto rollback /soft/35319490

    1. 打补丁
      1. 节点二打补丁

chown oracle:oinstall -R /soft/35319490

首先检测集群的状态,保证集群是正常工作的

su - oracle

srvctl status database -d p19c0

如果没启动,记得启动一下实例

srvctl start instance -d p19c0 -i p19c01

srvctl start instance -d p19c0 -i p19c02

可以在grid仲查看

cd /u01/app/19.3.0/grid/bin

crsctl status res -t

接着我们按照readme的要求将OPatch的路径加入到.bash_profile中

su - root

vi .bash_profile

PATH=$PATH:$HOME/bin:/u01/app/19.3.0/grid/bin

export PATH=$PATH:/u01/app/19.3.0/grid/OPatch

source .bash_profile

我们要将sqlplus进程都退出

补丁冲突检查

 ps -ef | grep sqlplus //如果有sqlplus连进去都需要杀掉,两个节点都检查

su - root

chmod 660 /u01/app/oraInventory/ContentsXML/oui-patch.xml

chown grid:oinstall -R /u01/app/oraInventory/ContentsXML/oui-patch.xml

su - root

cd /

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

opatchauto apply /soft/35319490 -analyze

打补丁

 ps -ef | grep sqlplus

export PERL5LIB=/u01/app/19.3.0/grid/perl/lib

su - oracle

cd $ORACLE_HOME/OPatch

./opatch lspatches

opatchauto rollback /soft/33182768

opatchauto rollback  /soft/33182768 -oh /u01/app/19.3.0/grid

      1. 当节点一打开后再进行补丁注册,编译无效对象

将修改后的SQL文件加载到数据库中

下表是针对独立数据库运行Datapatch实用程序的步骤,在一个节点执行即可。

sqlplus / as sysdba

startup upgrade

quit

cd $ORACLE_HOME/OPatch

./datapatch -verbose

 查看patch

set linesize 200;

col STATUS format a20;

col DESCRIPTION format a80;

select PATCH_ID,PATCH_TYPE,STATUS,DESCRIPTION from dba_registry_sqlpatch;

查看是否有存在失效对象:

col owner for a16

col object_name for a50 trunc

col object_type for a20 trunc

select owner,object_name,object_type from dba_objects where status != 'VALID';

--若有,执行命令清空:

@?/rdbms/admin/utlrp.sql

      1. 打完补丁后检查

crsctl query crs releasepatch

crsctl query crs softwarepatch

kfod op=patches

      1. 检查

启动数据库

startup

将修改后的SQL文件加载到数据库中

下表是针对独立数据库运行Datapatch实用程序的步骤,在一个节点执行即可。

sqlplus / as sysdba

startup upgrade

quit

cd $ORACLE_HOME/OPatch

./datapatch -verbose

 查看patch

set linesize 200;

col STATUS format a20;

col DESCRIPTION format a80;

select PATCH_ID,PATCH_TYPE,STATUS,DESCRIPTION from dba_registry_sqlpatch;

查看是否有存在失效对象:

col owner for a16

col object_name for a50 trunc

col object_type for a20 trunc

select owner,object_name,object_type from dba_objects where status != 'VALID';

--若有,执行命令清空:

@?/rdbms/admin/utlrp.sql

  • 补丁回退
    1. 节点一

su - root

chown oracle:oinstall -R /soft

chown oracle:oinstall -R /soft/35642822

/u01/app/19.3.0/grid/OPatch/opatchauto rollback /soft/35642822-oh /u01/app/19.3.0/grid

chown oracle:oinstall -R /soft

chown oracle:oinstall -R /soft/35642822

/u01/app/oracle/product/19.3.0/db/OPatch/opatchauto rollback /soft/35642822-oh /u01/app/oracle/product/19.3.0/db

    1. 节点二

su - root

chown oracle:oinstall -R /soft

chown oracle:oinstall -R /soft/35642822

/u01/app/19.3.0/grid/OPatch/opatchauto rollback /soft/35642822-oh /u01/app/19.3.0/grid

chown oracle:oinstall -R /soft

chown oracle:oinstall -R /soft/35642822

/u01/app/oracle/product/19.3.0/db/OPatch/opatchauto rollback /soft/35642822-oh /u01/app/oracle/product/19.3.0/db

    1. 回退之后检查

select owner,object_type,object_name from dba_objects where status<>'VALID'; 

cd $ORACLE_HOME/rdbms/admin

sqlplus / as sysdba

@utlrp.sql

select * from product_component_version;

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

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

相关文章

负荷预测 | Matlab基于TCN-GRU-Attention单变量时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-GRU-Attention单变量时间序列多步预测&#xff1b; 2.单变量时间序列数据集&#xff0c;采用前12个时刻预测未来96个时刻的数据&#xff1b; 3.excel数据方便替换&#xff0c;运行环境matlab2023及以…

无人棋牌室软硬件方案

先决思考 软件这一套确实是做一套下来&#xff0c;可以无限复制卖出&#xff0c;这个雀氏是一本万利的买卖。 现在肯定是有成套的方案&#xff0c;值不值得重做&#xff1f;为什么要重做&#xff1f; 你想达到什么效果&#xff1f;还是需要细聊的。 做这个东西难度不高&…

DNF手游攻略:萌新入坑大全!

玩DNF手游国服已经正式定档&#xff0c;离上线已经越来越近了&#xff0c;很多小伙伴对于装备打造以及附魔还不是特别了解。如果你还不知道装备要怎么附魔&#xff0c;不要担心&#xff0c;本篇攻略将为你全面解析全职业过渡和毕业附魔推荐。 ​ 一、物理职业附魔推荐 1. 武器…

1688推出跨境业务,用API自动对接商品货源

2023年底&#xff0c;出海圈迎来一则重磅消息&#xff1a;1688正式进军海外市场。这一决策引发了众多卖家的关注与疑惑&#xff0c;为何1688会在这个时候推出跨境版呢&#xff1f; 事实上&#xff0c;1688早已涉足跨境业务&#xff0c;拥有“跨境专供”板块&#xff0c;成为众…

【C++学习】C++IO流

这里写目录标题 &#x1f680;C语言的输入与输出&#x1f680;什么是流&#x1f680;CIO流&#x1f680;C标准IO流&#x1f680;C文件IO流 &#x1f680;C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取…

Cloudflare Workers 付费文档

定价 默认情况下&#xff0c;用户可以访问Workers免费计划。Workers免费计划包括对Workers、Pages Functions和Workers KV的有限使用。了解更多关于免费计划限制的信息。 Workers付费计划包括Workers、Pages Functions、Workers KV和Durable Objects的使用&#xff0c;每个账…

MedSAM环境搭建推理测试

引子 之前分享过一篇SAM&#xff08;感兴趣的&#xff0c;请移步Segment Anything&#xff08;SAM&#xff09;环境安装&代码调试_segment anything环境-CSDN博客&#xff09;环境搭建&推理测试&#xff0c;虽然话说Segment Anything&#xff0c;但是原始模型对于一些…

一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系

经常遇到很多系统&#xff0c;比如&#xff1a;MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM&#xff0c;这些都是什么系统&#xff1f;有什么功能和作用&#xff1f;它们之间的关系是怎样的&#xff1f; 今天就一文详细分享给大家。 10大系统之间的关系 ERP 和其他…

网络层协议——IP协议

目录 IP协议 IP协议格式 分片与组装 网段划分 特殊IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 路由表生成算法 IP协议 IP协议全称为“网际互连协议&#xff08;Internet Protocol&#xff09;”&#xff0c;IP协议是TCP/IP体系中的网络层协议。 在应用层我…

一例白加黑样本的分析

概述 这是一个典型的白加黑的恶意代码&#xff0c;原始样本是一个自解压文件&#xff0c;可能是钓鱼样本&#xff0c;使用了一个合法签名的exe加载一个恶意的dll&#xff0c;在内存中解密和运行恶意载荷&#xff0c;&#xff0c;创建启动项的方式很特别&#xff0c;没有传播功…

FreeRTOS_day1

1.总结keil5下载代码和编译代码需要注意的事项 下载代码前要对仿真进行设置 勾选后代码会立刻执行 勾选后会导致代码不能执行 写代码的时候要写在对应的begin和end之间&#xff0c;否则会被覆盖 2.总结STM32Cubemx的使用方法和需要注意的事项 ①打开软件&#xff0c;新建工程…

深入理解神经网络学习率(定义、影响因素、常见调参方法、关键代码实现)

目录 什么是学习率&#xff1f; 有哪些影响因素&#xff1f; 常用调整方法&#xff1f; 博主介绍&#xff1a;✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神&#xff0c;答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平…

基于SpringBoot+Vue的计算机课程管理平台(源码+文档+包运行)

一.系统概述 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足&#xff0c;创建了一个计算机管理基于工…

第八届云计算与大数据计算国际会议(ICCBDC 2024)即将召开!

第八届云计算与大数据计算国际会议(ICCBDC 2024)将于2024年8月15-17日在英国的牛津布鲁克斯大学举行。云舞长空&#xff0c;数织经纬&#xff0c;ICCBDC 2024将围绕推动云计算与大数据技术的创新与发展&#xff0c;促进全球范围内的学术交流与合作&#xff0c;共同探索云计算与…

linux项目部署 解决Nginx浏览器刷新出现404,但是不刷新是能够正常请求成功

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 提示&#xff1a;部署成功&#xff0c;访问登录页面登录也成功&#xff0c;强制刷新浏览器报404问题 进入到系统 刷新页面 解决流程 参考如图&#xff0c;再下面添加这条配置信息 location / {try_file…

说说你对集合的理解?常见的操作有哪些?

一、是什么 集合&#xff08;Set&#xff09;&#xff0c;指具有某种特定性质的事物的总体&#xff0c;里面的每一项内容称作元素 在数学中&#xff0c;我们经常会遇到集合的概念&#xff1a; 有限集合&#xff1a;例如一个班集所有的同学构成的集合无限集合&#xff1a;例如…

LangChain入门:19.探索结构化工具对话

引言 在人工智能的浪潮中&#xff0c;对话代理技术正逐渐成为企业和开发者关注的焦点。LangChain&#xff0c;作为对话代理领域的一颗新星&#xff0c;自2021年9月诞生以来&#xff0c;以其强大的功能和灵活的应用场景迅速赢得了市场的认可。本文将带你深入了解LangChain中的S…

智慧公厕厂家,众多智慧公厕精品工程解读

智慧公厕&#xff0c;作为现代城市建设中的重要组成部分&#xff0c;正以其智能化、信息化的特点逐渐引起人们的关注。 一、什么是智慧公厕&#xff1f; 智慧公厕是什么&#xff1f;智慧公厕通过物联网、大数据、云计算、网络通信、自动化控制等技术&#xff0c;监测公厕内部…

深度学习知识点:卷积神经网络(CNN)

深度学习知识点&#xff1a;卷积神经网络&#xff08;CNN&#xff09; 前言卷积神经网络&#xff08;CNN&#xff09;卷积神经网络的结构Keras搭建CNN经典网络分类LeNetAlexNetAlexNet 对比LeNet 的优势&#xff1f; VGGVGG使用2个33卷积的优势在哪里&#xff1f;每层卷积是否只…

pip如何查看Python某个包已发行所有版本号?

以matplotlib包为例子&#xff0c; pip install matplotlib6666 6666只是胡乱输入的一个数&#xff0c;反正输入任意一个不像版本号的数字都可以&#xff5e; matplotlib所有版本号如下&#xff0c; 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1…