转://Oracle数据库补丁分析实践

小弟我最近做了几次补丁分析,最开始分析补丁,感觉挺痛苦的,因为补丁数量多,且涉及的知识点非常非常的广,客户的要求又非常高。挺伤不起的。不过随着分析的深入,我慢慢的掌握了一些小方法。也在support网站上找到了一些相关性的文章。现在进步了很多。所以想写篇文章,帮助那些受此困扰的兄弟们。

早在几年前,我的一个客户朋友告诉我一件事情,他们升级数据库到最新版本,结果上线后发现一条SQL运行错误,返回的结果集和以前版本返回的结果集不一致,他们紧急开了SR,申请了新补丁开发,可是这个过程需要一定的时间。最终他们选择了数据库降级处理。这真是一个血的教训。在很多大型的企业,对这种升级之后,都会做一系列的功能测试,但是对于他们这种小企业,就是领导脑门一热,一拍板就升上去了。这就导致了这个血的教训出现。

我们需要换位思考下。对于我们的客户来说,在升级的时候,考虑最多的就是平滑过渡,追求的是稳定与安全。那么我们作为服务商就需要给客户提供安全感,所以补丁分析这事情也就纳入到了议程。

已经修复的问题

我们遇到一般比较严重的问题有以下几种,这样的问题会严重影响到数据库的使用,我们在一开始就需要关注这方面的补丁是否已经修复。当然我们需要考虑一点,比如ASM的某个功能有BUG影响到Instance Crash,但是我们不使用ASM技术,所以这些补丁我们是可以不关注的。这个要求我们需要熟悉我们数据库使用者使用到的功能。

  • Instance Crash
  • Hang
  • Reboot
  • Corruption
  • leak memory
  • SQL wrong Result

针对已经修复的问题,建议参考文档:11.2.0.4 Patch Set – List of Bug Fixes by Problem Type (文档 ID 1562142.1)。同时这个文档还会列出一些已修复的重大问题,如下面列表所示:

13326736* Dictionary corruption / ORA-959 due to DROP TABLESPACE. This bug is alerted in Note:1390632.1
13605839* ORA-600 [ktbsdp1] ORA-600 [kghfrempty:ds]. Corruption in Rollback with Clusterwide Global Transactions in RAC. This bug is alerted in Note:1527740.1
13384397+ wrong results / OERI:[kkooqb: bsj not used] with star transformation
13460353+ Registration of 11.2 database fails against 12.1 CRS stack (required fix for 11g DB with 12c GI)
13467683+ Join of temp and permanent tables in RAC might cause corruption of permanent table. Regression by bug 10352368
13550185+ Hang / SGA memory corruption / ORA-7445 [kglic0] when using multiple shared pool subpools
13645917+ PMON block recovery loop – instance hang
13786142+ Cannot drop/replace trigger in editioning environment
14398428+ Sporadic Wrong results from Exadata (duplicate rows)
14668670+ Wrong results when execution plan shows nested loop batching
16299065+ ORA-1206 in SOURCE database after RMAN duplicate
14332688P* Solaris / HP: ORA-29701 raised in ASM i/o path. This bug is alerted in Note:1561271.1
13443029P+ AIX: Excess "work USLA heap" process memory use in 11.2 on AIX

可以看到这些补丁都是很严重的损坏,包括我们前面说到的corruption、wrong result、Hang等问题。在这个版本已经得到了修复。当然这里列出来的只是大版本的修复的一些严重的补丁。不包含小版本(PSU)修复的严重补丁。

已知缺陷和补丁

已知缺陷和补丁这个可以通过文档11.2.0.4 Patch Set – Availability and Known Issues (文档 ID 1562139.1)查看到,这个里面会列出该版本上的重要缺陷。有些缺陷在最新的PSU已经修复了,也可能没修复的。如下所示:

This section lists alerts and important issues relevant to 11.2.0.4

Bug/Doc Fixed in PSU/Bundle Description Updated
10194190P+   Solaris: Process spin and/or ASM and DB crash if RAC instance up for > 248 days 11/Feb/2014
17761775+ 11.2.0.4.2 ORA-600 [kclchkblkdma_3] ORA-600 [3020] or ORA-600 [kcbchg1_16] Join of temp and permanent table in RAC might lead to corruption 14/Apr/2014
17752121+ 11.2.0.4.2 ORA-600 [kclchkblkdma_3] ORA-600 [3020] RAC diagnostic/fix to avoid a block being modified in Shared Mode and prevent corruption 14/Apr/2014

