问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Apache补丁和Oracle谁有补丁,补丁怎么打

发布网友 发布时间:2022-05-01 22:37

我来回答

3个回答

懂视网 时间:2022-05-02 02:59

 一. CPU(Critical Patch Update)

    一个CPU内包含了对多个安全漏洞的修复,并且也包括相应必需的非安全漏洞的补丁。CPU是累积型的,只要安装最新发布的CPU即可,其中包括之前发布的所有CPU的内容。事实上,在CPU之前的安全漏洞修改除去个别例外也被包括在CPU中。Oracle公司只对处于标准技术支持和延长支持期间的产品提供CPU更新,对处于维持支持范围的产品不提供新的CPU.(对于9.2以前的版本,只对处于ECS和EMS期间的版本提供CPU更新。)

    一般对当前补丁发行版及前一个版本提供CPU,但也有只限于当前补丁发行版的例外情形。也就是说,一般需要先安装最新PSR后才可能安装CPU.由于是累积型的定期发布,所以对于某一平台的某一版本,如果两次CPU发布期间没有发现新的安全漏洞,则新发布的CPU与前一版本完全相同。

    可以在以下网址中可以找到CPU发布的信息,只要在Oracle 免费注册一个用户,就可以收到这些补丁的信息。但是,只有技术支持签约用户才可以从metalink下载补丁文件。

    http://www.oracle.com/technology/deploy/security/alerts.htm

    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) 和 PSU(Patch Set Update)

    8i,9i,10g,11g这是其主要版本号,每一版本会陆续有两至三个发行版,如10.1,10.2,和 11.1,11.2分别是10g和11g的两个发行版。对于每一个发行版软件中发现的BUG,给出相应的修复补丁。每隔一定时期,会将所有补丁集成到软件中,经过集成测试后,进行发布,也称为PSR(Patch Set Release)。以10.2为例,10.2.0.1.0是基础发行版,至今已有三个PSR发布,每个PSR修改5位版本号的第4位,最新10.2的PSR为10.2.0.4.0。(11.1.0.6.0是11.1的基础发行版,11.1.0.7.0是第一次PSR) 。

    在某个PSR之后编写的补丁,在还没有加入到下一个PSR之前,以个别补丁(Interim Patch)的形式提供给客户。某个个别补丁是针对Oracle公司发现的或客户报告的某一个BUG编写的补丁,多个个别补丁之间一同安装时可能会有冲突,即同一个目标模块分别进行了不同的修改。另外,即便在安装时没有发现冲突,由于没有进行严格的集成测试,运行过程中由于相互作用是否会发生意外也不能完全排除。

    除去修改功能和性能BUG的补丁,还有应对安全漏洞的安全补丁。Oracle公司定期(一年四期)发布安全补丁集,称之为CPU(Critical Patch Updates)。

    由于数据库在信息系统的核心地位,对其性能和安全性的要求非常高。理应及时安装所有重要补丁。另外一个方面,基于同样的理由,要求数据库系统必须非常稳定,安装补丁而导致的系统故障和性能下降同样不可接受。DBA经常面临一个非常困难的选择:对于多个修复重要BUG的个别补丁是否安装。不安装,失去预防故障发生的机会,以后故障发生时,自己是无作为;安装,如果这些补丁中存在着倒退BUG,或者相互影响,以后发生由于安装补丁而造成的故障时,自己则是无事生非!而等待下一个PSR,一般又需要一年时间。因此,出现了PSU(Patch Set Update)。

    PSU解决以下几个问题:

    1. 减轻PSR周期长而带来的不能及时更新的影响;

    2. 解决多个个别补丁冲突和相互影响的问题;

    3. 减轻DBA安装补丁的负担:补丁安装次数,不定期检查补丁发布。

    PSU具有如下特点:

    第一、PSU是PSR的补充,在两次PSR发布之间发布多个PSU,加快更新速度。每个PSU修改5位版本号的第5位。例如,安装此次发布的 PSU后,11.1版本“升级”为11.1.0.7.1;10.2版本为10.2.0.4.2。

    第二、每个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之上安装的相应的新的版本。

    PSU的限制:必须是在正常技术支持范围之内的版本(11.2、11.1和10.2),并且PSU只能在最新PSR之上安装。

    三.OPatch 命令

    先看一个官网的Oracle OPatch 的说明:

    Oracle Software Patching Using Opatch

    http://download.oracle.com/docs/cd/B19306_01/em.102/b16227/oui8_opatch.htm

    从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. 对于DBA来说一个好消息是,如果安装9.2版软件时保留了HTTP服务器,则在$ORACLE_HOME/Apache下会自动安装perl.(10g会自动安装配置perl和opatch.)

    3.1 opatch命令存放位置

    该命令的存放位置在$ORACLE_HOME下的OPatch目录下。

    -bash-3.2$ pwd

    /u01/oracle/oracle/product/10.2.0/db_1/OPatch

    -bash-3.2$ ls

    docs emdpatch.pl jlib opatch opatch.ini opatch.pl

    -bash-3.2$ ls -lrt

    total 44

    -rw-r--r-- 1 oracle oinstall 18107 Apr 18 2005 emdpatch.pl

    -rw-r--r-- 1 oracle oinstall 2193 Jun 1 2005 opatch.pl

    -rwxr-xr-x 1 oracle oinstall 5672 Jun 1 2005 opatch

    drwxr-x--- 2 oracle oinstall 4096 Apr 21 13:24 jlib

    drwxr-x--- 2 oracle oinstall 4096 Apr 21 13:24 docs

    -rw-r--r-- 1 oracle oinstall  49 Apr 21 13:24 opatch.ini

    3.2 使用“-help”参数可以获得opatch命令的帮助信息

    -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. All rights reserved..

    Oracle Home   : /u01/oracle/oracle/product/10.2.0/db_1

    Central Inventory : /u01/oracle/oraInventory

    from     : /u01/oracle/oracle/product/10.2.0/db_1/oraInst.loc

    OPatch version  : 10.2.0.1.0

    OUI version   : 10.2.0.1.0

    OUI location   : /u01/oracle/oracle/product/10.2.0/db_1//oui

    Log file location : /u01/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2010_Aug_09_03-05-40-CST_Mon.log

    Usage: opatch [ -help ] [ -r[eport] ] [ command ]

    command := apply

    lsinventory

    query

    rollback

    version

    <global_arguments>:= -help   Displays the help message for the command.

    -report  Print the actions without executing (deprecated).

    example:

    ‘opatch -help‘

    ‘opatch apply -help‘

    ‘opatch lsinventory -help‘

    ‘opatch rollback -help‘

    OPatch succeeded.

    这个是10.2.0.1版本的opatch. 在10.2.0.4 版本的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. All rights reserved.

    Usage: opatch [ -help ] [ -r[eport] ] [ command ]

    command := apply

    lsinventory

    napply

    nrollback

    rollback

    query

    version

    prereq

    util

    <global_arguments>:= -help   Displays the help message for the command.

    -report  Print the actions without executing.

    example:

    ‘opatch -help‘

    ‘opatch apply -help‘

    ‘opatch lsinventory -help‘

    ‘opatch napply -help‘

    ‘opatch nrollback -help‘

    ‘opatch rollback -help‘

    ‘opatch prereq -help‘

    ‘opatch util -help‘

    OPatch succeeded.

    官网上对命令的一些解释:

    apply

    Installs an interim patch. Refer to "apply Command" for more information.

    napply

    Installs n number of patches (hence napply). Refer to "napply Command" for more information.

    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 n number of patches (hence nrollback). Refer to "nrollback Command" for more information.

    version

    Prints the current version of the patch tool. Refer to "version Command" for more information.

    在$ORACLE_HOME/OPatch/docs目录下,用指南文件(Users_Guide.txt),其中有详细的命令格式和使用示例,可以参考。

    Opatch执行操作时,除在屏幕输出结果外,还生成日志文件。日志文件的路径和文件名格式如下:

    $ORACLE_HOME/.patch_storage/< patch_id >/< action >-< patch_id >_< mm-dd-yyyy_hh-mi-ss>.log

    其中“patch_id”是Oracle技术支持部门为个别补丁分配的编号。

    3.3 opatch安装个别补丁示例:

    以Patch 5689937 为例。

    3.3.1 patch下载

    从metalink下载补丁的压缩文件p5689937_10201_LINUX.zip.将此文件解压缩至某一目录中。解压缩后,这一补丁的所有文件都在子目录5689937下,目录名就是个别补丁的补丁号,opatch依据目录名获得信息,所以一定不要重命名子目录。

    3.3.2 安装patch

    进入patch文件5689937 目录,在patch的目录下面有一个readme的安装文档,里面有安装步骤和一些问题的处理方法。

    3.3.2.1 关闭数据库和监听

    Shut down all instances and listeners associated with the Oracle home that you are updating.

    3.3.2.2. 进入patch目录,运行opatch apply命令

    -bash-3.2$ cd p5689937_10201_LINUX/

    -bash-3.2$ ls

    5689937 patchmd.xml README.html

    -bash-3.2$ cd 5689937/

    -bash-3.2$ ls

    custom etc files README.txt

    -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$ cd $ORACLE_HOME/cpu/CPUJan2007/ -- 要进入这个目录才能找到脚本

    -bash-3.2$ sqlplus /nolog

    SQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 9 04:48:19 2010

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    SQL> conn / as sysdba

    Connected to an idle instance.

    SQL> startup

    ORACLE instance started.

    Total System Global Area 281018368 bytes

    Fixed Size         1218968 bytes

    Variable Size       83887720 bytes

    Database Buffers     192937984 bytes

    Redo Buffers        2973696 bytes

    Database mounted.

    Database opened.

    SQL> @catcpu.sql

    如果catcpu.sql 脚本报任何无效对象,执行如下脚本:

    SQL> @?/rdbms/admin/utlrp.sql

    可以用如下SQL 检查无效对象:

    SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= ‘INVALID‘;

    3.3.3 用inventory 命令查看已经安装的patch

    -bash-3.2$ $ORACLE_HOME/OPatch/opatch lsinventory

    Invoking OPatch 10.2.0.1.0

    Oracle interim Patch Installer version 10.2.0.1.0

    Copyright (c) 2005, Oracle Corporation. All rights reserved..

    Oracle Home   : /u01/oracle/oracle/product/10.2.0/db_1

    Central Inventory : /u01/oracle/oraInventory

    from     : /u01/oracle/oracle/product/10.2.0/db_1/oraInst.loc

    OPatch version  : 10.2.0.1.0

    OUI version   : 10.2.0.1.0

    OUI location   : /u01/oracle/oracle/product/10.2.0/db_1//oui

    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                         10.2.0.1.0

    There are 1 products installed in this Oracle Home.

    Interim patches (1) :

    Patch 5689937   : applied on Mon Aug 09 04:43:27 CST 2010

    Created on 8 Jan 2007, 11:48:31 hrs US/Eastern

    Bugs fixed:

    4671216, 4925103, 4604970, 4616376, 5689937, 4288876, 5225798, 5694720

    4754888, 4750469, 4369235, 4751931, 4966716, 5049080, 5242648, 4348230

    5490846, 4630549, 5490936, 5049088

    --------------------------------------------------------------------------------

    OPatch succeeded.

    或者用$ORACLE_HOME/OPatch/opatch lsinventory –detail 命令查看详细。

    3.4 卸载 opatch

    3.4.1 关闭实例和监听

    SQL> shutdown immediate

    3.4.2 执行opatch命令

    -bash-3.2$ cd $ORACLE_HOME/OPatch/

    -bash-3.2$ ./opatch rollback -id 5689937

    3.4.3 启动实例,执行catcpu_rollback.sql脚本

    -bash-3.2$ cd $ORACLE_HOME/cpu/CPUJan2007/

    -bash-3.2$ sqlplus /nolog

    SQL*Plus: Release 10.2.0.1.0 - Production on Mon Aug 9 05:04:19 2010

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    SQL> conn / as sysdba

    Connected to an idle instance.

    SQL> startup

    ORACLE instance started.

    Total System Global Area 281018368 bytes

    Fixed Size         1218968 bytes

    Variable Size      109053544 bytes

    Database Buffers     167772160 bytes

    Redo Buffers        2973696 bytes

    Database mounted.

    Database opened.

    SQL> @catcpu_rollback.sql -- 这个脚本在patch的安装目录里也有

    如果在运行中出现无效对象,运行如下脚本:

    SQL> @?/rdbms/admin/utlrp.sql

    检查无效对象:

    SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS = ‘INVALID‘;

    关于Patch的说明就到此。 在后说明一点。 有时我们的生产库遇到一个问题,但是又不能十分确定是否是某个bug的时候,可以先考虑打patch看一下,如果解决了更好,如果不能解决,把patch删掉即可。 这样可以把问题控制在可控的范围内,避免把问题扩大化。

转://Oracle补丁及opatch工具介绍

标签:version   uri   冲突   ls -l   独立   不同   目录   客户   and   

热心网友 时间:2022-05-02 00:07

  给软件打补丁相当于给人打预防针,对系统的稳定运行至关重要。本文详细、系统地介绍了Oracle数据库补丁的分类、安装、管理等问题。

  厂商提供给用户的软件补丁的形式多为编译后的库函数,所以安装软件补丁实际上就是把这些库函数拷贝到相应目录,并在需要时进行联接操作。软件公司一般在一段时间后会把针对某一版本的所有补丁进行整理:合并融合,解决冲突,进行整体测试,并使文件拷贝和联接操作自动执行,得到一个软件补丁“包”。不同的公司使用不同的名称,现在一般计算机用户都熟悉的Windows Service Pack就是这样的补丁包。Oracle公司给出的补丁包的名称是Patch Set,安装Patch Set后的版本称Patch Set Release(PSR)。

  Oracle公司对处于标准技术支持的产品不定期地提供PSR,例如在完成本文时,版本10.2的最新PSR是10.2.0.2;版本10.1的最新PSR是10.1.0.5;版本9.2的最新(也极可能是最终)PSR是9.2.0.8。

  在安装最新PSR后新发现的Bug,其相应补丁当然会收录到下一个PSR中。PSR是累积型的,即下一个PSR中会包括当前PSR中所有补丁和新发现Bug的补丁。同时存在几个PSR时,只需安装最新版本一次就可以了。但是由于PSR的发行有一定间隔,如果这些Bug对用户有比较大的影响,那么 Oracle公司也会向用户公开和提供这些补丁,这些补丁被称为个别补丁(Interim Patch,one-off patch 或 Patch Set Exception)。而对于最终补丁发行版而言,由于不再有下一个PSR,所以当发现影响系统的新Bug时,个别补丁成为惟一选择。

  此外,Oracle公司还定期发布安全补丁,称之为CPU(Critical Patch Updates)。安全补丁用来修复软件的易受攻击性(vulnerability)或通常说的安全漏洞。这类问题本来不属于软件错误,在正常使用中不会出现任何问题。但是别有用心的人可以通过运行非常精巧设计的代码,绕过数据库系统的安全管理机制,达到非授权存取的目的。

  另外还存在一类补丁:诊断用补丁(diagnostic patch)。顾名思义,这类补丁不是用来解决问题的,而是用来寻找问题的原因的。这类补丁只在Oracle技术支持部门要求安装时,才需要安装。在得到需要的诊断信息后,应立即卸载这一补丁。

  利弊及时机选择

  负责管理支撑大型应用系统的数据库的DBA会容易理解安装软件补丁的代价。安装PSR需要停止数据库服务,关闭数据库,对于许多应用系统安排这样的停机时间本身就是一件比较困难的事情。事实上,更为严重的是由于安装PSR可能“引入”新的Bug,反而影响应用系统的正常运行。软件补丁本来是修正 Bug,怎么会带来新的Bug?虽然有些让人匪夷所思,但很不幸这是现实存在的。

  对于每一个PSR,其中都包括了少则几百多则上千个严重Bug的修正。即便是如此,在PSR发布后,很快就又会在安装PSR后的数据库中发现一些新问题。其中一部分Bug是以前就一直存在的只是以前没有发现,而现在偶尔被发现,或者是由于PSR修正了某一错误从而将其“激活”或容易发现。但是确实有一些Bug是由这一PSR造成的,Oracle技术支持部门称其为倒退(Regression)。对于每一PSR,在metalink中有两个重要的与之有关的文档,一个是“List of fixes added in XXXX”,是这一PSR修复的Bug的清单,是一本“修复列表”;另一个是“Known issues and alerts affecting XXXX”,是安装PSR后发现的问题,可以称其为“悔过列表”。由于大型软件的复杂性,Bug几乎是不可避免的。重要的是能够及时提供信息,DBA可以结合自己系统的情况做出正确的判断。读者不必因为知道还存在着Bug,就对Oracle数据库产品失去信心。PSR修复的上千个Bug中绝大多数是在一些很少见的环境中,或者是若干个组件的复杂组合使用的情形中发生的。

  如果系统在运行中出现过某种问题,由Oracle技术支持部门或第三方的专家确认原因是PSR中的某一Bug,这样就必须尽早安装;如果系统一直运行正常,并且在PSR已发现的问题中涉及的组件或功能(如Logical Standby, JVM,RAC等)在系统中并不使用,此时可以选择安装也可以选择不安装。

  另一个需要考虑的因素是安装补丁的时机。上述这些考虑的一个重要前提是系统已经投入运行,担心“倒退”的Bug影响系统。如果系统还处在开发和测试阶段,不需要有任何犹豫,安装最新的PSR,并在此基础上测试应用系统是否工作正常。如果发现异常,要及时请Oracle技术支持部门确认是否新Bug,如果是请其提供个别补丁。目的就是在一个尽可能完善稳定的数据库平台上测试应用系统。我们可以把这种安装补丁的策略概括为“补丁补新不补旧”。

  以上都是针对PSR的安装,对于个别补丁,由于补丁修复的Bug单一,容易判断是否需要安装。需要注意的是,如果在当前PSR之上安装了若干个个别补丁,那么在下一个PSR发布后,在安装下一个PSR之前,需要卸载所有个别补丁。为便于管理,现在Oracle技术支持部门要求必须使用工具 opatch安装管理个别工具,而尽量避免手动拷贝文件等操作。

  最后是安全补丁安装的判断。虽然安全漏洞这个词看上去让人觉得非常严重,但是还要冷静综合分析这些漏洞在系统中的危害程度。事实上,不安装安全补丁的危险性可能远远小于始终不渝地使用scott/tiger这样人人都知道的用户名和口令的“标准缺省”做法。

  安装PSR

  使用oui工具安装PSR时只需要用鼠标做几个选择就可以进入自动执行的阶段,操作过程本身非常简单。但是如果要求必须一次安装成功;要求必须在凌晨2点到4点这个有限的停机时间段完成操作;要求安装过程不出差错,以后出现问题时能够完全排除此次操作失误的可能性,那么就需要在启动oui之前做一些准备工作。

  1. 收集信息

  有关PSR的信息中,一个最重要的文档就是软件补丁说明,这个文件相当于技术手册中的安装指南和发行说明。文件本身包含在下载的软件补丁文件之中,文件名是patchnote.htm或README.html。需要注意的一个问题是在软件补丁文件之中找到的这一Patch Set Notes可能不是最新版,可以根据文件内的提示信息在metalink中检索最新版。

  另外两个重要文件就是前面已经提及的“修复列表”和“悔过列表”,相对于“修复列表”更应该仔细阅读“悔过列表”中的每一项内容。另外,在Patch Set Notes的已知问题(Known Issues)一节内列出了安装PSR后出现的一些问题。

  除去这三个主要文件外,还应在metalink中检索,寻找是否还有其他涉及这一PSR的技术文章,寻找其他用户在安装这一PSR时或安装后遇到问题时所发的救助的帖子,前车之鉴更应重视。

  2. 做出判断

  在认真阅读收集到的文章之后,根据自己系统的实际情况,做出是立即安装PSR,或是等待下一PSR的决定。如果是暂缓安装,则要记录原因,以便以后跟踪Bug的修复进程。

  3. 制订实施计划

  在决定安装PSR后,需要制订一个实施计划。在计划中不仅要包括正常的操作步骤,更要考虑在出现意外时的应急处理(如果安装PSR失败,则在正常应用开始时间之前,要恢复系统到安装之前的状态)。如果可能,在对正式系统开始实施之前,应在测试系统中进行演练和应用处理的测试,保证在安装PSR后不会影响应用系统的运行。

  安装PSR的计划大致有以下几个部分:停止数据库服务关闭数据库;备份DBMS软件和数据库以备恢复之用;安装PSR软件;更新数据库数据字典升级PSR版本;正常启动数据库开始数据库服务。

  看似简单的关闭数据库的操作,在系统构成复杂时也会变得不容易。另外,如果夜间作业时间不允许在完成数据库完全备份之后再安装PSR,则安装PSR的日期应该选择在例行的数据库完全备份的下一个晚上,只备份重做日志。

  在安装PSR之前备份DBMS软件的目的是,由于安装PSR会对许多程序和库函数进行更新,如果安装PSR中途失败(虽然可能性非常小),有可能造成DBMS软件出现不一致。另外一种可能的情形是,在安装PSR,更新数据字典后,测试应用系统时,出现了某种异常,原因不明,最终决定放弃PSR。如果操作之前没有备份,则此时只有重新安装软件一种选择(PSR不同于完整软件安装,在oui中无法单独卸载PSR软件)。

  对文件、目录和文件系统的备份,最简单的方式可以使用cp、tar、mp等命令完成。如果希望缩短文件拷贝时间,可以考虑分区备份的方法。分区备份常用的命令是dd。但是,分区拷贝比文件拷贝速度快的前提是良好的分区设计:Oracle软件单独占一个大小适中(如4GB)的分区,这样扇区拷贝才会体现优势,这也就是为什么在安装软件时,Oracle建议单独使用一个分区安装软件的原因之一。

  在制定实施计划时,应认真阅读Patch Set Notes中有关操作前准备工作一节。在这节内会介绍对于一些特殊系统构成,如果你的系统属于文档中提到的构成,一定要首先阅读文内提示的相关技术文章,找到正确的安装步骤。

  使用oui, PSR软件安装完成后,一定不要忘记更新数据字典这一步骤。如果在这一ORACLE_HOME下生成了多个数据库,则每个数据库都必须更新数据字典。
  . 实施操作

  制订一个详细的计划后,实施操作就可以“照本宣科”,是一个简单的体力劳动。要认识到“忙中出错”的概率远比“急中生智”大得多,操作时尽量减少失误的可能性。例如,需要执行的复杂命令,尽可能从一个文件拷贝到终端执行,而不要现场输入。另外,在实施过程中,要记录各个阶段实际的执行时间,以供以后制订类似计划时参考。

  5. 检查操作结果并记录备案

  执行一个操作,操作是否成功,一定要进行检查,不能简单认为没有出错信息就是成功。要知道验证的方法。除去极个别极费时间的验证(分区备份的内容是否可以成功恢复系统,必须恢复分区,启动数据库,测试应用系统后才能确认),其余操作都应进行验证。所有屏幕输出信息和日志文件都应保留,作为安装报告的附件提交给上级或客户。

  在屏幕输出或日志文件中出现异常/错误信息时,应即时分析,决定马上采取的措施。出现严重错误时,可能需要重新执行某一SQL程序,或者重新安装PSR。所以在制订实施计划时应在时间上留出异常情况处理的时间。

  下面给出一个在Linux平台上安装10.1的PSR的实例,给从未安装PSR的读者有一个感性认识。

  操作系统是RHEL AS4.0 Update3,Oracle的当前版本是10.1.2。在metalink中检索,找到10.1版的最新PSR10.1.0.5。下载压缩文件。在压缩文件中找到Patch Set Notes,该文档的完成日期是2006年1月。而按照文档内的提示在metalink中检索得到的此文档的最新版本完成日期是2006年4月。使用文件比较工具进行比较,两个版本没有实质性差别,只有语句措词的修改,但是养成总是检索最新文档的习惯有益无害。

  根据Patch Set Notes中的说明,有一些特殊系统构成需要额外的步骤,本例中由于全部没有涉及到,所以可以按标准步骤执行。

  另外,检查“Known issues and alerts affecting 10.1.0.5”文档后,发现10.1.0.5引入的影响最大的一个Bug是执行SELECT MAX()在某些特定条件下结果不正确。而这一Bug可以通过设置事件(event)关闭FIRST ROW优化而避免。最后的结论是这一BUG不会对本系统有影响,可以安装PSR10.1.0.5。

  1. 检查数据库表空间和初始化参数是否需要调整。

  System表空间要求有一定未使用空间:初始化参数SHARED_POOL_SIZE 和 JAVA_POOL_SIZE不能低于最小值150MB。

  2. 关闭数据库,停止listener和agent等进程。

  3. 解压缩下载文件至某一目录,执行oui。

  在压缩文件中附带的oui的版本要比已经安装的版本高,应总是使用新版本的oui。在oui窗口中,要求选择本次安装的软件的位置,正确的位置是解压缩目录下的子目录Disk1/stage/, 选中procts.xml即可开始文件拷贝。

  要注意窗口中会出现本次安装的日志文件的文件路径和文件名。文件的位置是在Oracle的inventory所在目录的子目录logs中,文件名由前缀InstallActions和安装日期时间组成,如: InstallActions2006-08-30-11-32-48AM.log。

  正常结束后,退出oui。打开日志文件,检索是否出现error 或“ORA-”的错误信息。本次安装产生的日志文件内,没有任何此类的信息,表明PSR软件安装成功。如果此时再次启动oui,点击“已安装软件”,则可以看到在原有的10.1.0.2软件之下,新出现了10.1.0.5一项,这也证实PSR软件安装成功。

  4.更新数据库数据字典

  更新数据字典时,必须以特殊的升级方式打开数据库。

  $ sqlplus /nolog

  SQL> CONNECT / AS SYSDBA

  SQL> STARTUP UPGRADE

  SQL> SPOOL patch.log

  SQL> @?/rdbms/admin/catpatch.sql

  执行结束后,关闭重定向:

  SQL> SPOOL OFF

  打开文件patch.log检查是否有错误“ORA-”。(这一文件在启动sqlplus时的当前目录中,当然也可以在“SPOOL patch.log”语句中显式指定文件路径。)如果出现错误要分析原因,在解决问题后,需要再次执行catpatch.sql程序。

  更新数据字典时,由于对某些PL/SQL包删除后又重新生成,造成相关PL/SQL包的状态为异常(invalid)。在以后调用这些包时,检测到其状态为非法,会自动执行编译命令,使状态成为正常(valid)。虽然不会出错,但会造成个别处理第一次执行时变慢。显然,与其留到应用系统运行时再一个个编译,不如之前集中一次重编译所有异常包。

  SQL> SHUTDOWN

  SQL> STARTUP

  SQL> @?/rdbms/admin/utlrp.sql
  最后,根据Known Issues中的指示,完成与本系统有关的操作。例如,修改Pro*C的配置文件。这里执行一个修改文件存取权限的“后操作”,以便非同组用户和程序可以存取客户端工具和库函数。

  $ cd $ORACLE_HOME/install

  $ ./ changePerm.sh

  个别补丁管理工具opatch

  如前所述,在发布一个PSR后发现的新BUG,只能把其补丁收入到下一个PSR中。如果对数据库有实质性影响,则这一补丁以个别补丁的形式向用户提供。个别补丁是与某一个特定的PSR关联,是安装在这一PSR之上的。另外,如同其名字表明的,个别补丁只是单一Bug的补丁,不会包含其他个别补丁,即不是累积型的。

  在9.2版之前,安装个别补丁的操作完全是手工的。这种手工方式的缺点不仅在于加重DBA的负担,容易造成操作失误,更严重的是无法对已安装的个别补丁进行管理。

  为解决手工方式的缺陷,从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。对于DBA来说一个好消息是,如果安装9.2版软件时保留了HTTP服务器,则在$ORACLE_HOME/Apache下会自动安装perl。(10g会自动安装配置perl 和opatch。)

  opatch命令格式为:

  opatch < command > [< command_options >] [ -h[elp] ]

  命令有:apply(安装个别补丁)、rollback(卸载个别补丁)、lsinventory(对inventory进行列表)、query (显示某一个别补丁的详细信息)、version(显示opatch版本信息)。在opatch目录下,有用户使用指南文件(Users_Guide.txt),其中有详细的命令格式和使用示例,读者可以参考。Opatch执行操作时,除在屏幕输出结果外,还生成日志文件。日志文件的路径和文件名格式如下:

  $ORACLE_HOME/.patch_storage/< patch_id >/< action >-< patch_id >_< mm-dd-yyyy_hh-mi-ss >.log

  其中“patch_id”是Oracle技术支持部门为个别补丁分配的编号。

  4. 个别补丁安装实例

  沿用安装PSR实例中的环境。在安装PSR10.1.0.5后,检索metalink,发现若干在其之上的个别补丁。选择其中之一安装。

  个别补丁Patch 4518443修复BUG4518443,这一BUG的主要问题是TNS LISTENER在注册ONS(Oracle Notification Services)的同时如果创建子进程,那么LISTENER会挂起(HANGUP)。

  安装时,首先,从metalink下载补丁的压缩文件p4518443_10105_LINUX.zip。将此文件解压缩至某一目录中。解压缩后,这一补丁的所有文件都在子目录4518443下,目录名就是个别补丁的补丁号,opatch依据目录名获得信息,所以一定不要重命名子目录。

  然后,在终端窗口中,执行cd命令移动到4518443子目录中,执行以下命令:

  $ $ORACLE_HOME/OPatch/opatch apply

  对inventory列表,确认安装操作:

  $ $ORACLE_HOME/OPatch/opatch lsinventory

  执行卸载命令时,也必须使4518443子目录成为当前目录。其中,Rollback命令需要两个参数:-id给出个别补丁号;-ph 给出个别补丁解压缩后的路径。

  $ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/4518443

  随后再对inventory列表,则会看到这一个别补丁已经被移去。

  4. 使用opatch显示已安装的版本信息

  不需要启动数据库,执行加选项的对inventory的列表命令,可以得到已安装的软件的各个组件的详细版本信息。

  $ $ORACLE_HOME/OPatch/opatch lsinventory -detail

  安全补丁CPU

  一个CPU内包含了对多个安全漏洞的修复,并且也包括相应必需的非安全漏洞的补丁。CPU是累积型的,只要安装最新发布的CPU即可,其中包括之前发布的所有CPU的内容。事实上,在CPU之前的安全漏洞修改除去个别例外也被包括在CPU中。Oracle公司只对处于标准技术支持和延长支持期间的产品提供CPU更新,对处于维持支持范围的产品不提供新的CPU。(对于9.2以前的版本,只对处于ECS和EMS期间的版本提供CPU更新。)一般对当前补丁发行版及前一个版本提供CPU,但也有只限于当前补丁发行版的例外情形。也就是说,一般需要先安装最新PSR后才可能安装CPU。由于是累积型的定期发布,所以对于某一平台的某一版本,如果两次CPU发布期间没有发现新的安全漏洞,则新发布的CPU与前一版本完全相同。

