使用OPatch给Oracle打补丁

 

任何软件都会存在这样或者那样的缺陷、Bug,Oracle也不例外。对于生产运维人员来说,定期升级系统、打补丁是日常工作中不可缺少的部分。

 

相对于过去的版本,Oracle打补丁的方式已经变得比较简单,处理PSU的方法也发生了一些变化。在11g中,对于一些小bug的修复,我们可以使用OPatch工具进行补丁修复。对于大的版本升级,Oracle的PSU实际上就是一系列全新的安装文件,从MOS上下载之后就可以直接进行安装。

 

本篇主要介绍一下如何在11g下面使用OPatch进行打补丁。

 

1、  环境介绍

 

我们选择11gR2作为实验环境。

 

 

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE        11.2.0.1.0         Production

 

 

在安装目录$ORACLE_HOME下,是自带一个OPatch工具包的。一般小版本的升级,都是通过OPatch来完成。

 

 

[oracle@bsplinux ~]$ cd $ORACLE_HOME

[oracle@bsplinux oracle]$ ls -l | grep OPatch

drwxr-xr-x  8 oracle oinstall    4096 Oct 23 20:00 OPatch

 

 

不过,同Oracle自带的Uninstall一样,11.2.0.1自带的OPatch的版本是不能提供升级功能的。所以,我们通常需要首先升级OPatch,之后才能进行打补丁。

 

2OPatch升级

 

首先,我们需要确定当前的OPatch版本。进入OPatch目录之后,可以通过版本首先确认。

 

 

[oracle@bsplinux OPatch]$ ls -l

total 92

drwxr-xr-x 2 oracle oinstall  4096 May 22 16:16 docs

-rw-r--r-- 1 oracle oinstall 21576 May  6  2009 emdpatch.pl

drwxr-xr-x 2 oracle oinstall  4096 May 22 16:16 jlib

drwxr-xr-x 5 oracle oinstall  4096 May 22 16:16 ocm

-rwxr-xr-x 1 oracle oinstall  8709 May  6  2009 opatch

-rw-r--r-- 1 oracle oinstall    49 May 22 16:22 opatch.ini

-rw-r--r-- 1 oracle oinstall  2576 May  6  2009 opatch.pl

drwxr-xr-x 4 oracle oinstall  4096 May 22 16:16 opatchprereqs

 

[oracle@bsplinux OPatch]$ ./opatch version

Invoking OPatch 11.1.0.6.6

OPatch Version: 11.1.0.6.6

 

OPatch succeeded.

 

 

11.2.0.1自带的OPatch版本为11.1.0.6.6,我们需要首先升级OPatch。第一步是进行原有OPatch备份。

 

 

[oracle@bsplinux oracle]$ tar zcvf opatch_bk.tar OPatch

OPatch/

OPatch/opatchprereqs/

OPatch/opatchprereqs/prerequisite.properties

(篇幅原因,省略部分内容)

OPatch/jlib/opatchprereq.jar

OPatch/opatch

OPatch/opatch.ini

 

[oracle@bsplinux oracle]$ ls -l | grep opatch

-rw-r--r--  1 oracle oinstall 1187195 Oct 23 19:06 opatch_bk.tar

 

 

最新版本的OPatch可以从MOS上面下载到,补丁文件名称为:p6880880_112000_LINUX.zip(For Linux 32)。

 

 

[oracle@bsplinux upload]$ ls -l | grep p688

-rw-r--r-- 1 root root  32510812 Oct 23 19:58 p6880880_112000_LINUX.zip

 

--解压到ORACLE_HOME目录上

[oracle@bsplinux upload]$ unzip p6880880_112000_LINUX.zip -d $ORACLE_HOME

Archive:  p6880880_112000_LINUX.zip

   creating: /u01/app/oracle/OPatch/oplan/

 (篇幅原因,省略部分……)

  inflating: /u01/app/oracle/OPatch/crs/s_crsconfig_defs 

  inflating: /u01/app/oracle/OPatch/crs/s_crsconfig_lib.pm   

 

 