文档1562139.1里面还会列出因为增强或者修复某个功能所造成的新版本一些行为上的变化,这也是我们需要注意的。

This section lists fixes / enhancements in 11.2.0.4 which may cause a notable change in behaviour.

13543207 Allow Partial Filter push down on UNION ALL View – superseded
13502700 OS audit file naming algorithm can be slow

最后文档还列出了一些严重缺陷或者是一般的问题,让我们去评估在11.2.0.3之上应用这些补丁的风险。

版本选择

这个问题也是让领导很头疼的,首先是大版本选择的问题。例如,是选择11.2.0.3还是选择11.2.0.4,这个我觉得首先得看你升级的时间,假设现在刚刚出11.2.0.4,还没有出任何的PSU,那么我建议你选择11.2.0.3,安装最新版的PSU。即使11.2.0.4包含了11.2.0.3 PSU 7的所有补丁,和2013年10月份的CPU补丁。第二点需要看你对新特性感不感兴趣,Oracle的每一个大版本都会有一些新特性。比如11.2.0.4的新特性有Tracle File Analyzer and Collector等等。11.2.0.3有ACFS anapshot。

大版本选择完了就要选择小版本。比如我们确定了数据库大版本为11.2.0.4后,那么小版本应该选择哪个呢?假设现在是4月份,刚刚出了11.2.0.4 PSU2,我们选择最新出的PSU 2,还是选择上一个版本PSU1呢?这需要我们做一个判断,我们需要去对比11.2.0.4.1和11.2.0.4.2的补丁,如果发现11.2.0.4.2这个版本所修复的功能我不需要,或者修复的关键bug不是很多。那么我建议是选择11.2.0.4.1+选装PSU2的关键补丁。如果11.2.0.4.2这个版本修复的bug众多,而且关键补丁也很多,那么建议直接打到11.2.0.4.2。对于小版本补丁的对比,我建议参考文档11.2.0.4 Patch Set Updates – List of Fixes in each PSU (文档 ID 1611785.1)。这篇文档的好处在于它把PSU1修复的问题和PSU2修复的问题都做了列出。我们可以从文档中看到PSU1只修复了17个补丁,而PSU2修复了多达66个补丁,而且PSU2上面有很多关键问题的修复,例如Buffer cache Management上的修复。解决了几个内存管理引起的ORA-600和ORA-7445错误,可以防止数据库宕机和坏块的出现。所以看完这个文档之后,可以把这些数据拿出来和领导及相关部门反馈,推荐安装PSU2,有理有据。

方法论

到了该结尾的时候了,现在精简一下我的方法。我们需要关注4篇文档。这4篇文档分别帮助我们发现该版本已经修复的问题,该版本还没有修复的问题,各个小版本(PSU)修复的问题清单,及新版本的新特性。通过这4篇文档我们能够给出一个大概的评估,在该版本上面数据库可能会有什么风险,能不能打补丁解决,如果不能,有什么规避措施。最终我们可以整理出一份补丁分析文档出来,交给我们的最终客户,让它去决定是否安装。

11.2.0.4 Patch Set – List of Bug Fixes by Problem Type (文档 ID 1562142.1) 
11.2.0.4 Patch Set – Availability and Known Issues (文档 ID 1562139.1) 
11.2.0.4 Patch Set Updates – List of Fixes in each PSU (文档 ID 1611785.1) 
Oracle Database 11g Release 2 (11.2.0.4) New Features

原文地址:https://www.cnblogs.com/zfox2017/p/8576244.html

时间: 2024-11-09 15:47:45

转://Oracle数据库补丁分析实践的相关文章

Oracle数据库补丁管理及实战_超越OCP精通Oracle视频课程培训11

Oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle软件版本号,掌握oracle补丁分类,目前psu发布情况,opatch补丁工具与安装案例,nterim patch/one-off patch小补丁安装案例及失败的回滚案例,oracle 11.2.0.4的psu补丁集安装案例及失败的回滚案例等日常管理与维护. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http://edu.51cto.com

