详述两种给Grid Infrastructure打补丁的方法

升级打补丁是系统管理员重要的工作内容。Oracle Grid Infrastructure是目前比较复杂的集群管理中间件,当出现各种奇怪问题的时候,寻求官方服务支持(MOS)和打补丁是最常见的做法。

同简单单实例文件系统数据库database补丁有所不同的是,GI(Grid Infrastructure)打补丁过程要涉及到其上ASM、Listener和Database Instance的各种关系。同时,一些关键骨架后台进程,如ohasd等还需要root权限的参与。

本篇笔者主要针对两种OPatch补丁策略,演示常见的两种给GI打补丁的方法,即Apply和Auto策略。

1、实验环境介绍

笔者选择Oracle 11gR2进行测试,GI版本为11.2.0.4。

[grid@NCR-Standby-Asm ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 27 09:32:18 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

SQL> conn / as sysasm

Connected.

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE    11.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 – Production

注意:根据Oracle官方意见,OPatch是进行补丁的重要工具。每个补丁解决故障问题不同,安装方式也有所差异。严格按照安装步骤、做好备份工作和预定好回退措施是确保补丁安装的重要步骤。另外,每次打补丁的时候,要从MOS上下载最新版本的OPatch程序包,替换$ORACLE_HOME下的程序包。

2、OPatch Apply策略补丁

和Oracle Instance不同,GI的工作机制更加复杂,基础进行ohasd等都是绑定在操作系统init级别的进程。使用OPatch Apply策略进行补丁的时候,要注意操作前提和步骤、确保相关进程服务关闭。

首先解压补丁文件包。

[root@NCR-Standby-Asm upload]# ls -l

total 282780

drwxr-xr-x 4 oracle oinstall      4096 Oct 20  2014 19852360

-rw-r--r-- 1 oracle oinstall    407030 May 25 09:06 p19852360_112040_Generic.zip

注意:要参考补丁安装文档,确定使用哪个用户进行补丁执行操作。一般Apply方式进行GI补丁,使用grid用户比较常见。同时要注意权限问题,最好将补丁文件包权限“人为降低”,避免出现麻烦。

[root@NCR-Standby-Asm upload]# chown -R grid:oinstall 19852360/

[root@NCR-Standby-Asm upload]# ls -l 

total 282780

drwxr-xr-x 4 grid  oinstall      4096 Oct 20  2014 19852360

进行补丁前,要通过opatch的prereq方法检查补丁兼容性,尽早发现问题,避免回退。

[grid@NCR-Standby-Asm upload]$ cd 19852360/

[grid@NCR-Standby-Asm 19852360]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./

Oracle Interim Patch Installer version 11.2.0.3.10

Copyright (c) 2015, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home      : /u01/app/grid/product/11.2.0/grid

Central Inventory : /u01/app/oraInventory

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

OPatch version    : 11.2.0.3.10

OUI version      : 11.2.0.4.0

Log file location : /u01/app/grid/product/11.2.0/grid/cfgtoollogs/opatch/opatch2015-05-25_09-57-08AM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

根据补丁要求,关闭监听器、数据库服务器和一切与JDBC相关的组件。

[grid@NCR-Standby-Asm ~]$ crsctl stat res -t -init

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

NAME  TARGET  STATE        SERVER      STATE_DETAILS       

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

Local Resources

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

ora.DATA.dg

ONLINE  OFFLINE      ncr-standby-asm                             

ora.LISTENER.lsnr

OFFLINE OFFLINE      ncr-standby-asm                             

ora.RECO.dg

ONLINE  OFFLINE      ncr-standby-asm                             

ora.asm

OFFLINE OFFLINE      ncr-standby-asm          Instance Shutdown   

ora.ons

OFFLINE OFFLINE      ncr-standby-asm                             

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

Cluster Resources

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

ora.cssd

1        ONLINE  ONLINE      ncr-standby-asm                             

ora.diskmon

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1ecd39117d36ae3bdf6d3cc7645d3cd5.html