之后,验证OPatch安装成功。

 

 

[oracle@bsplinux OPatch]$ ./opatch version

OPatch Version: 11.2.0.3.0

OPatch succeeded.

[oracle@bsplinux OPatch]$

 

 

3、补丁安装

 

如果OPatch不是最新的版本,直接安装PSU可能会有各种的问题。更新OPatch之后,我们就可以下载对应的PSU进行更新。

 

 

[oracle@bsplinux upload]$ ls -l | grep p12

-rw-r--r-- 1 root root  18510829 Oct 23 19:35 p12419378_112010_LINUX.zip

 

[oracle@bsplinux upload]$ unzip p12419378_112010_LINUX.zip -d $ORACLE_HOME

(省略)

 

[oracle@bsplinux oracle]$ cd 12419378/

[oracle@bsplinux 12419378]$ ls -l

total 60

drwxr-xr-x  3 oracle oinstall  4096 Jul  8  2011 custom

drwxr-xr-x  4 oracle oinstall  4096 Jul  8  2011 etc

drwxr-xr-x 12 oracle oinstall  4096 Jul  8  2011 files

-rwxr-xr-x  1 oracle oinstall  2871 Jul  8  2011 patchmd.xml

-rw-rw-r--  1 oracle oinstall 40790 Jul 18  2011 README.html

-rw-r--r--  1 oracle oinstall    21 Jul  8  2011 README.txt

 

 

将数据库和监听程序关闭。

 

 

[oracle@bsplinux OPatch]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.1.0 Production on Tue Oct 23 19:26:11 2012

 

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

 

SQL> conn / as sysdba

Connected.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> quit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

[oracle@bsplinux OPatch]$ lsnrctl stop

 

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 23-OCT-2012 19:26:55

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

The command completed successfully

 

 

进入安装目录,使用OPatch进行更新。

 

 

[oracle@bsplinux oracle]$ ls -l | grep 1241

drwxr-xr-x  5 oracle oinstall    4096 Jul  8  2011 12419378

[oracle@bsplinux oracle]$ cd 12419378/

[oracle@bsplinux 12419378]$

 

[oracle@bsplinux 12419378]$ $ORACLE_HOME/OPatch/opatch apply

Oracle Interim Patch Installer version 11.2.0.3.0

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

 

Oracle Home       : /u01/app/oracle

Central Inventory : /u01/oraInventory

   from           : /u01/app/oracle/oraInst.loc

OPatch version    : 11.2.0.3.0

OUI version       : 11.2.0.1.0

Log file location : /u01/app/oracle/cfgtoollogs/opatch/12419378_Oct_23_2012_20_02_23/apply2012-10-23_20-02-22PM_1.log

Applying interim patch '12419378' to OH '/u01/app/oracle'

Verifying environment and performing prerequisite checks...

Patch 12419378: Optional component(s) missing : [ oracle.client, 11.2.0.1.0 ]

 

All checks passed.

Provide your email address to be informed of security issues, install and

initiate Oracle Configuration Manager. Easier for you if you use your My

Oracle Support Email address/User Name.

Visit http://www.oracle.com/support/policies.html for details.

Email address/User Name: realkid4@126.com

Provide your My Oracle Support password to receive security updates via your My Oracle Support account.

Password (optional):          

Unable to establish connection to Oracle Configuration Manager server.

