Oracle RAC Rolling Patch 说明

关于Oracle 的Patch安装,之前有整理过几篇文档,如下:

Oracle 补丁体系 及opatch 工具 介绍

http://blog.csdn.net/tianlesoftware/article/details/5809526

Oracle 11g 新特性 --Online Patching (Hot Patching 热补丁)说明

http://blog.csdn.net/tianlesoftware/article/details/8214412

Oracle 更新 OPatch 工具版本 的方法说明

http://blog.csdn.net/tianlesoftware/article/details/6857059

这里看一下RAC的Patch。 这里是争对DB Patch 来说明,如果是RAC的GI升级,或者是PSR,还是需要停机的。因为GI的升级需要停掉整个CRS。 但对数据库独立patch则可以采取滚动方式来安装。

一. RAC Patch的几种方法

RAC 环境下有三种不同的patch方法:

1.1 对所有节点同时Patch(All-Node Patch)

对于这种模式,OPatch 先在本地节点apply patch,然后在其他节点apply,最后更新inventory。 在这个patch的过程中,所有实例都必须shutdown。

该模式的操作步骤如下:

(1)关闭所有节点上的实例。

(2)在所有节点上applypatch。

(3)启动所有实例。

1.2 使用最小宕机时间来打Patch

在这种模式下,OPatch 先对本地节点打opatch。然后让用户选择其他的节点来进行patch, 其他节点也patch完成,最后在更新inventory。

在这种模式下,downtime的时间就是第二个节点关闭到第一个节点起来之间的时间。

最小宕机的操作步骤如下:

(1)关闭节点1的实例

(2)在节点1上apply Patch

(3)关闭节点2上的实例。

(4)在节点2上应用Patch。

(5)关闭节点3上的实例。

(6)在这个时候,节点1和节点2的实例可以启动。

(7)在节点3上应用patch。

(8)启动节点3上的实例。

以上整个过程,downtime就是节点3 shutdown到节点1,2启动这段时间。

1.3 Rolling Patch(不需要down time)

在这种方法里,没有downtime 时间。 每个节点都可以patch,并且其他节点也可以正常运行,这种情况下对系统就没有影响。

Rolling Patch 也不总是不需要downtime时间,因为有些patch支持 rolling patch,有些不支持,对于不支持rolling patch的,只能按照老方法来安装。

Rolling patch的步骤如下:

(1)关闭节点1的实例

(2)在节点1上应用Patch。

(3)在节点1上启动实例。

(4)关闭节点2上的实例。

(5)在节点2上应用Patch。

(6)在节点2上启动实例。

(7)关闭节点3上的实例。

(8)在节点3上应用Patch。

(9)启动节点3上的实例。

1.4 如何判断使用哪种方法

只有满足特定条件的Patch 才可以进行rolling patch。该类patch被称为:rolling updateble patch 或者 rolling patch。

如果用户指定了最小宕机时间,选择最小宕机时间,如果没有指定,就使用rolling patch,最后在考虑同时对所有节点进行patch。

二. 如何判断Patch 是否是Rolling Patch?

当oracle 发布一个patch的时候,会对patch 进行标记:rolling 或者是not rolling。大部分的patch 都是rolling的。

Rolling Patch 有如下特性:

(1)Patch 不影响数据库的内容

(2)Patch 和RAC 内部通信结构无关

(3)Patch 改变程序的逻辑,不修改kernel modules的common header definitions。包括客户端的patch,其只影响一些工具,如export,import,sql*plus和sql*loader等。

只有独立的patches才是rollable的。对于patch sets不能进行rolling patch。

将多个rolling patch 合并起来的merge patch 和普通的patch都不是 rolling patch。

从Oracle 9.2.0.4 开始,根据定义的规则,所有的的patches都会被标记为rolling 或者 not rolling patch。 在这之前的patch都会标记为not rolling。

2.1检查patch是否是 rolling patch

执行如下命令:

- 9i or 10gR1: opatchquery -is_rolling

- 10gR2: opatch query -all  [unzipped patchlocation] | grep rolling

- 10gR2 on Windows: opatch query -all [unzipped patchlocation] | findstr rolling

- Later 10gR2 or 11g: opatchquery -is_rolling_patch [unzipped patch location]

