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,19174639,19678658,20048270,22113854,24921392,29020423,
--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,20048270,21128593,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数据库:补丁建议
本文2024-09-23 01:16:03发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-144854.html