欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle补丁种类和升级方法

程序员文章站 2022-10-31 23:55:14
oracle补丁种类和升级方法,oracle有很多种补丁类型,我们应该对oracle的补丁类型有一定了解,特别是一些关键的补丁,可能客户会定期对数据库升级,无论修复bug,还是为了...

oracle补丁种类和升级方法,oracle有很多种补丁类型,我们应该对oracle的补丁类型有一定了解,特别是一些关键的补丁,可能客户会定期对数据库升级,无论修复bug,还是为了安全。

下面我对数据库的补丁进行一定的讲解:

补丁类型:

1. release

这个是数据库的基本版本, 标准产品发布。如OracleDatabase 10g Release 2的第一个发行版本为10.2.0.1,可以在OTN、edelivery等站点上公开下载

现在在网上只能下载oracle 11g和oracle 12c。

2. Patch Set Release

就是早期大家常说的PSR。这是在主版本号上发布的补丁集,修复了较多的Bug,可能会包含一些增强功能(Enhancement)。比如11.2.0.1是一个主版本,那么11.2.0.2、11.2.0.3就是2个不同的Patchset。这种补丁集经过了严格的集成测试,也是累积型的。所以推荐安装最新的Patch Set

这种补丁在oracle11.2之前都是覆盖方式升级,就是直接补丁覆盖原来软件,这样停机时间会长。如果需要升级到oracle10.2.0.5,那么只能先安装oracle 10.2.0.1,然后升级到oracle 10.2.0.5.;到oracle11.2之后 oracle使用Out-of-Place,就是补丁可以直接安装了,并且如果想升级到oracle 11.2.0.4的时候不需要先安装oracle11.2.0.1,然后升级到oracle 11.2.0.4,可以直接安装oracle 11.2.0.4。可以将Oracle Database安装的新的OracleHome目录,当安装结束后,旧的database会迁移到新的Oracle HOME目录。 这种方法是oracle推荐的方式,它可以降低停机时间,也相对更安全。但是这种方法需要至少两倍的磁盘空间。

3. Patch Set Update

就是DBA&DMA们常论道的PSU。Oracle选取在每个季度用户下载数量最多,并且得到验证具有较低风险的补丁放入到每个季度的PSU中,修复比较严重的一些问题,包含每个季度的CPU,是累积型的。虽然在描述PSU的时候会用到数据库版本第5位,比如DatabasePSU 11.2.0.3.5,但实际上打完PSU后并不会真正改变数据库的版本,从v$version中看到的版本还是4位的(11.2.0.3.0),第5位仍然是0。

这种补丁客户会经常进行操作的,也是我们需要必会的。

4. Critical Patch Update

这个指的就是CPU补丁。每季度发布一次,用来修复安全方面的一些补丁,是累积型的。目前(2012年10月)已经更名为Security Patch Update (SPU)
¤ 这类问题本来不属于软件错误,在正常使用中不会出现任何问题。但是别有用心的人可以通过运行非常精巧设计的代码 ,绕过数据库系统的安全管理机制,达到非授权存取的目的

这种补丁是偏向安全的,就是修复oracle漏洞

5. Interim Patch/One-Off Patch

是我们常说的小补丁,为了修复某(几)个Bug而发布的补丁。这种补丁推荐在测试库上测试无误后再安装在生产库上,这种补丁是oracle最小单元。

6. Bundle Patch(BP)

补丁集,修复多个Bug。在Windows平台上的Oracle没有小补丁,只有这种BundlePatch。 这种累积型的补丁集会周期性的发布(至少每季一次),也就是每个Bundle Patch会包含之前所有的BundlePatch。比如Windows Bundle Patch 16,它会包含之前所有15个BundlePatch,所以我们总是推荐安装最新的Bundle Patch。Oracle的集群软件和数据库软件的WindowBundle Patch是同一个,比如Windows Bundle Patch 16(补丁号16167942,既可以打在集群上,也可以打在数据库上)

补丁打得方法和注意事项:

以上的补丁除了psr直接使用runInstaller,其他的补丁类型都是使用opatch命令,在oracle 10g之前,我们需要单独下载此命令,到oracle 10g之后这个命令在 ORACLE_HOME/Opatch下,因此,最好在环境变量path中添加以下

打补丁需要inventory是没有问题的,需要通过opatch lsinventory来验证。

由于rac环境除了psr,其他补丁类型可以每台服务器单独打,因此在打补丁的时候加上-local。如:

opatch apply -local

除了psr,其他补丁可以回退,回退方法:opatch rollback -id 后边跟补丁号。