热心网友 时间:2022-05-02 01:25

CVE-2012-1675 需要设置下listener.ora 配置文件,禁止远程数据库注册到listener上。
11.2.0.4以及以上可以使用vncr功能。
详见文档:
《Valid Node Checking For Registration (VNCR) (文档 ID 1600630.1)》

11.2.0.4以下详见文档:
《Using Class of Secure Transport (COST) to Restrict Instance Registration (文档 ID 1453883.1)》
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
与小人共事 不如一人独处 树经不住千斧 人经不住千言 大格局的个性签名 用一和不来写成语题目一()不()写成语 "层''字开头的成语 带"一( )不( )"的成语 广州有修皮手袋、皮包、皮衣的地方吗?有改皮衣的吗? 有知道济南什么地方修改皮衣比较好的吗 哪里有皮衣翻新店 诺基亚6220侧面的照相按钮是不是不能启动相机? ...6220c的拍照照相快捷键都需要很用力按吗?6220的后镜头盖都松吗?_百... 七彩虹主板bios刷新工具使用方法是怎样的 捷波主板在线刷主板BIOS工具在哪下载? BIOS刷新修改工具大家有吗? vivox7怎么设置2g网络 刷华硕M3N78-CM的bios可以用通用的刷新软件吗? vivo x7怎么设置2g网络? 845主板怎么刷新BIOS?用什么工具? 多肽合成的反应条件 怎么设置vivo v3的2g网络? bios通用刷新工具 vivo怎么切换2G 重刷BIOS用什么工具? 怎么刷新BIOS 升级BIOS 多肽合成路线求助 bios刷新工具 vivoX9怎么切换2G信号? 多肽是怎么弄的 电脑刷BIOS用什么工具刷最好 vivox7怎么把4G网络改成2G网络 联想主板刷新BIOS工具 用什麽工具刷新BIOS 我的是F41,WIN7下怎么用刷bios工具不能刷了,求高手 bios刷新的工具有哪些 常用的联想笔记本bios刷新工具有哪些 陕西省高等学校学生资助信息管理系统的密码忘了怎么办 学生资助管理系统的设计与实现 windows下刷bios的tool叫什么 高校学生资助管理信息系统学生信息是否可以重置 陕西省高等学校学生资助信息管理系统 跪求在线观看网剧,【免费高清】在线观看百度网盘资源 如何进行BIOS刷新,具体步骤是什么 拳击的基本拳法 求拳击的拳法! 听说拳击有五种拳法 除了直摆勾还有哪两种? 曹曦月的低胸图片 求一款耐用的游戏手柄 这个人叫什么?哪里下载到他的图片 曹曦月和许峰是什么关系?求知道的告诉我一下啊!亲 请问哪些PC手柄比较耐玩耐用? 哪个牌子的游戏手柄耐用