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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29523859/viewspace-1331155/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29523859/viewspace-1331155/