Oracle RAC Rolling Patch 说明

2024-04-04 01:48
文章标签 oracle 说明 rac patch rolling

本文主要是介绍Oracle RAC Rolling Patch 说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


 

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

 

Oracle 补丁体系 及opatch 工具 介绍

http://www.cndba.cn/Dave/article/1459

 

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。

 

 

 

 

 

 

 

 

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

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

QQ:492913789

Email:ahdba@qq.com

Blog:  http://www.cndba.cn/dave

Weibo:    http://weibo.com/tianlesoftware

Twitter:  http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

Linkedin: http://cn.linkedin.com/in/tianlesoftware


这篇关于Oracle RAC Rolling Patch 说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874514

相关文章

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc