如何查询已经安装的oracle cpu 安装补丁信息

oracle如何查看已经打过的补丁 - afant - 博客园
随笔 - 75, 文章 - 0, 评论 - 1, 引用 - 0
set ORACLE_HOME=[oracle目录]
cd $ORACLE_HOME/Opatch/
opatch lsinventory -all -detail
[删除补丁] 删除这个补丁 opatch rollback -id [patchID]
如果没有安装opatch工具,需要先安装。上传文件p02_GENERIC.zip
解压到oracle目录下:
unzip p02_GENERIC.zip
Archive:& p02_GENERIC.zip
&& creating: OPatch/
&& creating: OPatch/docs/
& inflating: OPatch/docs/FAQ&&&&&&&&
& inflating: OPatch/docs/Users_Guide.txt&
& inflating: OPatch/docs/bt1.txt&&&&
& inflating: OPatch/docs/bt2.txt&&&&
&& creating: OPatch/jlib/
& inflating: OPatch/jlib/opatch.jar&
&& creating: OPatch/perl_modules/
& inflating: OPatch/perl_modules/Apply.pm&
& inflating: OPatch/perl_modules/AttachHome.pm&
& inflating: OPatch/perl_modules/Command.pm&
& inflating: OPatch/perl_modules/LsInventory.pm&
& inflating: OPatch/perl_modules/Query.pm&
& inflating: OPatch/perl_modules/RollBack.pm&
& inflating: OPatch/perl_modules/Version.pm&
& inflating: OPatch/perl_modules/XML.pm&
& inflating: OPatch/perl_modules/opatchIO.pm&
& inflating: OPatch/opatch&&&&&&&&&&
& inflating: OPatch/opatch.pl&&&&&&&
& inflating: OPatch/opatch.bat&&&&&&
& inflating: OPatch/emdpatch.pl&&&&&
& inflating: OPatch/README.txt&&&&&&
将这个路径加到oracle的path中:
:/home/oracle/OPatch
执行opatch lsinventory检查工具
将oracle patch上传到oracle目录下面:p03_LINUX.zip
解压在oracle目录下面:
[oracle@**** oracle]$ unzip p03_LINUX.zip
Archive:& p03_LINUX.zip
& inflating: 4193286/amdcpu.sql&&&&&
& inflating: 4193286/catcpu.sql&&&&&
& inflating: 4193286/catcpu_rollback.sql&
&& creating: 4193286/etc/
&& creating: 4193286/etc/config/
& inflating: 4193286/etc/config/actions&
& inflating: 4193286/etc/config/inventory&
&& creating: 4193286/etc/xml/
& inflating: 4193286/etc/xml/GenericActions.xml&
& inflating: 4193286/etc/xml/ShiphomeDirectoryStructure.xml&
& inflating: 4193286/exfcpu.sql&&&&&
&& creating: 4193286/files/
&& creating: 4193286/files/dm/
&& creating: 4193286/files/dm/admin/
&& .......
shutdown 数据库、stop监听
[oracle@**** oracle]$ cd 4193286
[oracle@**** 4193286]$ opatch apply
PERL5LIB=/home/oracle/product/10.1.0/db_1/perl/lib/5.6.1:/home/oracle/OPatch/perl_ export PERL5LIB
/home/oracle/product/10.1.0/db_1/perl/bin/perl /home/oracle/OPatch/opatch.pl apply
Oracle Home = /home/oracle/product/10.1.0/db_1
Location of Oracle Inventory = /home/oracle/product/10.1.0/db_1/inventory
Oracle Universal Installer shared library = /home/oracle/product/10.1.0/db_1/oui/lib/linux/liboraInstaller.so
Path to Java = /home/oracle/product/10.1.0/db_1/jre/1.4.2/bin/java
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Universal Installer components = /home/oracle/product/10.1.0/db_1/oui
Required Jar File under Oracle Universal Installer = jlib/OraInstaller.jar
OPatch Version 1.0.0.0.50
Perl Version 5.006001
/home/oracle/OPatch/opatch.pl version: 1.0.0.0.50
Copyright (c)
Oracle Corporation. All Rights Reserved.
Some commands below are not in your path:
& Command= fuser
& Path= /usr/kerberos/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/product/10.1.0/db_1/bin:/home/oracle/OPatch
ERROR: OPatch failed because of Path problem.
提示fuser命令没有找到,该命令在/sbin目录下面,将该目录加到用户的path中,再执行
[oracle@bj34 4193286]$ opatch apply
Oracle Interim Patch Installer version 1.0.0.0.52
Copyright (c) 2005 Oracle Corporation. All Rights Reserved..
We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
which is viewable from
Oracle Home = /home/oracle/product/10.1.0/db_1
Location of Oracle Universal Installer components = /home/oracle/product/10.1.0/db_1/oui
Location of OraInstaller.jar& = "/home/oracle/product/10.1.0/db_1/oui/jlib"
Oracle Universal Installer shared library = /home/oracle/product/10.1.0/db_1/oui/lib/linux/liboraInstaller.so
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Inventory = /home/oracle/product/10.1.0/db_1/inventory
Path to Java = /home/oracle/product/10.1.0/db_1/jre/1.4.2/bin/java
Log file = /home/oracle/product/10.1.0/db_1/.patch_storage/&patch ID&/*.log
Backing up comps.xml ...
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.
Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /home/oracle/product/10.1.0/db_1)
Is this system ready for updating?
Please respond Y|N &
Patching...
Updating inventory...
Backing up comps.xml ...
OPatch succeeded.
执行opatch lsinventory察看patch是否正确安装:
[oracle@bj34 4193286]$ opatch lsinventory
Oracle Interim Patch Installer version 1.0.0.0.52
Copyright (c) 2005 Oracle Corporation. All Rights Reserved..
We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
which is viewable from
Oracle Home = /home/oracle/product/10.1.0/db_1
Location of Oracle Universal Installer components = /home/oracle/product/10.1.0/db_1/oui
Location of OraInstaller.jar& = "/home/oracle/product/10.1.0/db_1/oui/jlib"
Oracle Universal Installer shared library = /home/oracle/product/10.1.0/db_1/oui/lib/linux/liboraInstaller.so
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Inventory = /home/oracle/product/10.1.0/db_1/inventory
Path to Java = /home/oracle/product/10.1.0/db_1/jre/1.4.2/bin/java
Log file = /home/oracle/product/10.1.0/db_1/.patch_storage/&patch ID&/*.log
& Installed Patch List:
& =====================
& 1) Patch 4193286 applied on Mon Apr 25 11:42:00 CST 2005
&&&&& [ Base Bug(s):
3111225& ]
OPatch succeeded.
启动数据库,执行catcpu.sql,log里面发现一些错误。
SQL& spool logfile
SQL& @catcpu.sql
[lisa@**** 4193286]$ grep -n 'ORA-' logfile.lst
452:ORA-00955: name is already used by an existing object
461:ORA-00955: name is already used by an existing object
533:ORA-00955: name is already used by an existing object
545:ORA-00955: name is already used by an existing object
563:ORA-00955: name is already used by an existing object
609:ORA-00955: name is already used by an existing object
618:ORA-00955: name is already used by an existing object
659:ORA-00955: name is already used by an existing object
668:ORA-00955: name is already used by an existing object
678:ORA-04043: object MDPRVT_IDX does not exist
853:ORA-00955: name is already used by an existing object
安装文档提到这些错误可以忽略:
9. The following ignorable errors may be encountered during execution of catcup.sql and catcpu_rollback.sql
ORA-00942: table or view does not exist
ORA-04043: object &object-name& does not exist
ORA-01917: user or role 'XDB' does not exist
ORA-01435: user does not exist
ORA-00955: name is already used by an existing object
ORA-04043: Object Missing.
ORA-01430: column being added already exists in table
重启数据库,察看警告日志,没有发现异常,启动监听,至此patch打完了。
如果准备充分的话,当掉数据库到重新启动大约也就20分钟,还是比较顺利的。
今天察看安装文档,发现要求的opatch版本比我使用的要新,还是特别标注的,不知道有什么不同,重新下载了新的opatch,卸掉原来的patch,重新打patch,并没有什么特别的地方。
但是在运行了一段时间以后,发现我的admin/*/bdump下面有个文件centdb_mmon_9603.trc一直在写,基本上每分钟都写:
内容大致如下:
15:00:56.580
Unable to schedule a MMON slave at: Auto Flush Main 1
& Attempt to create slave process failed.
& Can happen for several reasons:
&&& - No process state objects
&&& - Reached OS set limits
&&& - A shutdown was going on
& Check alert log for more details.
查询了alert.log和udump下面,并没有什么特别的东西,查询了metalink,也没有人提到,最后我重新启动了数据库就好了。可能是打完了patch还是需要重启数据库的吧。本文章共4856字,分4页,当前第1页,快速翻页:1234&
set ORACLE_HOME=[oracle目录]
cd $ORACLE_HOME/Opatch/
opatch lsinventory -all -detail
[删除补丁] 删除这个补丁 opatch rollback -id [patchID]
如果没有安装opatch工具,需要先安装。上传文件p02_GENERIC.zip
解压到oracle目录下:
unzip p02_GENERIC.zip
Archive:& p02_GENERIC.zip
&& creating: OPatch/
&& creating: OPatch/docs/
& inflating: OPatch/docs/FAQ&&&&&&&&
& inflating: OPatch/docs/Users_Guide.txt&
& inflating: OPatch/docs/bt1.txt&&&&
& inflating: OPatch/docs/bt2.txt&&&&
&& creating: OPatch/jlib/
& inflating: OPatch/jlib/opatch.jar&
&& creating: OPatch/perl_modules/
& inflating: OPatch/perl_modules/Apply.pm&
& inflating: OPatch/perl_modules/AttachHome.pm&
& inflating: OPatch/perl_modules/Command.pm&
& inflating: OPatch/perl_modules/LsInventory.pm&
& inflating: OPatch/perl_modules/Query.pm&
& inflating: OPatch/perl_modules/RollBack.pm&
& inflating: OPatch/perl_modules/Version.pm&
& inflating: OPatch/perl_modules/XML.pm&
& inflating: OPatch/perl_modules/opatchIO.pm&
& inflating: OPatch/opatch&&&&&&&&&&
& inflating: OPatch/opatch.pl&&&&&&&
& inflating: OPatch/opatch.bat&&&&&&
& inflating: OPatch/emdpatch.pl&&&&&
& inflating: OPatch/README.txt&&&&&&
将这个路径加到oracle的path中:
:/home/oracle/OPatch
执行opatch lsinventory检查工具
将oracle patch上传到oracle目录下面:p03_LINUX.zip
解压在oracle目录下面:
[oracle@**** oracle]$ unzip p03_LINUX.zip
Archive:& p03_LINUX.zip
& inflating: 4193286/amdcpu.sql&&&&&
& inflating: 4193286/catcpu.sql&&&&&
& inflating: 4193286/catcpu_rollback.sql&
&& creating: 4193286/etc/
&& creating: 4193286/etc/config/
& inflating: 4193286/etc/config/actions&
& inflating: 4193286/etc/config/inventory&
&& creating: 4193286/etc/xml/
& inflating: 4193286/etc/xml/GenericActions.xml&
& inflating: 4193286/etc/xml/ShiphomeDirectoryStructure.xml&
& inflating: 4193286/exfcpu.sql&&&&&
&& creating: 4193286/files/
&& creating: 4193286/files/dm/
&& creating: 4193286/files/dm/admin/
&& .......
shutdown 数据库、stop监听
[oracle@**** oracle]$ cd 4193286
[oracle@**** 4193286]$ opatch apply
PERL5LIB=/home/oracle/product/10.1.0/db_1/perl/lib/5.6.1:/home/oracle/OPatch/perl_ export PERL5LIB
/home/oracle/product/10.1.0/db_1/perl/bin/perl /home/oracle/OPatch/opatch.pl apply
阅读更多内容:1 ·
&§相关评论:oracle 10204补丁安装方法win32
oracle 10204补丁安装方法win32
09-09-02 &匿名提问
ORACLE 10204 for linux as 4 CPU patch install ... 有ORACLE补丁集的信息,下载CPU patch需要metalink账号,下面是linux as 4 ORACLE 10204 CPU patch 安装过程。 ... 同步,因生产库有1T多,重拉数据将非常耗时,遂利用RMAN对生产库进行增量备份,将增量备份集合成到standby库,利用此方法就跨过了被删除的归档日志。
请登录后再发表评论!查看: 1936|回复: 15
如何查询已经安装的Oracle CPU 补丁信息?
认证徽章论坛徽章:6
如题: 今天遇到一个问题,我们在打PSU补丁时,报错提示没有No_CPU_Patch的错误信息。& && && && &&&请问这是什么原因恩? 我们db 版本是 Oracle 12.1.0.1
& && && && & 我通过$ $ORACLE_HOME/OPatch 在
& && && && &opatch lsinventory -a 查看PSU补丁为最新,按道理说,最新一季度的PSU补丁已经涵盖了CPU补丁,为啥还会报没有 NO_CPU_Patch 的错误呢?
& && && &&&SQL&&&select * from dba_registry_& & 这个查出来也是最新的PSU补丁&patch ID &
& && && & 请教下各位大神。谢谢。
打赏鼓励一下!
认证徽章论坛徽章:6
手工up,up,up。
认证徽章论坛徽章:6
手工up,up,up,等大神
认证徽章论坛徽章:3
你看下 invertorydirectory 这个目录是否存在。
认证徽章论坛徽章:6
你看下 invertorydirectory 这个目录是否存在。
在的啊。。。
认证徽章论坛徽章:6
Opatch lsinventory
认证徽章论坛徽章:6
Opatch lsinventory
额&&就是用这个命令看的。。。这个看出来的是PSU patch
论坛徽章:157
不能把你的操作步骤都贴出来吗
认证徽章论坛徽章:6
不能把你的操作步骤都贴出来吗
抱歉啊,公司网络限制,我贴不出来操作步骤的截图。&&请教下,我这个问题现在如何查找呢? 是我的CPU patch 基线太久,在打PSU时才会报这个错吗?
认证徽章论坛徽章:6
手工up up up 啊
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号[Oracle] CPU/PSU补丁安装详细教程_oracle数据库_ThinkSAAS
[Oracle] CPU/PSU补丁安装详细教程
[Oracle] CPU/PSU补丁安装详细教程
内容来源: 网络
什么是CPU/PSUOracle 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才能打补丁。2)打Patch步骤:基本上所有的CPU/PSU都大同小异,具体步骤将在下面的例子中展示。安装CPU/PSU补丁1)事先检查:查看数据库打补丁前信息,保留现场在打补丁前最好把数据库的一些基本信息保留下来,以备不时之需。 代码如下:set line 150set pagesize 99col action_time for a30col action for a30col comments for a90col object_name for a30col object_type for a30col comp_name for a50col comp_id for a20--查看实例名sys@ORCL&select instance_name,status from v$INSTANCE_NAME
STATUS---------------- ------------orcl
OPEN--查看数据库版本sys@ORCL&select * from v$BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionPL/SQL Release 11.2.0.1.0 - ProductionCORE
11.2.0.1.0
ProductionTNS for Linux: Version 11.2.0.1.0 - ProductionNLSRTL Version 11.2.0.1.0 - Production--查看数据库大小sys@ORCL&select sum(bytes)/||&M& from dba_SUM(BYTES)/||&M&-----------------------------------------M--查看组件信息sys@ORCL&select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;COMP_ID
STATUS-------------------- -------------------------------------------------- ------------------------------ ----------------------OWB
11.2.0.1.0
Oracle Application Express
3.2.1.00.10
Oracle Enterprise Manager
11.2.0.1.0
OLAP Catalog
11.2.0.1.0
11.2.0.1.0
VALIDORDIM
Oracle Multimedia
11.2.0.1.0
Oracle XML Database
11.2.0.1.0
VALIDCONTEXT
Oracle Text
11.2.0.1.0
Oracle Expression Filter
11.2.0.1.0
Oracle Rules Manager
11.2.0.1.0
Oracle Workspace Manager
11.2.0.1.0
VALIDCATALOG
Oracle Database Catalog Views
11.2.0.1.0
VALIDCATPROC
Oracle Database Packages and Types
11.2.0.1.0
VALIDJAVAVM
JServer JAVA Virtual Machine
11.2.0.1.0
Oracle XDK
11.2.0.1.0
VALIDCATJAVA
Oracle Database Java Packages
11.2.0.1.0
OLAP Analytic Workspace
11.2.0.1.0
Oracle OLAP API
11.2.0.1.0
VALID18 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(*)----------
123sys@ORCL& select object_name,object_type,owner,status from dba_objects where status&&&VALID&;sys@ORCL&spool off2)备份数据库这里对全库进行备份,以防打补丁出现意外,可以从备份集中恢复数据。先关闭监听器,关闭数据库实例,将其启到mount状态,然后用rman进行冷备。3)备份Oracle软件把Oracle软件打包备份4)安装Opatch 代码如下:--首先,查看当前的OPatch版本[oracle@data ~]$ opatch versionInvoking OPatch 11.1.0.6.6OPatch Version: 11.1.0.6.6OPatch succeeded.--如果当前的Opatch版本不够,下载最新的Opatch,覆盖原来的opatch即可[oracle@data psu_jul_2011]$ unzip p000_Linux-x86-64.zip--unzip之后,在当前文件夹下出现OPatch文件夹[oracle@data psu_jul_2011]$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_[oracle@data psu_jul_2011]$ cp -r ./OPatch $ORACLE_HOME[oracle@data psu_jul_2011]$ opatch versionOPatch Version: 11.2.0.3.4OPatch succeeded.5)安装补丁(Oracle软件部分)首先,通过opatch lsinventory 查看之前打过的补丁信息。然后解压缩补丁文件: 代码如下:[oracle@data psu_jul_2011]$ unzip p010_Linux-x86-64.zip[oracle@data psu_jul_2011]$ cd 最后在补丁的主目录下执行opatch apply,等待5~10分钟即可(注意:一定要先完全关闭数据库和监听器) 代码如下:[oracle@data ]$ pwd/home/oracle/psu_jul_8[oracle@data ]$ opatch apply如果最后有warnings一般都没什么问题,只要不是error就好。6)安装补丁(数据库部分)这步比较简单,就是跑catbundle脚本,但时间比较长,10分钟左右(视机器性能而定) 代码如下:cd $ORACLE_HOME/rdbms/adminsqlplus /nologSQL& CONNECT / AS SYSDBASQL& STARTUPSQL& @catbundle.sql psu applySQL& QUIT7)重新编译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& QUIT8)事后检查该步骤可以和第1)步的事先检查对照先编译无效对象: 代码如下:@?/rdbms/admin/utlrp.sql 代码如下:set line 150set pagesize 99col action_time for a30col action for a30col comments for a90col object_name for a30col object_type for a30col comp_name for a50col comp_id for a20SQL& spool post_check.logSQL& select instance_name,status from v$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
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信

我要回帖

更多关于 oracle cpu 安装 的文章

 

随机推荐