如果我们解压缩的patch 路径包含多个子patch目录,那么opatch命令就不能正常工作。

--不能用root用户执行判断命令:

[root@rac1 16056266]#/u01/app/grid/11.2.0/OPatch/opatch query -is_rolling_patch/u01/software/16056266

The user is root. OPatch cannot continue ifthe user is root.

OPatch failed with error code 255

[root@rac1 16056266]# su - grid

[grid@rac1 ~]$/u01/app/grid/11.2.0/OPatch/opatch query -is_rolling_patch/u01/software/16056266

Oracle Interim Patch Installer version11.2.0.3.4

Copyright (c) 2012, OracleCorporation.  All rights reserved.

Oracle Home       : /u01/app/grid/11.2.0

Central Inventory : /u01/app/oraInventory

from           :/u01/app/grid/11.2.0/oraInst.loc

OPatch version    : 11.2.0.3.4

OUI version       : 11.2.0.3.0

Log file location :/u01/app/grid/11.2.0/cfgtoollogs/opatch/opatch2013-06-09_04-14-34AM_1.log

Failed to load the patch object.  Possible causes are:

Thespecified path is not an interim Patch shiphome

Meta-data files are missing from the patch area

Patch location = /u01/software/16056266

Details = Input metadata files are missing.

Patch Location"/u01/software/16056266" doesn't point to a valid patch area.

--因为我们指定的/u01/software/16056266的路径下面还包含其他的子patch,所以报错。

OPatch failed with error code 75

[grid@rac1 ~]$ cd /u01/software/16056266

[grid@rac1 16056266]$ ls

13343438 13696216  13923374  14275605 14727310  16056266  patchmd.xml README.html  README.txt

--对单个patch进行查看:

[grid@rac1 16056266]$  /u01/app/grid/11.2.0/OPatch/opatch query-is_rolling_patch /u01/software/16056266/13343438/

Oracle Interim Patch Installer version11.2.0.3.4

Copyright (c) 2012, OracleCorporation.  All rights reserved.

Oracle Home       : /u01/app/grid/11.2.0

Central Inventory : /u01/app/oraInventory

from           :/u01/app/grid/11.2.0/oraInst.loc

OPatch version    : 11.2.0.3.4

OUI version       : 11.2.0.3.0

Log file location :/u01/app/grid/11.2.0/cfgtoollogs/opatch/opatch2013-06-09_04-15-17AM_1.log

--------------------------------------------------------------------------------

Patch is a rolling patch: true

OPatch succeeded.

[grid@rac116056266]$ /u01/app/grid/11.2.0/OPatch/opatch query -is_rolling_patch/u01/software/16056266/13696216

Oracle Interim Patch Installer version11.2.0.3.4

Copyright (c) 2012, OracleCorporation.  All rights reserved.

Oracle Home       : /u01/app/grid/11.2.0

Central Inventory : /u01/app/oraInventory

from           :/u01/app/grid/11.2.0/oraInst.loc

OPatch version    : 11.2.0.3.4

OUI version       : 11.2.0.3.0

Log file location :/u01/app/grid/11.2.0/cfgtoollogs/opatch/opatch2013-06-09_04-15-32AM_1.log

--------------------------------------------------------------------------------

Patch is a rolling patch: true

OPatch succeeded.

2.2 Patch的一些限制

2.2.1 在Shared File System上进行Patch

Currently Opatch会把Shared File System当作单实例来进行Patch。OPatch 会把patch file 放在ORACLE_HOME目录,因为是共享的,所以其他节点也可以访问。

因此对于Shared FileSystem的环境,就不能使用OPatch 的高级功能:rollingpatch,在打Patch的时候,所有节点都必须shutdown。

2.2.2 每次Patch一个节点

可以在每个节点独立的进行patch,即在opatch的时候只用: -local 关键字,这样就只会在本地节点进行patch。

