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;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NLP_知识图谱_图谱问答实战

文章目录 图谱问答NERac自动机实体链接实体消歧 多跳问答neo4j_graph执行流程结构图![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1577c1d9c9e342b3acbf79824aae980f.png)company_data![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/20f567d877c743b…

python爬虫-----Selenium (第二十二天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

(一)基于IDEA的JAVA基础15

还是先来说一下: Arrays工具类 Arrays是java.util包提供的工具类 提供了操作数组的方法&#xff0c;如排序,查询等。 如排序(升序)使用sort方法 语法: Arrays.sort(数组名)&#xff1b; 还是直接写来看看: public class Test01 { public static void main(String[] args)…

攻防世界12-baby_web

12-baby_web 题目说想想初始页面是哪个&#xff0c;一般都是index.php&#xff0c;然后如题分析即可。 我们在链接后面拼接上/index.php&#xff0c;返回后发现界面又回到了1.php&#xff0c;有可能是重定向。 我们点击检查-网络&#xff0c;发现没有index的请求&#xff0c;…

系统架构最佳实践 -- 供应链系统架构

供应链系统是现代企业管理中不可或缺的一部分&#xff0c;它涉及到从原材料采购到产品销售的整个生产流程。一个高效的供应链系统可以帮助企业实现成本控制、库存优化和客户满意度提升等目标。在本文中&#xff0c;我们将讨论供应链系统的设计与实践。 一、供应链系统设计 业务…

数字乡村创新实践探索农业现代化与乡村振兴新路径:科技赋能农村全面振兴与农民幸福新篇章

随着信息技术的飞速发展&#xff0c;数字乡村成为推动农业现代化与乡村振兴的重要战略举措。科技赋能下的数字乡村创新实践&#xff0c;不仅提升了农业生产的智能化水平&#xff0c;也为乡村治理和农民生活带来了翻天覆地的变化。本文旨在探讨数字乡村创新实践在农业现代化与乡…

数据库数据恢复—Sql Server数据库文件丢失如何恢复数据?

服务器数据恢复环境&#xff1a; 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5&#xff0c;划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检&#xff1a; 由于未知原因&#xf…

Spring框架中的单例bean是线程安全的吗?

无状态bean&#xff1a; 无状态的Bean的行为不受其内部状态的影响&#xff0c;每次调用都是基于传入的参数进行计算&#xff0c;而不依赖于任何之前的状态。 (例如上面例子&#xff1a;userService是不能修改的&#xff0c;是无状态的bean) 因此&#xff1a; Spring框架中的…

基于51单片机的无线病床呼叫系统设计—LCD1602显示

基于51单片机的无线病床呼叫系统 &#xff08;仿真&#xff0b;程序&#xff0b;原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.病人按下按键&#xff0c;LCD1602显示对应的床位号&#xff1b; 2.多人同时呼叫&#xff0c;显示屏同时显示&#xf…

Vitis HLS 学习笔记--优化循环启动间隔(II)

目录 1. 概述 2. 常规矩阵乘法 3. 数据依赖性和内存访问模式 4. 优化循环 5. 总结 1. 概述 Initiation Interval&#xff08;II&#xff09;定义为启动连续操作之间的时间间隔&#xff0c;以时钟周期为单位。低的II是高性能和高资源利用率的关键。 较高的II意味着在单位…

《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)

1.简介 自动化测试中如何输出日志文件。任何软件&#xff0c;都会涉及到日志输出。所以&#xff0c;在测试人员报bug&#xff0c;特别是崩溃的bug&#xff0c;一般都要提供软件产品的日志文件。开发通过看日志文件&#xff0c;知道这个崩溃产生的原因&#xff0c;至少知道触发崩…

java:特殊文件(properties,xml)和日志

特殊文件 txt(文本文件) txt文件是一种纯文本文件,用于存储文本信息 优缺点:txt文件简单易用,可以使用任何文本编辑器打开和编辑,但不支持数据类型和结构,所有信息均用纯文本形式保存 适合简单的配置信息存储 properties文件 properties文件是一种键值对文件,用于存储配置…

2024最新在线工具箱网站系统源码

2024最新在线工具箱网站系统源码 下载地址: 2024最新在线工具箱网站系统源码-JXASP源码网https://www.jxasp.com/think-php/12489.html

数据库世界信息速递-- TIDB 怎么走向世界如何保证稳定性和可靠性(译)

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;&#xff08;…

LeetCode刷题记(三):61~90题

61. 旋转链表 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], k 4 输出&…

C#.net手术麻醉信息系统源码,集成HIS、EMR、LIS、PACS系统

手术麻醉信息系统可以实现手术室监护仪、麻醉机、呼吸机、输液泵等设备输出数据的自动采集&#xff0c;采集的数据能据如实准确地反映患者生命体征参数的变化&#xff0c;并实现信息高度共享&#xff0c;根据采集结果&#xff0c;综合其他患者数据&#xff0c;自动生成手术麻醉…

JavaScript教程(十四)--- 类型化数组

JavaScript 类型化数组 JavaScript 类型化数组是一种类似数组的对象&#xff0c;并提供了一种用于在内存缓冲中访问原始二进制数据的机制。 引入类型化数组并非是为了取代 JavaScript 中数组的任何一种功能。相反&#xff0c;它为开发者提供了一个操作二进制数据的接口。这在操…

SAP软件如何批量修改物料主数据

在SAP/ERP系统日常运维中经常会遇到批量修改物料主数据的业务需求&#xff0c; 遇到这种业务需求可以使用SAP提供的标准的事务代码MM17进行处理。 下面按业务场景介绍下具体的操作步骤 业务场景1 需要将一批物料主数据的采购组字段全部修改为002。 具体操作步骤如下&#…

[漏洞复现]D-Link未授权RCE漏洞复现(CVE-2024-3273)

声明&#xff1a;亲爱的读者&#xff0c;我们诚挚地提醒您&#xff0c;Aniya网络安全的技术文章仅供个人研究学习参考。任何因传播或利用本实验室提供的信息而造成的直接或间接后果及损失&#xff0c;均由使用者自行承担责任。Aniya网络安全及作者对此概不负责。如有侵权&#…

Spring+SpringMVC的知识总结

一:技术体系架构二:SpringFramework介绍三:Spring loC容器和核心概念3.1 组件和组件管理的概念3.1.1什么是组件:3.1.2:我们的期待3.1.3Spring充当组件管理角色(IOC)3.1.4 Spring优势3.2 Spring Ioc容器和容器实现3.2.1普通和复杂容器3.2.2 SpringIOC的容器介绍3.2.3 Spring IOC…