什么是CPU/PSU

Oracle CPU的全称是Critical Patch Update, Oracle对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患。
Oracle PSU的全称是Patch Set Update,
Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多,且被验证过具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复而且还包含了最新的CPU。PSU通常随CPU一起发布。

CPU是累积的(Cumulative),即最新的CPU补丁已经包含以往的CPU补丁,所以只要安装最新的CPU补丁即可。
PSU通常也是增量的,大部分PSU可以直接安装,但有些PSU则必须要求安装了上一 个版本的PSU之后才能继续安装,要仔细看各个PSU的Readme文档。

如何下载CPU/PSU


注意:要下载CPU/PSU,必须要有Oracle Support账号才行!
到Oracle CPU主页 ,可以看到每个季度发布的CPU补丁列表(如下图所示),根据你的需要选择相应的CPU补丁即可,这里选择July2011年的补丁。


每个补丁只针对特定的数据库版本,你要找到对应的数据库版本(如下图所示),这里的数据库版本为11.2.0.1,如果找不到,说明该补丁不支持该版本数据库。


右边点击Database链接,就是该补丁的一个详细说明文档,找到3.1.3 Oracle Database,并点击相应的数据库版本(如下图所示)


在相应的数据库版本里,可以看到各个平台下CPU和PSU版本号,前面已经说过,PSU包含CPU,所以建议尽量安装PSU,注意:这里的UNIX平台也包括Linux


点击上面的版本号,会自动跳到Oracle Support下载页面,如下图所示。选择相应的平台后,点击Readme可以查看Readme文档,点击Download下载

阅读Readme文档


每个CPU/PSU都有一个Readme文档,关于该CPU/PSU的所有信息都在Readme文档里,一定要仔细阅读。
有两个部分要特别注意:
1)OPatch的版本,你可以通过opatch version命令查看Oracle Home当前的OPatch版本,如果低于Readme规定的最低版本,一定要先升级OPatch才能打补丁。
可以参考这篇文章《OPatch - Where Can I Find the Latest Version of OPatch? [Video] [ID 224346.1]》下载最新的OPatch。
2)打Patch步骤:基本上所有的CPU/PSU都大同小异,具体步骤将在下面的例子中展示。

安装CPU/PSU补丁


1)事先检查:查看数据库打补丁前信息,保留现场
在打补丁前最好把数据库的一些基本信息保留下来,以备不时之需。
set line 150
set pagesize 99
col action_time for a30
col action for a30
col comments for a90
col object_name for a30
col object_type for a30
col comp_name for a50
col comp_id for a20
--查看实例名
sys@ORCL>select instance_name,status from v$instance; INSTANCE_NAME STATUS
---------------- ------------
orcl OPEN
--查看数据库版本
sys@ORCL>select * from v$version; BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit 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
--查看数据库大小
sys@ORCL>select sum(bytes)/1024/1024||'M' from dba_segments; SUM(BYTES)/1024/1024||'M'
-----------------------------------------
68058.375M
--查看组件信息
sys@ORCL>select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY; COMP_ID COMP_NAME VERSION STATUS
-------------------- -------------------------------------------------- ------------------------------ ----------------------
OWB OWB 11.2.0.1.0 VALID
APEX Oracle Application Express 3.2.1.00.10 VALID
EM Oracle Enterprise Manager 11.2.0.1.0 VALID
AMD OLAP Catalog 11.2.0.1.0 VALID
SDO Spatial 11.2.0.1.0 VALID
ORDIM Oracle Multimedia 11.2.0.1.0 VALID
XDB Oracle XML Database 11.2.0.1.0 VALID
CONTEXT Oracle Text 11.2.0.1.0 VALID
EXF Oracle Expression Filter 11.2.0.1.0 VALID
RUL Oracle Rules Manager 11.2.0.1.0 VALID
OWM Oracle Workspace Manager 11.2.0.1.0 VALID
CATALOG Oracle Database Catalog Views 11.2.0.1.0 VALID
CATPROC Oracle Database Packages and Types 11.2.0.1.0 VALID
JAVAVM JServer JAVA Virtual Machine 11.2.0.1.0 VALID
XML Oracle XDK 11.2.0.1.0 VALID
CATJAVA Oracle Database Java Packages 11.2.0.1.0 VALID
APS OLAP Analytic Workspace 11.2.0.1.0 VALID
XOQ Oracle OLAP API 11.2.0.1.0 VALID 18 rows selected.
--查看补丁情况
sys@ORCL>select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY; no rows selected
--查看无效对象
sys@ORCL>select count(*) from dba_objects where status<>'VALID'; COUNT(*)
----------
123 sys@ORCL> select object_name,object_type,owner,status from dba_objects where status<>'VALID'; sys@ORCL>spool off