Oracle RAC Rolling Patch 说明相关推荐

  1. Oracle RAC环境下如何更新patch(Rolling Patch)

    Oracle RAC数据库环境与单实例数据库环境有很多共性,也有很多异性.对于数据库补丁的更新同样如此,都可以通过opatch来完成.但RAC环境的补丁更新有几种不同的更新方式,甚至于可以在零停机的情 ...

  2. Oracle 19c rac PSU安装及问题 - CRS-6706: Oracle Clusterware Release patch level ('nnn') does not match

    -- 19c rac 19.3.0.0 安装PSU  19.7.0.0.200414 /stage 下的补丁文件夹的属性是grid:oinstall --GI用户下 $ORACLE_HOME/OPat ...

  3. Linux Oracle Rac 10G 搭建 Patch

    Oracle Real Application Clusters 简称Oracle Rac 实施应用群集 环境接受 Virtual Machine(虚拟机):VirtualBox 4.2.18 系统平 ...

  4. CRS-6706: Oracle Clusterware Release patch level ('3329448500') does not match Software patch level

    oracle19.3.0.0 rac+centos7.6 补丁为19.5.0.0 启动crs报错如下: [root@rac2 ~]# /oracle/app/19c/grid/bin/crsctl s ...

  5. Oracle RAC One node

    一.RAC One Node介绍 1.rac one node数据库可以转换成RAC数据库,转换过程可以在线,无需停止RAC one node数据库:  2.rac one node可以创建多个rac ...

  6. Step-By-Step在AIX上安装Oracle RAC

    最近遇到一个项目,是在AIX5.3上安装ORACLE 9i RAC,说实话,ORACLE俺压根就没有接触过,我也是临危受命.感觉如同当年实施AS400的XSM项目一般.无奈,下载了N多本REDBOOK ...

  7. Oracle Rac 11R2添加节点

    Oracle Rac 11R2添加节点 一.完成以下步骤,准备将节点添加到集群: 1.安装操作系统(版本和集群其他节点一致),同时配置hosts文件.内核参数,网络参数,及oracle rac依赖的p ...

  8. Oracle RAC CSS 超时计算 及 参数 misscount, Disktimeout 说明

    一. 概述 在之前的文章: RAC 的一些概念性和原理性的知识 http://blog.csdn.net/tianlesoftware/article/details/5331067 提到OCSSD  ...

  9. 12 c for. oracle rac,【案例】Oracle RAC FOR AIX搭建执行root.sh时两次报错的解决办法

    天萃荷净 运维DBA反映在aix 5.3 ml6安装10.2.0.1 rac报错0509-036 Cannot load program crsctl.bin because of the follo ...

最新文章

  1. 条件语句,while循环语句:完整的温度转换程序
  2. Android Region代码分析
  3. spring中Constructor、@Autowired、@PostConstruct的顺序
  4. 20165310 Java实验五《网络编程与安全》
  5. gradle compile mysql_Gradle配置implementation、api与compile的区别
  6. Qt工作笔记-使用SQL中的LIMIT进行数据分页
  7. linux重定向到程序,技术|Linux I/O 重定向基础
  8. javascript 本地存储(cookies、sessionStorage和localStorage解释及区别)
  9. 关于带宽,数据速度,码元,码间串扰
  10. PolyCluster: Minimum Fragment Disagreement Clustering for Polyploid Phasing 多聚类:用于多倍体的最小碎片不一致聚类...
  11. vue 描述框[el-descriptions] 与之对应 div
  12. 对冲之王 - 华尔街量化投资传奇 读后感
  13. 一边是旺旺丢不掉的童心 一边是放不下的功能饮料
  14. Python爬取某宝商品数据案例:100页的价格、购买人数等数据
  15. Python中的if __name__ == ‘__main__‘什么意思?
  16. python 蒙特卡罗法求π值
  17. 【SpringBoot】SpringBoot2.x 配置 笔记
  18. 培训机构管理信息系统设计与开发(一)
  19. 【NI Multisim 14.0原理图设计基础——元器件分类】
  20. 将 MobaXterm 的高亮/突出显示集功能(HighLight sets)移植到 Xshell6 中使用

热门文章

  1. 分享个查找电子书的网站
  2. 安卓调用手机摄像头和相册
  3. java fault,FaultAction
  4. 皮皮搞笑sign算法分析
  5. python kfold交叉验证_Python sklearn KFold 生成交叉验证数据集
  6. 用java获取360doc页面上的url地址并在浏览器中自动打开
  7. 解决Linux无法上网的各种问题
  8. java.lang.stackoverflowerror_java.lang.StackOverflowError解决
  9. 两套java在线考试系统【源码分享】
  10. java class cast_Java异常ClassCastException