Oracle 数据库优化-分析现有的sql

在做数据库sql优化时,首先要对现有的数据库sql进行优化,主要包括以下几种: 1.数据库正在执行的SQL是? 2.已经执行过得SQL是? 3.最耗时的的前几条SQL是? 4.最耗IO的SQL是? 5.某条SQL执行的计划是?某条SQL上的优化策略是否起作用? 以下,将对上面的几种情况分别陈述. 一.查询正在执行的sql. select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where

【绝密外泄】风哥Oracle数据库DBA高级工程师培训视频教程与内部资料v0.1

由于是[绝密外泄]资料,防止被查,需要的小伙伴赶紧下载附件中的课件文档. 由于视频太大了,已放在百度网盘了,已经在附中说明,以免被和谐. ---------------------------------------------- 第一部分:Oracle视频压缩包目录列表 ---------------------------------------------- 01.[绝密外泄]风哥全套Oracle数据库DBA高级工程师培训教程-视频分章节(不断更新) 02.[绝密外泄]风哥全套Oracle

51CTO学院四周年课程分享:Oracle数据库课程优惠活动清单1.0

        51CTO学院四周年活动(7月1日-7月7日)       Oracle数据库课程优惠活动清单(1年只有1次)  微职位优惠2000+.视频单课原价6折.视频套餐折上8折 活动预约QQ:176140749(风哥);   学习交流QQ群:199479729.158277749 推荐活动一:Oracle 云数据库高级工程师微职位(九大阶段.高薪就业.辅导培训) --立减2000元+ 活动地址 http://edu.51cto.com/px/train/131?xiaotu 课程试听

Oracle数据库XXE注入漏洞(CVE-2014-6577)分析

在这篇文中,我们将共同分析一下Oracle数据库的XXE注入漏洞(CVE-2014-6577),Oracle公司1月20日发布了针对该漏洞的相关补丁. 有关XXE的相关知识,可以查看安全脉搏站内的另一篇文章<未知攻焉知防--XXE漏洞攻防>. 漏洞描述 Oracle数据库的XML解析器模块容易受到XML外部实体(XML External Entity , XXE)注入. 受影响版本:11.2.0.3, 11.2.0.4, 12.1.0.1 和12.1.0.2 所需权限:创建会话(CREATE

Oracle数据库中闪回恢复的详细分析

Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback log实现的. flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log则将Oracle数据库往后滚.为了保存管理和备份恢复相

oracle数据库常见故障情况数据恢复分析

一.Oracle启动后无法工作或者数据库无法启动 一旦数据库出现无法启动的情况,首先需要检查system表是否为未损坏状态,通常情况而言,如果system表未被损坏那么很容易进行数据恢复,如果system表已经被损坏,那么就需要数据恢复工作人员手动对表结构进行分析核对,这样数据恢复的周期就相对较长,但是数据恢复成功率依然较高,不用担心数据恢复失败. 二.Oracle 数据库的ASM存储受到损坏 这种故障情况通常是因为ASM的部分设备故障或者由于ASM重置等原因导致的数据库数据丢失.出现这种情况后

本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案

因为要更新数据库加个表,远程桌面又无法连接...所以就远程到另外一台电脑,然后用navicat通过内网修改目标数据库. 一直用着navicat操作数据库,所以很速度的弄好然后新建连接进入数据库. 然而意外就发生了,Cannot create oci environment !!!什么鬼??? 用了这么久第一次碰到这个问题,各种百度发现是oci.dll文件版本不对,然后就是更换oci文件 因为远程的是Oracle 11g所以选择下面那个文件夹内的oci.dll文件,更新后成功. 在百度上也是翻了好

Oracle数据库测试和优化最佳实践: OTest介绍 (转)

当前Oracle数据库最佳测试工具OTest *  Otest是用于Oracle数据库测试.优化.监控软件. *  Otest是免费提供给Oracle客户和广大DBA工程师使用的软件.由原厂技术专家王文杰在业余时间开发,并提供支持.发送邮件到[email protected]可以获得支持和最新版本,以及申请cloud版本的key. *Otest 的临时下载地址(版本更新快,新项目上线,最好发邮件申请): 链接:http://pan.baidu.com/s/1eSD1oSq 密码:3ulm