2)备份数据库

这里对全库进行备份,以防打补丁出现意外,可以从备份集中恢复数据。

先关闭监听器,关闭数据库实例,将其启到mount状态,然后用rman进行冷备。

3)备份Oracle软件
把Oracle软件打包备份

4)安装Opatch
--首先,查看当前的OPatch版本
[oracle@data ~]$ opatch version
Invoking OPatch 11.1.0.6.6 OPatch Version: 11.1.0.6.6 OPatch succeeded.
--如果当前的Opatch版本不够,下载最新的Opatch,覆盖原来的opatch即可
[oracle@data psu_jul_2011]$ unzip p6880880_112000_Linux-x86-64.zip
--unzip之后,在当前文件夹下出现OPatch文件夹
[oracle@data psu_jul_2011]$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_20130705
[oracle@data psu_jul_2011]$ cp -r ./OPatch $ORACLE_HOME
[oracle@data psu_jul_2011]$ opatch version
OPatch Version: 11.2.0.3.4 OPatch succeeded.

5)安装补丁(Oracle软件部分)
首先,通过opatch lsinventory 查看之前打过的补丁信息。
然后解压缩补丁文件:
[oracle@data psu_jul_2011]$ unzip p12419378_112010_Linux-x86-64.zip
[oracle@data psu_jul_2011]$ cd 12419378

最后在补丁的主目录下执行opatch apply,等待5~10分钟即可(注意:一定要先完全关闭数据库和监听器)

[oracle@data 12419378]$ pwd
/home/oracle/psu_jul_2011/12419378
[oracle@data 12419378]$ opatch apply

如果最后有warnings一般都没什么问题,只要不是error就好。


6)安装补丁(数据库部分)
这步比较简单,就是跑catbundle脚本,但时间比较长,10分钟左右(视机器性能而定)
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT

7)重新编译CPU相关视图 (如果是PSU可略过次步骤)

该步骤在一个数据库上永远只需要执行一次,是为了完成在2008年1月份第一次发布CPU补丁时的后续工作,如果在安装以前的PSU或者CPU时执行过这个步骤那么就可以无需再次执行,另外,即使不执行该步骤,数据库也是正常运行的,只不过意味着2008年1月份的 CPU补丁没有正常结束安装。

SQL> SELECT * FROM registry$history where ID = '6452863';

上面这条语句用于判断是否已经执行过,如果有行数返回,说明已经执行过,可跳过该步骤;

如果没有行数返回,则可根据以下步骤重新编译CPU/PSU相关视图:
cd $ORACLE_HOME/cpu/view_recompile
sqlplus / as sysdba
SQL> @recompile_precheck_jan2008cpu.sql
SQL> SHUTDOWN IMMEDIATE SQL> STARTUP UPGRADE SQL> @view_recompile_jan2008cpu.sql
SQL> SHUTDOWN;
SQL> STARTUP;
SQL> QUIT

8)事后检查

该步骤可以和第1)步的事先检查对照
先编译无效对象:
@?/rdbms/admin/utlrp.sql
set line 150
set pagesize 99
col action_time for a30
col action for a30
col comments for a90
col object_name for a30
col object_type for a30
col comp_name for a50
col comp_id for a20 SQL> spool post_check.log
SQL> select instance_name,status from v$instance;
SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;
SQL> select ACTION_TIME, ACTION, COMMENTS from DBA_REGISTRY_HISTORY;
SQL> select owner,object_name,object_type,status from dba_objects where status<>'VALID';
SQL> select count(*) from dba_objects where status<>'VALID';
SQL> spool off

