Oracle 更新Opatch、打补丁
1.更新Opatch;
2.打补丁;
3.grid 打补丁;
1.更新Opatch(实验版本:oracle:11.2.0.3.0):
默认安装数据库后,在ORACLE_HOME 下会有个OPatch 文件夹,更新前先检查当前Opatch 版本:
1: [oracle@sywu2 OPatch]$ ./opatch lsinventory
2: Invoking OPatch 11.2.0.1.7
3:
4: Oracle 中间补丁程序安装程序版本 11.2.0.1.7
5: 版权所有 (c) 2011, Oracle Corporation。保留所有权利。
6:
7:
8: Oracle Home : /s01/app/oracle/product/11.2.0/dbhome_1
9: Central Inventory : /g01/oraInventory
10: from : /etc/oraInst.loc
11: OPatch version : 11.2.0.1.7
12: OUI version : 11.2.0.3.0
13: Log file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2014-06-27_23-03-26下午.log
注:有些时候产品清单加载失败,会导致打补丁时出错
1: [sywu@sywu OPatch]$ ./opatch lsinventory
2: Invoking OPatch 11.1.0.6.6
3:
4: Oracle 中间补丁程序安装程序版本 11.1.0.6.6
5: 版权所有 (c) 2009, Oracle Corporation。保留所有权利。
6:
7:
8: Oracle 主目录 : /u01/app/product/11.2.0/db_1
9: 主产品清单: /g01/oraInventory
10: 从 : /etc/oraInst.loc
11: OPatch 版本 : 11.1.0.6.6
12: OUI 版本 : 11.2.0.1.0
13: OUI 位置 : /u01/app/product/11.2.0/db_1/oui
14: 日志文件位置 : /u01/app/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2014-06-27_21-51-13下午.log
15:
16: Patch history file: /u01/app/product/11.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
17:
18: List of Homes on this system:
19:
20: Home name= Ora11g_gridinfrahome1, Location= "/g01/11ggrid/11.2.0/grid"
21: Home name= OraDb11g_home1, Location= "/s01/app/oracle/product/11.2.0/dbhome_1"
22:
产品清单加载失败... OPatch cannot load inventory for the given Oracle Home.
23: Possible causes are:
24: Oracle Home dir. path does not exist in Central Inventory
25: Oracle Home is a symbolic link
26: Oracle Home inventory is corrupted
27: LsInventorySession 失败: OracleHomeInventory gets null oracleHomeInfo
28:
29: OPatch failed with error code 73
解决方法:
1)找到产品清单文件,默认安装成功后会在 /etc/oraInst.loc 和oracle 根目录 oraInventory 文件夹下,如果/etc/下没有就到ORACLE 安装根目录找到文件夹:oraInventory,里面有oraInst.loc;复制一个到 /etc下;
2)到$ORACLE_HOME/oui/bin/ 执行如下脚本加载清单:
1: ./runInstaller -silent -attachHome \
2: ORACLE_HOME=$ORACLE_HOME \
3: ORACLE_HOME_NAME="ORACLE_HOME"
3) 加载成功后再次到OPatch目录下执行 ./opatch lsinventory 确认产品清单加载是否成功;
有些时候你打过补丁,然后删除过$ORACLE_HOME/.patch_storage 下的文件,下次重新再打补丁是可能会报:"OracleHomeInventory 无法创建锁文件",怎么处理都不行,也并不是操作权限问题:
1: [grid@sywu2 shared]$ opatch lsinventory
2:
3: Oracle 中间补丁程序安装程序版本 11.2.0.3.3
4: 版权所有 (c) 2012, Oracle Corporation。保留所有权利。
5:
6:
7: Oracle Home : /g01/11ggrid/11.2.0/grid
8: Central Inventory : /g01/oraInventory
9: from : /g01/11ggrid/11.2.0/grid/oraInst.loc
10: OPatch version : 11.2.0.3.3
11: OUI version : 11.2.0.3.0
12: Log file location : /g01/11ggrid/11.2.0/grid/cfgtoollogs/opatch/opatch2014-06-28_16-51-09下午_1.log
13:
14:
OracleHomeInventory 无法创建锁文件, 可能是由于 OPatch 会话失败。加载的产品清单可能无法正确显示 Oracle 主目录中的内容。
15: 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 文件:
1: [grid@sywu2 shared]$ ls -las $ORACLE_HOME/.patch_storage
2: 总用量 32
3: 4 drwxr-x--- 4 grid oinstall 4096 6月 28 16:55 .
4: 4 drwxr-xr-x 68 grid oinstall 4096 6月 28 16:55 ..
5: 4 drwxr-xr-x 5 grid oinstall 4096 6月 28 11:18 15876003_Jan_11_2013_06_19_07
6: 4 -rw-r--r-- 1 grid oinstall 1949 6月 28 11:18 interim_inventory.txt
7: 4 -rw-r--r-- 1 grid oinstall 93 6月 28 11:18 LatestOPatchSession.properties
8: 4 drwxr-xr-x 3 grid oinstall 4096 6月 28 11:17 NApply
9: 4 -rw-r--r-- 1 grid oinstall 56 6月 28 11:18 patch_locked
10: 4 -rw-r--r-- 1 grid oinstall 52 6月 28 11:18 record_inventory.txt
2)如果有,将patch_locked 文件命名为其它名或移走,然后再次尝试 opatch lsinventory:
1: [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
2: [grid@sywu2 shared]$ opatch lsinventory
1.1 更新前先备份原来的Opatch:
1: [oracle@sywu2 dbhome_1]$ tar -cvf Opatch_20140627.tar OPatch
1.2 解压新版Opatch 文件到$ORACLE_HOME 目录下:
1: [oracle@sywu2 dbhome_1]$ /tmp/unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
2: Archive: p6880880_112000_Linux-x86-64.zip
3: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/
4: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.html
5: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/README.txt
6: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/
7: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oplan.jar
8: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/oracle.oplan.classpath.jar
9: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/automation.jar
10: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/OsysModel.jar
11: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/EMrepoDrivers.jar
12: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/Validation.jar
13: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/ValidationRules.jar
14: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/osysmodel-utils.jar
15: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/CRSProductDriver.jar
16: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/
17: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/apache-commons/commons-cli-1.0.jar
18: creating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/
19: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/activation.jar
20: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-api.jar
21: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jaxb-impl.jar
22: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/jlib/jaxb/jsr173_1.0_api.jar
23: inflating: /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/oplan/oplan
24: replace /s01/app/oracle/product/11.2.0/dbhome_1/OPatch/docs/FAQ? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
25: .............
1.3 确认OPatch 更新是否成功:
1: [oracle@sywu2 OPatch]$ ./opatch version
2: OPatch Version: 11.2.0.3.3
3:
4: OPatch succeeded.
可能会有未知错误,如版本问题,操作前一定记得备份原来的OPatch;
2.打补丁:
打补丁前要关闭数据库实例、监听程序,补丁要与更新的OPatch对应:
2.1 解压补丁文件到$ORACLE_HOME 目录下:
1: [oracle@sywu2 OPatch]$ unzip /tmp/p14727310_112030_Linux-x86-64.zip -d $ORACLE_HOME
2: [oracle@sywu2 dbhome_1]$ cd 14727310/
3: [oracle@sywu2 14727310]$ ls
4: 13343438 13696216 13923374 14275605 14727310 patchmd.xml README.html README.txt
README.html 文件上有介绍打补丁方法,打补丁前先查看一下;
开始打补丁:
1: [oracle@sywu2 14727310]$ $ORACLE_HOME/OPatch/opatch apply
2.2 将变更的 SQL Files 导入数据库:
1: [oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin
2: [oracle@sywu2 admin]$ sqlplus / as sysdba
3: SQL> @catbundle.sql psu apply
打补丁信息在 V$version 视图中是查询不到的,要通过 dba_registry_history 视图查询:
1: SQL> select action_time,action,namespace,version,bundle_series,comments from dba_registry_history;
2:
3: ACTION_TIME ACTION NAMESPACE VERSION
4: --------------------------------------------------------------------------- ---------- ---------- ------------------------------
5: BUNDLE_SERIES COMMENTS
6: ------------------------------ --------------------
7: 02-MAY-14 11.12.11.444913 PM APPLY SERVER 11.2.0.3
8: PSU Patchset 11.2.0.2.0
9:
10: 27-JUN-14 11.42.54.320914 PM APPLY SERVER 11.2.0.3
查询具体的Opatch 版本信息和补丁信息
1: [oracle@sywu OPatch]$ cd $ORACLE_HOME/OPatch
2: [oracle@sywu OPatch]$ ./opatch lsinventory
3:
4: Oracle 中间补丁程序安装程序版本 11.2.0.3.3
5: 版权所有 (c) 2012, Oracle Corporation。保留所有权利。
6:
7:
8: Oracle Home : /s01/app/oracle/product/11.2.0/dbhome_1
9: Central Inventory : /g01/oraInventory
10: from : /s01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
11: OPatch version : 11.2.0.3.3
12: OUI version : 11.2.0.3.0
13: Log file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2014-06-28_00-03-04上午_1.log
14:
15: Lsinventory Output file location : /s01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2014-06-28_00-03-04上午.txt
16:
17: --------------------------------------------------------------------------------
18: 已安装的顶级产品 (1):
19:
20: Oracle Database 11g 11.2.0.3.0
21: 此 Oracle 主目录中已安装 1 个产品。
22:
23:
24: 中间补丁程序 (1) :
25:
26: Patch 14727310 : applied on Fri Jun 27 22:35:15 CST 2014
27: Unique Patch ID: 15663328
28: Patch description: "Database Patch Set Update : 11.2.0.3.5 (14727310)"
29: Created on 27 Dec 2012, 00:06:30 hrs PST8PDT
30: Sub-patch 14275605; "Database Patch Set Update : 11.2.0.3.4 (14275605)"
31: Sub-patch 13923374; "Database Patch Set Update : 11.2.0.3.3 (13923374)"
32: Sub-patch 13696216; "Database Patch Set Update : 11.2.0.3.2 (13696216)"
33: Sub-patch 13343438; "Database Patch Set Update : 11.2.0.3.1 (13343438)"
34: Bugs fixed:
35: 13566938, 13593999, 10350832, 14138130, 12919564, 13624984, 13588248
36: 13080778, 13804294, 14258925, 12873183, 13645875, 12880299, 14664355
37: 14409183, 12998795, 14469008, 13719081, 13492735, 12857027, 14263036
38: 14263073, 13742433, 13732226, 12905058, 13742434, 12849688, 12950644
39: 13742435, 13464002, 12879027, 13534412, 14613900, 12585543, 12535346
40: 12588744, 11877623, 12847466, 13649031, 13981051, 12582664, 12797765
41: 14262913, 12923168, 13612575, 13384182, 13466801, 13484963, 11063191
42: 13772618, 13070939, 12797420, 13041324, 12976376, 11708510, 13742437
43: 13026410, 13737746, 13742438, 13326736, 13001379, 13099577, 14275605
44: 13742436, 9873405, 9858539, 14040433, 12662040, 9703627, 12617123
45: 12845115, 12764337, 13354082, 13397104, 12964067, 13550185, 12780983
46: 12583611, 14546575, 13476583, 15862016, 11840910, 13903046, 15862017
47: 13572659, 13718279, 13657605, 13448206, 13419660, 14480676, 13632717
48: 14063281, 13430938, 13467683, 13420224, 14548763, 12646784, 14035825
49: 12861463, 12834027, 15862021, 13377816, 13036331, 14727310, 13685544
50: 13499128, 15862018, 12829021, 15862019, 12794305, 14546673, 12791981
51: 13503598, 13787482, 10133521, 12718090, 13399435, 14023636, 12401111
52: 13257247, 13362079, 12917230, 13923374, 14480675, 13524899, 13559697
53: 14480674, 13916709, 14076523, 13773133, 13340388, 13366202, 13528551
54: 12894807, 13343438, 13454210, 12748240, 14205448, 13385346, 15853081
55: 12971775, 13035804, 13544396, 13035360, 14062795, 12693626, 13332439
56: 14038787, 14062796, 12913474, 14841409, 14390252, 13370330, 14062797
57: 13059165, 14062794, 12959852, 13358781, 12345082, 12960925, 9659614
58: 13699124, 14546638, 13936424, 13338048, 12938841, 12658411, 12620823
59: 12656535, 14062793, 12678920, 13038684, 14062792, 13807411, 12594032
60: 13250244, 15862022, 9761357, 12612118, 13742464, 14052474, 13457582
61: 13527323, 15862020, 12780098, 13502183, 13705338, 13696216, 10263668
62: 15862023, 13554409, 15862024, 13103913, 13645917, 14063280, 13011409
3.grid 打补丁:
打补丁前同样的先关掉实例、监听程序,停止相关服务释放资源:
1: [grid@sywu2 15876003]$ su -l root
2: 密码:
3: [root@sywu2 install]# cd $GRID_HOME/crs/install
4: [root@sywu2 install]# ./rootcrs.pl -unlock
切换到grid 用户下解压补丁、打补丁(补丁文件:p14727347_112030_Linux-x86-64.zip,该补丁文件包含了db补丁和grid补丁):
1: [grid@sywu2 shared]$ unzip p14727347_112030_Linux-x86-64.zip -d /tmp/
2: [grid@sywu2 tmp]$ cd 15876003/
3: [grid@sywu2 15876003]$ ls
4: 14727310 15876003 bundle.xml README.html README.txt
5: [grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/14727310/
然后根据相关提示操作;14打完再打15876003 grid 补丁:
1: [grid@sywu2 15876003]$ opatch napply -oh $GRID_HOME -local /tmp/15876003/15876003/
打完grid 补丁后切换到oracle 用户下打db补丁:
1: [grid@sywu2 ~]$ su -l oracle
2: [oracle@sywu2 ~]$ /tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME
3: /tmp/15876003/15876003/custom/server/15876003/custom/scripts/prepatch.sh completed successfully.
4:
5: [oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/15876003/custom/server/15876003/
6:
7: [oracle@sywu2 ~]$ opatch napply -oh $ORACLE_HOME -local /tmp/15876003/14727310/
8:
9:
10: [oracle@sywu2 ~]$ /tmp/15876003/15876003/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME
打完db补丁后切换到root用户,完成后续操作和启动相关服务:
1: [oracle@sywu2 ~]$ su -l root
2: [root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/rdbms/install/rootadd_rdbms.sh
3: [root@sywu2 ~]# /g01/11ggrid/11.2.0/grid/crs/install/rootcrs.pl -patch
检查相关服务是否启动;
1: [root@sywu2 ~]# crsctl check crs
2: [root@sywu2 ~]# crsctl stat res -t
这样补丁打完:
1: [grid@sywu grid]$ opatch lspatches
2: 15876003;Grid Infrastructure Patch Set Update : 11.2.0.3.5 (14727347)
3: 14727310;Database Patch Set Update : 11.2.0.3.5 (14727310)
最后启动数据库将变更的 SQL Files 导入数据库:
1: [oracle@sywu2 ~]$ cd $ORACLE_HOME/rdbms/admin
2: [oracle@sywu2 admin]$ sqlplus / as sysdba
3: SQL> @catbundle.sql psu apply
Oracle 更新Opatch、打补丁的更多相关文章
- Oracle 11g New 热补丁
热补丁:概览 对于Oracle 实例上的bug 修复或诊断补丁程序,热补丁 可以执行以下操作: • 安装 • 启用 • 禁用 热补丁:概览 使用热补丁可以安装.启用和禁用 正在运行的 活动Oracle ...
- Oracle 11g RAC 应用补丁简明版
之前总结过<Oracle 11.2.0.4 RAC安装最新PSU补丁>, 这次整理为简明版,忽略一切输出的显示,引入一些官方的说明,增加OJVM PSU的补丁应用. 环境:RHEL6.5 ...
- 【opatch打补丁】oracle10.2.0.5.0升级10.2.0.5.9 for linux
https://wenku.baidu.com/view/c38702b56edb6f1afe001f59.html 这篇文章也不错,可参考 任务:oracle 10.2.0.5.0 打补丁升级 ...
- OPATCH在线补丁
如果补丁中有online目录就是在线补丁,不需要数据库停机,在线的又分集群和非集群,如下 查看readme可以得知在线补丁打法 $ cat README.txt Oracle Database 11g ...
- 【转载】oracle更新语法
oracle更新语法:1.一般语法 update tab set col = .... [where ...] =后可以有子查询,但是必须对于tab的每一列返回唯一一行与之对应,where是需 ...
- oracle 11GR2 单机打补丁PSU 11.2.0.4.180717
上传补丁包,修改权限 su - oracle mdir /tmp/psu mv p6880880_112319_Linux-x86-64.zip /tmp/psu/mv databasepsu1807 ...
- 因为.patch_storage目录丢失,导致opatch打补丁失败
一套新装的ORACLE Restart环境(11.2.0.3.0),计划最新的PSU,在使用opath auto方式安装补丁时报错,表面上的错误信息提示opatch工具不满足版本要求: [root@d ...
- Oracle安装介质及补丁集下载地址
Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XP http://downl ...
- Oracle下载 OPatch
今天被朋友问及,如何下载OPatch ...我当时有些凌乱的.事后想想,人与人的思维是不同的,对待同一个问题,有人觉得很简单,有人觉得无从下手 . 乱不多说了.开始说明下吧. 1. 首先要有一个MOS ...
随机推荐
- Django 的路由分配系统
Django的路由系统 URL配置(URL.conf)就像Django所支撑网站的目录,它的本质是URL与要为该URL调用的视图函数之间的映射表. 我们就是以这种方式告诉Django,遇到哪个URL的 ...
- temple-html5
ylbtech-HTML5: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 9.返回顶部 1 ...
- HTC8X V版 电信上网方法
原始V版电信上网设置,转自百度贴吧(http://tieba.baidu.com/p/3224177802). 修改SIM卡设置 修改MIP_MODE 转自贴吧:http://tieba.baidu. ...
- linux下thinkphp取消调试模式后找不到网页解决方案
1.最大嫌疑是Runtime目录权限不足,导致common~runtime.php文件无法生成, 解决:1.整个Runtime目录删除,让系统重新生成; 2.给Runtime及以下的所有文件足够权限0 ...
- 前段基础之HTML
HTML 初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s ...
- MySql命令集合
1.mysql命令用户连接数据库 mysql命令格式: mysql -h主机地址 -u用户名 -p用户密码 (1) 连接到本机上的MYSQL 首先打开DOS窗口,然后进入目录mysql\bin,再键入 ...
- C 语言 - Unicode 解决中文问题
问题: 打印一句中文 #include <stdio.h> int main() { char str[] = "你好,世界"; printf("%s\n&q ...
- day9-数据库操作与Paramiko模块
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 ...
- 初始mysql语句
操作文件夹(库) 增 : create database db1 charset utf8; 查 : #查看当前创建的数据库 show create database db1; #查看所有的数据库 s ...
- 如何查找EI 及SCI 索引
1.EI https://www.engineeringvillage.com/search/quick.url 搜题目,然后点击搜索,然后点击细节(detailed) Accession numbe ...