Oracle数据库PSU补丁安装

任何软件都存在缺陷或者bug,出现问题后一般通过补丁解决。Oracle也不例外,对于一个全新的oracle数据库,在正式投入生产前,进行较新 补丁或者补丁集安装时很有必要的。因为Oralce补丁概念以及分类繁多 进入正题之前先对其进行简单的了解。

补丁分类介绍

   参考:References: New Patch Nomenclature for Oracle Products [ID 1430923.1]
1.Release
    标准产品发布, 如Oracle Database 11g Release 2的第一个发行版本为11.2.0.1。关于Release对应的格式说明,官方文档有相关说明:
    
2.Critical Patch Update
    俗称CPU,主要为了修复安全方面的补丁,每季度发布一次。自2012年10月起,CPU更名为Security Patch Update(SPU)
     
3.Patch Set Update
    这个就是俗称的PSU,每季度更新一次。Oracle选取每季度用户下载数量最多,并且验证为较低风险的补丁放到每季度的PSU中,修复比较严重的一些问题。PSU中包含每季度的CPU,且是累积型的。
      
    虽然在描述PSU的时候会用到数据库版本第5位,比如Database PSU 11.2.0.3.5,但实际上打完PSU后并不会真正改变数据库的版本,从v$version中看到的版本还是4位的(11.2.0.3.0),第5位仍然是
0
4.Bundle Patch
    Windows和Exadata没有CPU(SPU)和PSU,对于这两种环境,Oracle使用Bundle Patch来代替PSU。
5.Composite Patch
   2012年新推出的概念,这是一种新型的补丁包,不同于其他的累积型补丁包。如果是第一次安装Composite Patches,那么该Composite Patches所包括的全部补丁都会被安装,后续安装的Composite Patches,只会安装对比前一次Composite Patches有变化的部分和新增加的补丁。 新的Composite Patches格式,使以前PSU应用的overlay patches和新安装的PSU并存成为可能
  Patch  16056266     : applied on Wed Jun 05 00:14:09 GMT+08:00 2013 
Unique Patch ID:  15978825 
Patch description:  "Database Patch Set Update : 11.2.0.3.6 (16056266)"                               ===>变化或者新增部分
   Created on 13 Mar 2013, 05:49:56 hrs PST8PDT 
Sub-patch  14727310; "Database Patch Set Update : 11.2.0.3.5 (14727310)"                        ===>Sub-patch已经安装的部分
Sub-patch  14275605; "Database Patch Set Update : 11.2.0.3.4 (14275605)"                        ===>Sub-patch已经安装的部分
Sub-patch  13923374; "Database Patch Set Update : 11.2.0.3.3 (13923374)"                        ===>Sub-patch已经安装的部分
Sub-patch  13696216; "Database Patch Set Update : 11.2.0.3.2 (13696216)"                        ===>Sub-patch已经安装的部分
Sub-patch  13343438; "Database Patch Set Update : 11.2.0.3.1 (13343438)"                     ===>Sub-patch已经安装的部分

现阶段PSU,SPU(CPU)以及Bundle Patch请调阅oracle官方文档:
Quick Reference to Patch Numbers for Database/GI PSU, SPU(CPU), Bundle Patches and Patchsets (文档 ID 1454618.1)

PSU升级补丁

全新的数据库安装好后,一般通过PSU(Composite Patch)进行补丁的安装或升级,下面利用测试环境进行实验:
1)现在环境:

opatch lsinventory输出信息如下:


2)升级步骤
计划升级到Oracle 11.2.0.3 PSU6,根据操作系统类别登录官网下载介质:p16056266_112030_Linux-x86-64.zip
根据文档说明进行升级
a)关闭数据库实例,若多个实例,请逐个关闭
 ps -ef | grep pmon                       ---确定实例个数
 export ORACLE_SID=SID_NAME
 sqlplus / as sysdba
 shutdown immediate;
b)关闭监听
    lsnrctl stop
c)设置环境变量
  export PATH=$PATH:$ORACLE_HOME/OPatch:/usr/ccs/bin
  export LANG=C
d)冲突检测
  unzip p16056266_112030_Linux-x86-64.zip 
  opatch prereq CheckConflictAgainstOHWithDetail -ph 16056266
  上述命令执行后,报"OPatch failed with error code 135",经确认为OPatch版本太低造成。
  经OPatch版本升级为11.2.0.3.4(OPatch具体升级步骤及介质请自行官网下载),再次进行冲突检测,无报错。
  
e)安装补丁
cd 16056266
opatch apply

本来以为很顺利呢,结果opatch apply命令回车后,还是报错了。很奇怪,instance和listener都事先关闭了,怎么还提示占用。
下面fuser、lsof派上用场

点击(此处)折叠或打开

  1. oracle@linux-qtx3:~/16056266> fuser /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
  2. /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: 14749m
  3. oracle@linux-qtx3:~/16056266> lsof /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
  4. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  5. sqlplus 14749 oracle mem REG 8,2 52863778 1501333 /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
原来某个sqlplus还在访问 libclntsh.so.11.1,数据库实例已经shutdown了,sqlplus再连接也没有什么用了,退出sqlplus,再次执行opatch apply

上述输出日志中可能包含以下warning,参考mos文章( Opatch warning: overriding commands for target xxxx (文档 ID 1448337.1) )可忽略。
ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/u01/app/oracle/product/11.2.0/db_1/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
/u01/app/oracle/product/11.2.0/db_1/precomp/lib/ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/u01/app/oracle/product/11.2.0/db_1/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
因机器配置不同,opatch apply执行时间相异,本测试环境整个过程大约5分钟左右。
f)执行脚本进行实例升级,若多个实例,请逐个升级
  export ORACLE_SID= SID_NAME
 sqlplus / as sysdba
 SQL>startup;
 SQL>@?/rdbms/admin/catbundle.sql psu apply
 SQL>@ ?/rdbms/admin/ utlrp.sql

3)升级验证
安装好补丁后,通过如下命令来查看已安装的补丁:
opatch inventory
若输出以下信息证明安装成功。
Interim patches (1) :


Patch  16056266     : applied on Tue Mar 21 03:01:46 GMT-05:00 2017
Unique Patch ID:  15962803
Patch description:  "Database Patch Set Update : 11.2.0.3.6 (16056266)"
   Created on 12 Mar 2013, 02:14:47 hrs PST8PDT
Sub-patch  14727310; "Database Patch Set Update : 11.2.0.3.5 (14727310)"
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)"

另外也可查询dba_registry_history进行确认,下图中新增了一条PSU 11.2.0.3.6的记录。



至此,整个PSU升级验证成功。


 









来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29827284/viewspace-2135768/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29827284/viewspace-2135768/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值