Hostname (https://ccr.oracle.com) is unknown.

 

Unable to establish a network connection to Oracle. Specify the URL for an

Oracle Support Hub in this format:

    http[s]://<OracleSupportHubHost>:<OracleSupportHubPort>

If you do not wish to configure OCM through an Oracle Support Hub, enter NONE

Oracle Support Hub URL:

Invalid Oracle Support Hub address specified ().

 

Unable to establish a network connection to Oracle. Specify the URL for an

Oracle Support Hub in this format:

    http[s]://<OracleSupportHubHost>:<OracleSupportHubPort>

If you do not wish to configure OCM through an Oracle Support Hub, enter NONE

Oracle Support Hub URL:

Invalid Oracle Support Hub address specified ().

 

Unable to establish a network connection to Oracle. Specify the URL for an

Oracle Support Hub in this format:

    http[s]://<OracleSupportHubHost>:<OracleSupportHubPort>

If you do not wish to configure OCM through an Oracle Support Hub, enter NONE

Oracle Support Hub URL:

Invalid Oracle Support Hub address specified ().

 

Unable to establish a network connection to Oracle. Specify the URL for an

Oracle Support Hub in this format:

    http[s]://<OracleSupportHubHost>:<OracleSupportHubPort>

If you do not wish to configure OCM through an Oracle Support Hub, enter NONE

Oracle Support Hub URL: NONE

 

Unable to establish a network connection to Oracle. If your systems require a

proxy server for outbound Internet connections, enter the proxy server details

in this format:

    [<proxy-user>@]<proxy-host>[:<proxy-port>]

If you want to remain uninformed of critical security issues in your

configuration, enter NONE

Proxy specification: NONE

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.

(Oracle Home = '/u01/app/oracle')

Is the local system ready for patching? [y|n]y

User Responded with: Y

Backing up files...

Patching component oracle.rdbms.rsf, 11.2.0.1.0...

Patching component oracle.rdbms.dbscripts, 11.2.0.1.0...

Patching component oracle.rdbms, 11.2.0.1.0...

Patching component oracle.rdbms.dv, 11.2.0.1.0...

Patching component oracle.xdk.rsf, 11.2.0.1.0...

Patching component oracle.ldap.rsf.ic, 11.2.0.1.0...

Patching component oracle.ldap.rsf, 11.2.0.1.0...

Patching component oracle.sysman.plugin.db.main.repository, 11.2.0.1.0...

 

Verifying the update...

Patch 12419378 successfully applied

Log file location: /u01/app/oracle/cfgtoollogs/opatch/12419378_Oct_23_2012_20_02_23/apply2012-10-23_20-02-22PM_1.log

OPatch succeeded.

 

 

启动数据库,确定更新成功。

 

 

[oracle@bsplinux ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Tue Oct 23 20:28:00 2012

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

 

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup

ORACLE instance started.

 

Total System Global Area  422670336 bytes

Fixed Size                  1336960 bytes

Variable Size             327158144 bytes

Database Buffers           88080384 bytes

Redo Buffers                6094848 bytes

Database mounted.

Database opened.

 

SQL> @?/rdbms/admin/catbundle.sql psu apply

PL/SQL procedure successfully completed.

 

 

4、确定补丁成功

 

最后我们需要确定补丁安装成功。对小补丁的升级来说,我们是不能够v$version视图中看到的。

 

 

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 – Production

 

 

通过OPatch的信息库记录,可以看到补丁信息。

 

 

[oracle@bsplinux ~]$ $ORACLE_HOME/OPatch/opatch lsinventory

Oracle Interim Patch Installer version 11.2.0.3.0

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

 

Oracle Home       : /u01/app/oracle

Central Inventory : /u01/oraInventory

   from           : /u01/app/oracle/oraInst.loc

OPatch version    : 11.2.0.3.0

OUI version       : 11.2.0.1.0

Log file location : /u01/app/oracle/cfgtoollogs/opatch/opatch2012-10-23_20-34-59PM_1.log

 

Lsinventory Output file location : /u01/app/oracle/cfgtoollogs/opatch/lsinv/lsinventory2012-10-23_20-34-59PM.txt

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

Installed Top-level Products (1):

Oracle Database 11g                                                  11.2.0.1.0

There are 1 products installed in this Oracle Home.

 

 

Interim patches (1) :

Patch  12419378     : applied on Tue Oct 23 20:24:06 CST 2012

Unique Patch ID:  13710328

   Created on 8 Jul 2011, 02:48:54 hrs PST8PDT

   Bugs fixed: (修复Bug的编号)

     9068088, 9363384, 8865718, 8898852, 8801119, 9054253, 8725286, 8974548

     9093300, 8909984, 8755082, 8780372, 9952216, 8664189, 8769569, 7519406

     9302343, 9471411, 8822531, 7705591, 8650719, 10205230, 9637033, 8883722

     8639114, 8723477, 8729793, 8919682, 8856478, 9001453, 8733749, 8565708

     8735201, 8684517, 8870559, 8773383, 8981059, 8812705, 9488887, 12534742

     8813366, 12534743, 9242411, 12534745, 12534746, 12534747, 8822832

     12534748, 8897784, 8760714, 12534749, 8775569, 8671349, 8898589, 9714832

     8642202, 9011088, 9369797, 9170608, 9165206, 8834636, 8891037, 8431487

     8570322, 8685253, 8872096, 8718952, 8799099, 12534750, 9032717, 9399090

     12534751, 12534752, 9713537, 9546223, 12534753, 12534754, 8588519

     8783738, 12534755, 12534756, 8834425, 9454385, 8856497, 8890026, 8721315

     10248516, 8818175, 8674263, 10249532, 9145541, 8720447, 9272086, 9467635

     9010222, 9102860, 9197917, 8991997, 8661168, 8803762, 12419378, 8769239

     9654983, 8706590, 8546356, 10408903, 8778277, 9058865, 8815639, 11724991

     9971778, 9971779, 9027691, 9454036, 9454037, 9454038, 8761974, 9255542

     9275072, 8496830, 8702892, 8818983, 8475069, 8875671, 9328668, 8891929

     8798317, 9971780, 8782959, 8774868, 8820324, 8544696, 8702535, 9952260

     9406607, 8268775, 9036013, 9363145, 8933870, 8405205, 9467727, 8822365

     9676419, 11724930, 8761260, 8790767, 8795418, 8913269, 8717461, 8861700

     9531984, 8607693, 8780281, 8330783, 8784929, 8780711, 9341448, 9015983

     10323077, 8828328, 9119194, 10323079, 8832205, 8717031, 8665189, 9482399

     9676420, 9399991, 8821286, 8633358, 9321701, 9655013, 9231605, 8796511

     9167285, 8782971, 8756598, 8703064, 9390484, 9066116, 9007102, 9461782

     10323080, 10323081, 10323082, 8753903, 8505803, 9382101, 9352237, 9216806

     8918433, 11794163, 9057443, 8790561, 11794164, 8733225, 8795792, 11794165

     11794167, 9067282, 8928276, 8837736, 9210925

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

 

OPatch succeeded.

[oracle@bsplinux ~]$

 

 

在dba_registry_history中,我们也可以看到记录。

 

 

SQL> select version, id, bundle_series, comments from dba_registry_history;

 

VERSION            ID BUNDLE_SER COMMENTS

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

11.2.0.1            6 PSU        PSU 11.2.0.1.6

 

 

5、结论

 

打补丁、升级数据库是DBA的基本功之一。本文主要介绍了OPatch进行的最简单的补丁升级,权当记录之用。

 

时间: 2024-09-22 04:47:41

使用OPatch给Oracle打补丁的相关文章

Oracle Patch补丁体系和如何打补丁

Oracle作为大型商用关系型数据库,从其补丁体系就可以看出其考虑的全面性.首先我们看下Oracle Patch的主要类型[参考1和2]: Version/维护版本 针对前一个维护版本的所有补丁进行整理,增加新的功能或对软件有较大的改动,进行整体测试,得到一个软件版本"包",称为版本Version.比如 11.2. One-off patches (e.g. a bug fix) One-off patches也称之为一次性补丁,通常针对特定的版本数据库或运行平台.此类补丁通常较小,使

创纪录!Oracle关键补丁更新修复关键漏洞曝光

本季度的Oracle关键补丁更新(CPU)提供了创纪录的276个漏洞的修复,其中包含高达19个CVSS 3.0评分为9.8的漏洞,所有这些漏洞都可远程利用而无需身份验证. 7月Oracle修复的漏洞完败1月份创下的248个记录.如今,这批漏洞已经被很好地修复,其中包含159个可被远程利用而无需身份验证的漏洞. ERPScan的研究团队在博客中指出,本季度Oracle关键补丁更新修复了影响Oracle最关键业务应用的漏洞.这些应用包括Oracle E-Business Suite.Oracle F

ORACLE查看补丁出现“OPatch failed with error code 1”

案例场景:               在Oracle Linux Server release 5.7上安装完ORACLE 10g后,顺便将PSR(Patch Set Release)p6810189_10204_Linux-x86-64.zip也安装了.结果在查看补丁时出现了下面情况 [oracle@DB-Server OPatch]$ ./opatch lsinventory Invoking OPatch 10.2.0.4.2 Oracle Home Path specified is

ORACLE查看补丁出现&amp;ldquo;OPatch failed with error code 1&amp;rdquo;

案例场景:               在Oracle Linux Server release 5.7上安装完ORACLE 10g后,顺便将PSR(Patch Set Release)p6810189_10204_Linux-x86-64.zip也安装了.结果在查看补丁时出现了下面情况 [oracle@DB-Server OPatch]$ ./opatch lsinventory Invoking OPatch 10.2.0.4.2 Oracle Home Path specified is

oracle数据库补丁列表查询

  [oraprod@db01 oraprod ]$ sqlplus "/as sysdba" SQL*Plus: Release 11.1.0.7.0 - Production on Mon Mar 17 14:36:41 2014 Copyright (c) 1982, 2008, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0

Oracle安全补丁大爆发:一月发布248个破纪录

Oracle甲骨文公司昨天发布了2016年1月"关键补丁更新",这次发布安全补丁的数量创下历次之最,共有248枚.比上次"记录",2015年7月的198枚整整多了50枚. 这次发现的漏洞基本上都集中在企业和云产品上,对于MySQL.Java和Oracle数据库等旗舰产品影响非常小.这些补丁中的78枚涉及电子商务套件(EBS),这个软件在此前基本都能保持较低的补丁安装量,本次一下子安装这么多是由于它使用了Adobe Flash Player 20.0.0.228,因此

专家观点:Oracle更新补丁应加快节奏

Oracle在季度更新中修复了154个漏洞.专家表示其应该更快更新补丁,不过Oracle依旧维持其更新现状. Oracle在其新的季度更新中对超过50款产品修复了154个漏洞,不过专家称Oracle应该加快其更新节奏,至少是为了那些销量比较好的产品. 本次更新中,Java和融合中间件修复最多,分别修复25个和23个.特别是Java漏洞风险最大,根据Oracle的说法,25个修复中有24个漏洞可被在没有身份验证的情况下进行远程利用.而融合中间件的23的漏洞中有16个可被远程利用. Oracle软件

【Oracle】Opatch 工具介绍

Opatch 是oracle公司开发的安装,卸载,检测patch冲突的工具,管理oracle所有已经安装的补丁! opatch命令格式为: opatch < command > [< command_options >] [ -h[elp] ] oracle@rac3:/home/oracle/opatch/9472669>$ORACLE_HOME/OPatch/opatch -h Oracle 中间补丁程序安装程序版本 11.2.0.1.9 版权所有 (c) 2011, O

【RAC】11gR2 rac 上滚动安装/回退补丁

在RAC环境上安装小补丁时,可以使用滚动安装的方式(Rolling)以提供无间断的业务应用!在安装补丁的时候,先停止一个数据库实例,在此节点安装补丁,然后启动这个实例,再停止另一个实例并安装这个补丁,这样能够保证一直有可用的数据库实例,业务能够无间断提供服务!    使用滚动安装的前提是这个补丁是可以Rolling安装的,对于如何判断一个补丁是Rolling的,下面的文章中会提到. 一般来说,大体的Rolling安装的方式如下: 1. 下载补丁. 2. 打补丁之前,最好做一下数据库的备份. 3.