首页 > 数据库 > Oracle > Oracle补丁体系及opatch工具介绍
一.
一般对当前补丁发行版及前一个版本提供CPU,但也有只限于当前补丁发行版的例外情形。也就是说,一般需要先安装最新PSR后才可能安装CPU.由于是累积型的定期发布,所以对于某一平台的某一版本,如果两次CPU发布期间没有发现新的安全漏洞,则新发布的CPU与前一版本完全相同。
可以在以下网址中可以找到CPU发布的信息,只要在Oracle
Oracle公司制定的CPU的发布日期大约在一月、四月、七月和十月的最接近15的星期二。
Critical Patch Updates
Critical Patch Updates are the primary means of releasing security fixes for Oracle products to customers with valid support contracts. They are released on the Tuesday closest to the 15th day of January, April, July and October. Starting 2011, the scheduled dates for the release of Critical Patch Updates will be on the Tuesday closest to the 17th day of January, April, July and October. The next four dates are:
12 October 2010
18 January 2011
19 April 2011
19 July 2011
对于每一个CPU,附有相应的说明文档(Critical Patch Update Note),其中介绍安装过程和注意事项,在安装之前应认真阅读此文档。同样也存在文档“Oracle Critical Patch Update MM YYYY Known Issues for Oracle Database”,其中列出了说明文档中没有给出的新信息。
二.PSR(Patch Set
Release)
8i,9i,10g,11g这是其主要版本号,每一版本会陆续有两至三个发行版,如10.1,10.2,和
PSU解决以下几个问题:
1.
2.
3.
PSU具有如下特点:
第一、PSU是PSR的补充,在两次PSR发布之间发布多个PSU,加快更新速度。每个PSU修改5位版本号的第5位。例如,安装此次发布的
第二、每个PSU中包含25至100个重要补丁,作为一个整体进行严格测试,解决冲突问题,保证系统的稳定性。PSU不仅包括对功能、性能修复的一般补丁,也包括安全补丁。
第三、PSU定期发布,计划一年分布四次,发布日期与CPU发布日期相同。由于PSU包括同期发布的CPU,只要安装PSU即可。(对部分平台,仍提供单独的CPU,供客户选择)
第四、如同PSR和CPU一样,PSU是累积型的,即只要安装最新的PSU就自动包括以前所有PSU的内容。
第五、使用DBA已经熟悉的Opatch工具安装/删除PSU,命令仍是apply和rollback。一个PSU可视作一个个别补丁,安装和删除操作都很简便。
第六、现有的个别补丁与PSU的关系分为三类:完全独立;是PSU的一部分;与PSU冲突。第一类的个别补丁与PSU相互没有影响,可以独立的安装或删除。对于第二类,在安装PSU之后,自然没有必要安装。若在PSU之前已安装,则在安装PSU时会被自动删除。对于第三类个别补丁,如在PSU之前已安装,必须在安装PSU时删除。客户可以向Oracle公司技术支持部门提出申请,由Oracle负责提供与PSU不冲突的,在PSU之上安装的相应的新的版本。
三.
先看一个官网的Oracle OPatch
从9.2版开始,Oracle公司实现了个别补丁安装工具opatch. opatch使用一个称为inventory的系统数据结构(严格说是与oui共享inventory),集中管理所有已安装的个别补丁;个别补丁的安装和卸载都使用opatch命令完成,冲突检测也由opatch在安装时自动完成;提供列表命令可以很方便得到已安装个别补丁的信息。
10g(10.1和10.2)版本中,opatch作为一个标准工具,在安装时自动安装。(安装在$ORACLE_HOME/OPatch下。)而对于9.2版,需要从metalink下载opatch.无论是哪一个版本,系统中是否已经安装opatch,在使用之前,应从metalink下载最新版本的opatch.很遗憾,由于系统实现的问题,10.2使用的opatch与之前版本(10.1和9.2)使用的opatch不兼容,不能混用,这一点必须注意。
opatch是使用perl编写的脚本程序(其中也使用JAVA API)。使用的perl版本是5.6版,虽然在5.6之前的版本中也可运行,但应尽可能安装5.6或以上的版本的perl.
3.1
该命令的存放位置在$ORACLE_HOME下的OPatch目录下。
-bash-3.2$ pwd
/u01/oracle/oracle/product/10.2.0/db_1/OPatch
-bash-3.2$ ls
docs
-bash-3.2$ ls -lrt
total 44
-rw-r--r-- 1 oracle oinstall 18107 Apr
18
-rw-r--r-- 1 oracle
oinstall
-rwxr-xr-x 1 oracle
oinstall
drwxr-x--- 2 oracle
oinstall
drwxr-x--- 2 oracle
oinstall
-rw-r--r-- 1 oracle
oinstall
3.2
-bash-3.2$ ./opatch --help
Invoking OPatch 10.2.0.1.0
Oracle interim Patch Installer version 10.2.0.1.0
Copyright (c) 2005, Oracle
Corporation.
Oracle
Home
Central Inventory : /u01/oracle/oraInventory
OPatch
version
OUI
version
OUI
location
Log file location : /u01/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2010_Aug_09_03-05-40-CST_Mon.log
OPatch succeeded.
这个是10.2.0.1版本的opatch.
-bash-3.2$ ./opatch
--help
Invoking OPatch 11.1.0.6.6
Oracle Interim Patch Installer
version 11.1.0.6.6
Copyright (c) 2009, Oracle Corporation.
OPatch succeeded.
官网上对命令的一些解释:
|
apply |
Installs an interim patch. Refer to "apply Command" for more information. |
|
napply |
Installs |
|
auto |
Applies Oracle Clusterware patches. Refer to "auto Command" for more information. |
|
lsinventory |
Lists what is currently installed on the system. Refer to "lsinventory Command" for more information. |
|
query |
Queries a given patch for specific details. Refer to "query Command" for more information. |
|
rollback |
Removes an interim patch. Refer to "rollback Command" for more information. |
|
nrollback |
Removes |
|
version |
Prints the current version of the patch tool. Refer to "version Command" for more information. |
在$ORACLE_HOME/OPatch/docs目录下,用指南文件(Users_Guide.txt),其中有详细的命令格式和使用示例,可以参考。
Opatch执行操作时,除在屏幕输出结果外,还生成日志文件。日志文件的路径和文件名格式如下:
3.3
以Patch 5689937
3.3.1
3.3.2
进入patch文件5689937
3.3.2.1
3.3.2.2.
-bash-3.2$ cd p5689937_10201_LINUX/
-bash-3.2$ ls
5689937
-bash-3.2$ cd 5689937/
-bash-3.2$ ls
custom
-bash-3.2$ pwd
/mnt/p5689937_10201_LINUX/5689937
-bash-3.2$ export PATH=$PATH:/usr/ccs/bin
-bash-3.2$ $ORACLE_HOME/OPatch/opatch apply
3.3.2.3
-bash-3.2$
-bash-3.2$
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 9 04:48:19 2010
Copyright (c)
1982, 2005, Oracle.
SQL>
Connected to an idle instance.
SQL>
ORACLE instance started.
Total System
Global Area
Fixed
Size
Variable
Size
Database
Buffers
Redo
Buffers
Database mounted.
Database opened.
SQL>
如果catcpu.sql
SQL> @?/rdbms/admin/utlrp.sql
可以用如下SQL
SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= 'INVALID';
3.3.3
-bash-3.2$
Invoking OPatch 10.2.0.1.0
Oracle interim Patch Installer version 10.2.0.1.0
Copyright (c)
2005, Oracle Corporation.
Oracle
Home
Central Inventory : /u01/oracle/oraInventory
OPatch
version
OUI
version
OUI
location
Log file location : /u01/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2010_Aug_09_04-55-55-CST_Mon.log
Lsinventory Output file location : /u01/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory-2010_Aug_09_04-55-55-CST_Mon.txt
--------------------------------------------------------------------------------
Installed Top-level Products (1):
Oracle Database
10g
There are 1 products installed in this Oracle Home.
Interim patches (1) :
Patch
--------------------------------------------------------------------------------
OPatch succeeded.
或者用$ORACLE_HOME/OPatch/opatch lsinventory
–detail
3.4
3.4.1
3.4.2
3.4.3
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 9 05:04:19 2010
Copyright (c)
1982, 2005, Oracle.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System
Global Area
Fixed
Size
Variable
Size
Database
Buffers
Redo
Buffers
Database mounted.
Database opened.
如果在运行中出现无效对象,运行如下脚本:
检查无效对象:
关于Patch的说明就到此。
原文链接:http://blog.csdn.net/tianlesoftware/article/details/5809526
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21836865/viewspace-1114775/ ,如需转载,请注明出处,否则将追究法律责任。