ORACLE数据库:补丁建议

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

ORACLE数据库:补丁建议

【问题描述】

     在安装了ORACLE19c、11204或12102版本的数据库软件后,还需要给数据库软件打上补丁,避免生产运营时,遇上已知BUG,最大限度地确保数据库稳定、高效地运行。如下,是部分常遇上的BUG:


--11204版本,

bug: 12646133,错误特征:做导出操作时,会遇上此错误(导出日志文件里会记录): ORA-600 [qmcxeWSNQ1] when exporting a column of type "XMLType storage binary"


bug: 14275161,错误特征:ORA-600 [rwoirw: check ret val] on CTAS with predicate move around


bug: 16086769,错误特征:ORA-600 [13011] ORA-600 [13013] when executing a DML if the WHERE clause includes an added column with a default value

bug: 18405192,错误特征:Create Table Fails with ORA-07445 [evaopn3()+135]

 
bug: 20048270,错误特征:ORA-00979: not a GROUP BY expression

--12102版本:

bug: 16756406,错误特征:ORA-00600: internal error code, arguments: [kpp_concatq:2],
 
bug: 19509982,错误特征:ORA-01792 "MAXIMUM NUMBER OF COLUMNS IN A TABLE OR VIEW IS 1000"


bug: 20048270,错误特征:ORA-00979: not a GROUP BY expression 

遇到上面罗列的bug,都得打补丁才能修复。


【解决方案】


下面罗列的,是客户数据库遇上问题时,我们分析后发现是 BUG 的汇总情况:


--1、19C版本,请打上此补丁集(或者比这更高版本):


  p36233126_190000_Linux-x86-64 -- GI 版本(RAC架构,202404期,下同)。 

  p36233263_190000_Linux-x86-64 -- RU补丁集,数据库版。 

  p36199232_190000_Linux-x86-64 -- OJVM。


打完RU补丁集后,ORACLE建议,再给数据库环境,打上基于该期RU补丁集的MRP补丁集,操作方法如下:再查阅官网的此文档:Oracle Database 19c Proactive Patch Information (Doc ID 2521164.1),找出该RU补丁集对应的MRP补丁集,下载并打上,如,当前时间为:2024/06/21,可以下载202404期的RU补丁集(19.23),对应的6月份的MRP补丁集(Patch: 36701173):



下面截图,是单节点数据库环境,打了19.23.0.0.240618 MRP(36701173) 后的补丁的情况:



--2、11024版本,请打上这些补丁集:


   2.1 p31718723_112040_Linux-x86-64.zip -- GI 版本(RAC架构,202010期,下同)。

   2.2 p31537677_112040_Linux-x86-64.zip – 单节点数据库。

   2.3 p31668908_112040_Linux-x86-64.zip -- Ojvm。


--3、其次,可以考虑打上这些一次性的小补丁:   

   8857940,12646133,14275161,16086769,16311211,17080195, 17306264,

  18498878,191746391967865820048270,221138542492139229020423


--4、对于12102版本,需要打上这些补丁集:


    p34204576_121020_Linux-x86-64.zip -- GI 版本(RAC架构,202207期,下同)。

    p34057742_121020_Linux-x86-64.zip – PSU补丁集,纯数据库版。

    p34086863_121020_Linux-x86-64.zip -- OJVM。


--5、其次,还有这几个一次性的小补丁:19509982,2004827021128593,21131203,22513913。


一. 主要步骤

   
6  说明:

6.1  补丁文件须从 ORACLE 的官网:https://support.oracle.com 下载。此时,需要有账号密码才能登录该网站, 而要获得账号密码,需向 ORACLE 公司购买数据库软件的使用版权(及续约服务)。

6.2  打补丁之前,请仔细阅读补丁文件里自带的  README.HTML/TXT 文件,按照该文档的指引操作。

6.3  打补丁之前,最好先在测试环境演练一遍,熟悉下打补丁流程及命令,再到正式库操作。

