oracle opatch online,Oracle 更新Opatch、打补丁

本帖最后由 suyuanwu 于 2014-6-28 18:10 编辑

1.更新Opatch;

2.打补丁;

3.grid 打补丁;

1.更新Opatch(实验版本: oracle:11.2.0.3.0):

默认安装数据库后,在ORACLE_HOME 下会有个OPatch 文件夹,更新前先检查当前Opatch 版本:

[oracle@sywu2 OPatch]$ ./opatch lsinventory

Invoking OPatch 11.2.0.1.7

Oracle 中间补丁程序安装程序版本 11.2.0.1.7

版权所有 (c) 2011, Oracle Corporation。保留所有权利。

Oracle Home       : /s01/app/oracle/product/11.2.0/dbhome_1

Central Inventory : /g01/oraInventory

from           : /etc/oraInst.loc

OPatch version    : 11.2.0.1.7

OUI version       : 11.2.0.3.0

Log file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2014-06-27_23-03-26下午.log

注:有些时候产品清单加载失败,会导致打补丁时出错

[sywu@sywu OPatch]$ ./opatch lsinventory

Invoking OPatch 11.1.0.6.6

Oracle 中间补丁程序安装程序版本 11.1.0.6.6

版权所有 (c) 2009, Oracle Corporation。保留所有权利。

Oracle 主目录       : /u01/app/product/11.2.0/db_1

主产品清单: /g01/oraInventory

从           : /etc/oraInst.loc

OPatch 版本    : 11.1.0.6.6

OUI 版本       : 11.2.0.1.0

OUI 位置      : /u01/app/product/11.2.0/db_1/oui

日志文件位置 : /u01/app/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2014-06-27_21-51-13下午.log

Patch history file: /u01/app/product/11.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt

List of Homes on this system:

Home name= Ora11g_gridinfrahome1, Location= "/g01/11ggrid/11.2.0/grid"

Home name= OraDb11g_home1, Location= "/s01/app/oracle/product/11.2.0/dbhome_1"

产品清单加载失败... OPatch cannot load inventory for the given Oracle Home.

Possible causes are:

Oracle Home dir. path does not exist in Central Inventory

Oracle Home is a symbolic link

Oracle Home inventory is corrupted

LsInventorySession 失败: OracleHomeInventory gets null oracleHomeInfo

OPatch failed with error code 73

解决方法:

1)找到产品清单文件,默认安装成功后会在 /etc/oraInst.loc 和oracle 根目录 oraInventory 文件夹下 ,如果/etc/下没有就到ORACLE 安装根目录找到文件夹: oraInventory,里面有oraInst.loc;复制一个到 /etc下

2)到$ORACLE_HOME/oui/bin/ 执行如下脚本加载清单:

./runInstaller -silent -attachHome \

ORACLE_HOME=$ORACLE_HOME \

ORACLE_HOME_NAME="ORACLE_HOME"

3) 加载成功后再次到OPatch目录下执行 ./opatch lsinventory 确认产品清单加载是否成功;

有些时候你打过补丁,然后删除过$ORACLE_HOME/.patch_storage 下的文件,下次重新再打补丁是可能会报:" OracleHomeInventory 无法创建锁文件",怎么处理都不行,也并不是操作权限问题:

[grid@sywu2 shared]$ opatch lsinventory

Oracle 中间补丁程序安装程序版本 11.2.0.3.3

版权所有 (c) 2012, Oracle Corporation。保留所有权利。

Oracle Home       : /g01/11ggrid/11.2.0/grid

Central Inventory : /g01/oraInventory

from           : /g01/11ggrid/11.2.0/grid/oraInst.loc

OPatch version    : 11.2.0.3.3

OUI version       : 11.2.0.3.0

Log file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/opatch2014-06-28_16-51-09下午_1.log

OracleHomeInventory 无法创建锁文件, 可能是由于 OPatch 会话失败。加载的产品清单可能无法正确显示 Oracle 主目录中的内容。

Lsinventory Output file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_16-51-09下午.txt

解决方法:

1)首先查看 $ORACLE_HOME/.patch_storage 目录下是否有patch_locked 文件:

[grid@sywu2 shared]$ ls -las $ORACLE_HOME/.patch_storage

总用量 32

4 drwxr-x---  4 grid oinstall 4096 6月  28 16:55 .

4 drwxr-xr-x 68 grid oinstall 4096 6月  28 16:55 ..

4 drwxr-xr-x  5 grid oinstall 4096 6月  28 11:18 15876003_Jan_11_2013_06_19_07

4 -rw-r--r--  1 grid oinstall 1949 6月  28 11:18 interim_inventory.txt

4 -rw-r--r--  1 grid oinstall   93 6月  28 11:18 LatestOPatchSession.properties

4 drwxr-xr-x  3 grid oinstall 4096 6月  28 11:17 NApply

4 -rw-r--r--  1 grid oinstall   56 6月  28 11:18 patch_locked