[Oracle] CPU/PSU补丁安装教程的更多相关文章

  1. [Oracle] CPU/PSU补丁安装详细教程

    Oracle CPU的全称是Critical Patch Update, Oracle对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患,以下是对CPU/PSU补丁安装的具体操作步骤 ...

  2. [教程]Tensorflow + win10 + CPU + Python3.6+ 安装教程

    由于各种原因,清华镜像源已经彻底挂掉了,但是目前网上的各种教程基本上都是采取设置清华镜像源来加快下载速度,所以这给小白带来了很大的困扰!这里我将通过合理上网工具来直接下载源镜像. 注意:本次教程适用于 ...

  3. Oracle 11g数据库下载安装教程

    今天重装系统之后发现甲骨文的网站变化较大,下载安装废了一点时间,留下个笔记为以后再装留作参考.本教程是win10,64位系统环境下 1.下载 下载的时候需要登陆甲骨文账号,如果没有的话申请一个也挺快. ...

  4. oracle 数据库的详细安装教程

    由于oracle数据库比较大 所以安装的时候比较慢是目前装的最大的软件了吧 而且如果装崩了 可能还会重装系统 不过比较幸运 一次就装好 1.需要去官网下载  https://www.oracle.co ...

  5. 【转】:Oracle Linux6.9下安装Oracle 11.2.0.4.0及psu补丁升级

    为方便截图,本文操作都在vmware虚拟机上完成. 目录: 1.操作系统安装 2.数据库安装 3.PSU补丁升级卸载   part1 操作系统安装 Oracle (Enterprise) Linux ...

  6. Oracle 11.2.0.4 RAC安装最新PSU补丁

    环境:两节点RAC(RHEL 6.4 + GI 11.2.0.4 + Oracle 11.2.0.4) 需求:安装最新PSU补丁11.2.0.4.7 1.下载补丁和最新OPatch 2.检查数据库当前 ...

  7. 【转】Oracle Database PSU/CPU

    转自: http://www.cnblogs.com/ebs-blog/archive/2011/07/28/2167232.html 1. 什么是PSU/CPU?CPU: Critical Patc ...

  8. Oracle Database PSU/CPU

    1. 什么是PSU/CPU?CPU: Critical Patch UpdateOracle对于其产品每个季度发行一次的安全补丁包,通常是为了修复产品中的安全隐患. PSU: Patch Set Up ...

  9. 完整记录一则Oracle 11.2.0.4单实例打PSU补丁的过程

    本文记录了打PSU的全过程,意在体会数据库打PSU补丁的整个过程. 1.OPatch替换为最新版本2.数据库软件应用19121551补丁程序3.数据库应用补丁4.验证PSU补丁是否应用成功 1.OPa ...

随机推荐

  1. C#框架

    从零开始编写自己的C#框架(1)——前言   记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子.十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种 ...

  2. 《那些年,我们拿下FPGA》做笔记

    spld.cpld和fpga等可不管什么样的逻辑是大自然来实现.任何逻辑可以由多项式来表示(要么逼关闭).比多项式乘法和处理操作仅此而已. 而就.您可以在门线上用.或门添加剂. fpga扩展架构SOP ...

  3. OCP-1Z0-051-题目解析-第12题

    12. You need to produce a report where each customer's credit limit has been incremented by $1000. I ...

  4. C语言两个libxml2库使用的问题

    最近使用libxml2想做点东西,翻看一些example后还是有些疑问,去segmentfault问了下,感谢@pingjiang的热心解答,问题解决,记录如下 (一)如下是一个XML文件,p为根结点 ...

  5. Spring IOC之基于JAVA的配置

    基础内容:@Bean 和 @Configuration 在Spring中新的支持java配置的核心组件是 @Configuration注解的类和@Bean注解的方法. @Bean注解被用于表明一个方法 ...

  6. QC邮件转发工具Mail Direct安装配置手册

    QC邮件转发工具Mail Direct安装配置手册 2010-06-11 10:00:56| 分类: 软件测试 | 标签: |举报 |字号大中小 订阅 QC邮件转发工具安装配置手册 由于公司没有独立的 ...

  7. Delphi的注册表操作

    转帖:Delphi的注册表操作 2009-12-21 11:12:52 分类: Delphi的注册表操作 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息.     一.创 ...

  8. Android仿微信气泡聊天界面设计

    微信的气泡聊天是仿iPhone自带短信而设计出来的,不过感觉还不错可以尝试一下仿着微信的气泡聊天做一个Demo,给大家分享一下!效果图如下: 气泡聊天最终要的是素材,要用到9.png文件的素材,这样气 ...

  9. Ninject的项目情况

    Ninject的项目情况 首先,它有很多的项目组成,适合不同的环境,当然它有几个基本的核心库. 为什么它会有这么多的库呢?因为轻量级,易于使用和被扩展是它的目标,代码越是少,你使用代码的可能性越高嘛. ...

  10. twobin博客样式

    twobin博客样式—“蓝白之风”   自暑假以来,囫囵吞枣一般蒙头栽入前端自学中,且不说是否窥探其道,却不自觉中提高了对网页版面设计的要求,乃至挑剔.一个设计清爽美观的网页能让读者心旷神怡,甚至没有 ...