6.4  对于 RAC 环境,请选择先打GI补丁集,如:p31718723_112040_Linux-x86-64.zip(11204版本,12102版本的一样思想),再打OJVM:p31668908_112040_Linux-x86-64.zip。若是单节点(区别于 RAC 环境),则先打PSU补丁集: p31537677_112040_Linux-x86-64.zip,再打OJVM。说明一下,这里强调的是打补丁的顺序,在后续的补丁集中,GI补丁集里,可能不仅包含GI,DBPSU,连OJVM补丁集也包含了,可一次性打上这3类补丁集。

6.5  得先打了补丁集,再打小补丁;此时,需寻找和补丁集匹配的小补丁来打。也就是,小补丁必须是和PSU补丁集同期,或者最接近PSU补丁期(必须 <= PSU补丁期)。如:小补丁:20048270_11204180717,与和补丁集 p31718723_112040_Linux-x86-64.zip 是最接近的版本(两者之间,没有比前者更新的版本),此时一般会兼容。

     
     不兼容的意思是:打了20181016期补丁集后,再打这小补丁,会报错,提示两者有冲突。


6.6  若是RAC环境,建议使用 root 身份,执行  opatch auto 命令来打补丁,这样可以一次性打上所有的补丁,包括GI和ORACLE 账号的补丁,


6.7  截止当前,ORACLE 19C版本还在生命周期内,RU补丁还在陆续更新推出, 其每3个月推出一版本(1月、4月、7月、10月),请到官网下载最新版本使用。



【如何检查数据库环境,打了哪些补丁?】


7.1  以安装集群,或者数据库软件的操作系统账号(操作系统账号通常命名:GRID/ORACLE),登录数据库服务器。
7.2  执行命令:$ORACLE_HOME/OPatch/opatch lspatches

7.3  若是RAC环境,则对于集群软件的属主(系统账号通常叫:GRID),会查看到3个补丁集,如下:


--注:下面看到的补丁情况,已经过期,需要升级

[grid@rac01 ~]

$opatch lspatches

27441052;OCW PATCH SET UPDATE: 11.2.0.4.180417 (27441052)  -- OCW补丁集,源于PSU补丁集中,

27734982;Database Patch Set Update : 11.2.0.4.180717 (27734982)  -- PSU补丁集

27959254;ACFS Patch Set Update : 11.2.0.4.180717 (27959254)  -- ACFS补丁集


OPatch succeeded.


而在数据库软件的账号下(通常命名为ORACLE),则会查看到:

[oracle@rac01 ~]

$opatch lspatches

29020423;

20308798;

22826067;

,,,  -- 多个一次性的小补丁

27923163;OJVM PATCH SET UPDATE 11.2.0.4.180717 -- OJVM 补丁集

27441052;OCW PATCH SET UPDATE: 11.2.0.4.180417 (27441052) -- OCW 补丁集

27734982;Database Patch Set Update : 11.2.0.4.180717 (27734982) -- PSU 补丁集


切记,对于RAC环境,不论是GRID账号,还是ORACLE账号,都需要打上OCW补丁集,


7.4  但若不是RAC,而是单实例的数据库,则不需要 OCW 补丁集,如下:


[k3dbsrv@oracle ~]

$opatch lspatches

20308798;

,,,

12646133;

28440700;OJVM PATCH SET UPDATE 11.2.0.4.181016

28204707;Database Patch Set Update : 11.2.0.4.181016 (28204707)


7.5  若查询结果返回的是下面的信息,说明在该 ORACLE_HOME 目录下,没安装任何补丁。

       $ORACLE_HOME/OPatch/opatch lspatches

       There are no Interim patches installed in this Oracle Home  
       
7.6  打完补丁集后,通常都需要在数据库里跑个脚本,以便让数据库匹配更新后的数据库软件,有时候,一些一次性的小补丁,也会要求跑个脚本,所以,请注意阅读补丁自带的 README.HTML/TXT 文件,按其要求操作。


8  若客户已经打了补丁,把查询到的补丁列表罗列出来即可;若没打过,则建议客户打补丁。

ORACLE数据库:补丁建议

【问题描述】 在安装了ORACLE19c、11204或12102版本的数据库软件后,还需要给数据库软件打上补丁,避免生产运营时,遇上已知BUG,最大...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息