4 -rw-r--r--  1 grid oinstall   52 6月  28 11:18 record_inventory.txt

2)如果有,将patch_locked 文件命名为其它名或移走,然后再次尝试 opatch lsinventory:

[grid@sywu2 shared]$ mv /g01/11ggrid/11.2.0/grid/.patch_storage/patch_locked  /g01/11ggrid/11.2.0/grid/.patch_storage/patch_locked_bkp

[grid@sywu2 shared]$ opatch lsinventory

Oracle 中间补丁程序安装程序版本 11.2.0.3.3

版权所有 (c) 2012, Oracle Corporation。保留所有权利。

Oracle Home       : /g01/11ggrid/11.2.0/grid

Central Inventory : /g01/oraInventory

from           : /g01/11ggrid/11.2.0/grid/oraInst.loc

OPatch version    : 11.2.0.3.3

OUI version       : 11.2.0.3.0

Log file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/opatch2014-06-28_17-01-51下午_1.log

Lsinventory Output file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_17-01-51下午.txt

这是因为 patch_locked 文件中记录了相关补丁号,当加载时出错或找不到它:

[grid@sywu2 shared]$ cat /g01/11ggrid/11.2.0/grid/.patch_storage/patch_locked_bkp

Locked for patch  :  15876003

Locked by class   :  apply

1.1 更新前先备份原来的Opatch:

[oracle@sywu2 dbhome_1]$ tar -cvf Opatch_20140627.tar OPatch

1.2 解压新版Opatch 文件到$ORACLE_HOME 目录下:

[oracle@sywu2 dbhome_1]$ /tmp/unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME

Archive:  p6880880_112000_Linux-x86-64.zip

creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.html

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.txt

creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oplan.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oracle.oplan.classpath.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/automation.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/OsysModel.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/EMrepoDrivers.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/Validation.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/ValidationRules.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/osysmodel-utils.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/CRSProductDriver.jar

creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/commons-cli-1.0.jar

creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/activation.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-api.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-impl.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jsr173_1.0_api.jar

inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/oplan

replace /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/docs/FAQ? [y]es, [n]o, [A]ll, [N]one, [r]ename: A

.............

1.3 确认OPatch 更新是否成功:

[oracle@sywu2 OPatch]$ ./opatch version

OPatch Version: 11.2.0.3.3

OPatch succeeded.

可能会有未知错误,如版本问题,操作前一定记得备份原来的OPatch;

2.打补丁:

打补丁前要关闭数据库实例、监听程序,补丁要与更新的OPatch对应:

2.1 解压补丁文件到$ORACLE_HOME 目录下:

[oracle@sywu2 OPatch]$ unzip /tmp/p14727310_112030_Linux-x86-64.zip -d $ORACLE_HOME

[oracle@sywu2 dbhome_1]$ cd 14727310/

[oracle@sywu2 14727310]$ ls

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

README.html 文件上有介绍打补丁方法,打补丁前先查看一下;

开始打补丁:

[oracle@sywu2 14727310]$ $ORACLE_HOME/OPatch/opatch apply

2.2 将变更的 SQL Files 导入数据库:

[oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin

[oracle@sywu2 admin]$ sqlplus / as sysdba

SQL> @catbundle.sql psu apply

打补丁信息在 V$version 视图中是查询不到的,要通过 dba_registry_history 视图查询:

SQL>  select action_time,action,namespace,version,bundle_series,comments from dba_registry_history;

ACTION_TIME                                                                 ACTION     NAMESPACE  VERSION

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

BUNDLE_SERIES                  COMMENTS

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

02-MAY-14 11.12.11.444913 PM                                                APPLY      SERVER     11.2.0.3

PSU                            Patchset 11.2.0.2.0

27-JUN-14 11.42.54.320914 PM                                                APPLY      SERVER     11.2.0.3

查询具体的Opatch 版本信息和补丁信息

[oracle@sywu OPatch]$ cd $ORACLE_HOME/OPatch

[oracle@sywu OPatch]$ ./opatch lsinventory

Oracle 中间补丁程序安装程序版本 11.2.0.3.3

版权所有 (c) 2012, Oracle Corporation。保留所有权利。

Oracle Home       : /s01/app/oracle/product/11.2.0/dbhome_1

Central Inventory : /g01/oraInventory

from           : /s01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc

OPatch version    : 11.2.0.3.3

OUI version       : 11.2.0.3.0

Log file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2014-06-28_00-03-04上午_1.log

Lsinventory Output file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_00-03-04上午.txt

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

已安装的顶级产品 (1):

Oracle Database 11g                                                  11.2.0.3.0

此 Oracle 主目录中已安装 1 个产品。

中间补丁程序 (1) :

Patch  14727310     : applied on Fri Jun 27 22:35:15 CST 2014

Unique Patch ID:  15663328

Patch description:  "Database Patch Set Update : 11.2.0.3.5 (14727310)"

Created on 27 Dec 2012, 00:06:30 hrs PST8PDT

Sub-patch  14275605; "Database Patch Set Update : 11.2.0.3.4 (14275605)"

Sub-patch  13923374; "Database Patch Set Update : 11.2.0.3.3 (13923374)"

Sub-patch  13696216; "Database Patch Set Update : 11.2.0.3.2 (13696216)"

Sub-patch  13343438; "Database Patch Set Update : 11.2.0.3.1 (13343438)"

Bugs fixed:

13566938, 13593999, 10350832, 14138130, 12919564, 13624984, 13588248

13080778, 13804294, 14258925, 12873183, 13645875, 12880299, 14664355

14409183, 12998795, 14469008, 13719081, 13492735, 12857027, 14263036

14263073, 13742433, 13732226, 12905058, 13742434, 12849688, 12950644

13742435, 13464002, 12879027, 13534412, 14613900, 12585543, 12535346

12588744, 11877623, 12847466, 13649031, 13981051, 12582664, 12797765

14262913, 12923168, 13612575, 13384182, 13466801, 13484963, 11063191

13772618, 13070939, 12797420, 13041324, 12976376, 11708510, 13742437

13026410, 13737746, 13742438, 13326736, 13001379, 13099577, 14275605

13742436, 9873405, 9858539, 14040433, 12662040, 9703627, 12617123

12845115, 12764337, 13354082, 13397104, 12964067, 13550185, 12780983

12583611, 14546575, 13476583, 15862016, 11840910, 13903046, 15862017

13572659, 13718279, 13657605, 13448206, 13419660, 14480676, 13632717

14063281, 13430938, 13467683, 13420224, 14548763, 12646784, 14035825

12861463, 12834027, 15862021, 13377816, 13036331, 14727310, 13685544

13499128, 15862018, 12829021, 15862019, 12794305, 14546673, 12791981

13503598, 13787482, 10133521, 12718090, 13399435, 14023636, 12401111

13257247, 13362079, 12917230, 13923374, 14480675, 13524899, 13559697

14480674, 13916709, 14076523, 13773133, 13340388, 13366202, 13528551

12894807, 13343438, 13454210, 12748240, 14205448, 13385346, 15853081

12971775, 13035804, 13544396, 13035360, 14062795, 12693626, 13332439

14038787, 14062796, 12913474, 14841409, 14390252, 13370330, 14062797

13059165, 14062794, 12959852, 13358781, 12345082, 12960925, 9659614

13699124, 14546638, 13936424, 13338048, 12938841, 12658411, 12620823

12656535, 14062793, 12678920, 13038684, 14062792, 13807411, 12594032

13250244, 15862022, 9761357, 12612118, 13742464, 14052474, 13457582

13527323, 15862020, 12780098, 13502183, 13705338, 13696216, 10263668

15862023, 13554409, 15862024, 13103913, 13645917, 14063280, 13011409

3.grid 打补丁:

打补丁前同样的先关掉实例、监听程序,停止相关服务释放资源:

[grid@sywu2 15876003]$ su -l root

密码:

[root@sywu2 install]# cd $GRID_HOME/crs/install

[root@sywu2 install]# ./rootcrs.pl -unlock

切换到grid 用户下解压补丁、打补丁(补丁文件: p14727347_112030_Linux-x86-64.zip,该补丁文件包含了db补丁和grid补丁):

[grid@sywu2 shared]$ unzip p14727347_112030_Linux-x86-64.zip -d /tmp/

[grid@sywu2 tmp]$ cd 15876003/

[grid@sywu2 15876003]$ ls

14727310  15876003  bundle.xml  README.html  README.txt

[grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/14727310/

然后根据相关提示操作;14打完再打15876003 grid 补丁:

[grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/15876003/

打完grid 补丁后切换到oracle 用户下打db补丁:

[grid@sywu2 ~]$ su -l oracle

[oracle@sywu2 ~]$  /tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME

/tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh completed successfully.

[oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/15876003/custom/server/15876003/

[oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/14727310/

[oracle@sywu2 ~]$ /tmp/15876003/15876003/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

打完db补丁后切换到root用户,完成后续操作和启动相关服务:

[oracle@sywu2 ~]$ su -l root

[root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/rdbms/install/rootadd_rdbms.sh

[root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/crs/install/rootcrs.pl -patch

检查相关服务是否启动;

[root@sywu2 ~]#  crsctl check crs

[root@sywu2 ~]#   crsctl stat res -t

这样补丁打完:

[grid@sywu grid]$ opatch lspatches

15876003;Grid Infrastructure Patch Set Update : 11.2.0.3.5 (14727347)

14727310;Database Patch Set Update : 11.2.0.3.5 (14727310)

最后启动数据库将变更的 SQL Files 导入数据库:

[oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin

[oracle@sywu2 admin]$ sqlplus / as sysdba

SQL> @catbundle.sql psu apply

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值