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

news2024/9/21 7:04:59
  • 补丁升级流程
    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.coloradmin.cn/o/1595262.html

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

相关文章

list 简化版模拟实现

1ListNode template<class T>struct ListNode{public:ListNode(const T& x T()):_next(nullptr), _prev(nullptr), _data(x){}//private://共有可访问ListNode<T>* _next;ListNode<T>* _prev;T _data;}; 实现iterator对Node*的封装 实现运算符重载 vo…

双向链表的实现(详解)

目录 前言初始化双向链表的结构为双向链表的节点开辟空间头插尾插打印链表尾删头删查找指定位置之后的插入删除pos节点销毁双向链表 前言 链表的分类&#xff1a; 带头 不带头 单向 双向 循环 不循环 一共有 (2 * 2 * 2) 种链表 带头指的是&#xff1a;带有哨兵位节点 哨兵位&a…

基于SignalR视频聊天 一

环境 VS2022 WIN10 .NET8 VSCode VUE SignalR 1.安装SignalR客户端库 需要在Vue.js项目中安装SignalR客户端库。可以使用npm或者yarn来安装 npm install microsoft/signalr2.创建SignalR服务 创建SignalR服务&#xff0c;以便客户端&#xff08;Vue.js应用&#xff09;能…

Java实现短信发送并校验,华为云短信配合Redis实现发送与校验

Java实现短信发送并校验&#xff0c;华为云短信配合Redis实现发送与校验 安装sms4j和redis <dependency><groupId>org.dromara.sms4j</groupId><artifactId>sms4j-spring-boot-starter</artifactId><version>3.2.1</version> <…

每日算法之矩阵置零

题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 示例 2&#xff1a; 输入&#x…

访问者模式类图与代码

某图书管理系统中管理着两种类型的文献&#xff1a;图书和论文。现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文&#xff0c;那么馆藏文献的总页码就是590页)。采用Visitor(访问者)模式实现该要求&#xff0c;得到如图7.16所示的类图。 访…

JavaScript知识点 --javaweb学习笔记

什么是Javascript? JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的&#xff0c;它能使网页可交互JavaScript 和Java 是完全不同的语言&#xff0c;不论是概念还是设计。但是基础语法类似JavaScript在1995 年由 Brendan Eich 发明&#xff0c;并…

Go微服务: 链路追踪jaeger原理和环境搭建

微服务中链路追踪作用 1 ) 概述 著名的管理学大师彼得德鲁克曾说过“If you can’t measure it, you can’t improve it”意思是&#xff1a;如果你不能度量它&#xff0c;你就无法改进它在微服务开发后期&#xff0c;服务会越来越多&#xff0c;调用链过多&#xff0c;进行链…

简历上写熟悉Linux下常用命令?直接寄

大家写简历技术栈时&#xff0c;都觉得越多越好&#xff0c;其中一条&#xff0c;熟悉Linux下常用命令&#xff1f;其实开发中Linux不是必备考点&#xff0c;除了运维&#xff0c;真正用的多的仅仅cd ls mkdir等&#xff0c;但当面试官问到上面命令时&#xff0c;是不是就傻眼了…

Java开发从入门到精通(二十):Java的面向对象编程OOP:Stream流

Java大数据开发和安全开发 &#xff08;一&#xff09;Java的新特性&#xff1a;Stream流1.1 什么是Stream?1.2 Stream流的使用步骤1.3 获取Stream流1.4 Stream流常见的中间方法1.5 Stream流常见的终结方法 &#xff08;一&#xff09;Java的新特性&#xff1a;Stream流 1.1 …

【Vue】面试题

vue的组建通信方式 父子关系&#xff1a;props & $emit 、 $parent / $children 、 ref / $refs 、 插槽跨层级关系&#xff1a; provide & inject通用方案&#xff1a;Vuex 或 eventbus 插播&#xff1a;兄弟组建怎么通信&#xff1f; eventbusVuex通过中间件&…

学校4-11天梯赛选拔赛

目录 L1-5 6翻了 题目 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 思路 AC代码 L1-1 嫑废话上代码 题目 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; AC代码 L1-8 刮刮彩…

温故知新之-TCP Keepalive机制及长短连接

[学习记录] 前言 TCP连接一旦建立&#xff0c;只要连接双方不主动 close &#xff0c;连接就会一直保持。但建立连接的双方并不是一直都存在数据交互&#xff0c;所以在实际使用中会存在两种情况&#xff1a;一种是每次使用完&#xff0c;主动close&#xff0c;即短连接&…

建模设计软件 Archicad 27 for mac激活版

在建筑设计领域&#xff0c;每一次技术的革新都意味着设计效率和质量的飞跃。Archicad 27 for Mac&#xff0c;就是这样一款引领行业变革的设计软件。 Archicad 27凭借出色的性能优化和强大的功能更新&#xff0c;为Mac用户带来了前所未有的建筑设计体验。它支持BIM&#xff08…

5G网络开通与调测ipv4

要求如下&#xff1a; 1. 勘站规划 1. 【重】首先观察NR频点&#xff0c;完成设备选型 2645--选择N41 3455--选择N78 4725--选择N79 设备选型如下&#xff1a;观察AAU的通道数&#xff0c;最大发射功率&#xff1b;选择N41的选型频段也要选41 2. …

InnoDB中高度为3的B+树最多可以存多少数据?

参考&#xff1a; &#x1f525;我说MySQL每张表最好不超过2000万数据&#xff0c;面试官让我回去等通知&#xff1f; - 掘金 考虑到磁盘IO是非常高昂的操作&#xff0c;计算机操作系统做了预读的优化&#xff0c;当一次IO时&#xff0c;不光把当前磁盘地址的数据&#xff0c;…

sudo apt install ros-humble-gazebo-*显示网络不可达 Ubuntu20.04使用清华镜像本地安装/更新ros2

问题 sudo apt install ros-humble-gazebo-*显示网络不可达&#xff0c;这是因为sources.list中的镜像源有问题&#xff0c;换成清华源可以解决问题 解决 1 设置Ubuntu镜像源为清华镜像源 1.1 备份source.list文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.ba…

GNU Radio创建Zadoff-Chu序列C++ OOT块

文章目录 前言一、ZC序列是什么&#xff1f;二、创建自定义的 C OOT 块1、创建 OOT 模块2、创建 OOT 块3、修改 C 文件4、编译及安装 OOT 块 三、测试1、grc 图2、运行结果①、时域图②、时域幅值模图③、IQ 曲线 四、其他五、资源自取 前言 本文实现在 GNU Radio 中创建 Zado…

连接两部VR头显的type-c DP分配器方案,可以给主机设备PD反向供电与两部VR同时供电。

随着type-c的发展&#xff0c;目前越来越多的设备都在使用type-c作为连接的接口&#xff0c; 不仅是笔记本与手机在使用现在的游戏主机如&#xff08;任天堂&#xff0c;steam&#xff0c;&#xff09;或者是VR的一体机或者是VR头显也都在使用type-c作为连接接口。 type-c接口…

CSS常用十大选择器(理论+代码实操)

HTML代码实例 注意&#xff1a;拷贝后本地运行注意head标签中的link标签的href属性是否正确 我的目录结构&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Title</title><lin…