又是打补丁的一天。欢呼!或不。我意识到在修补当天,所有 19c 包都丢失了。所以在通常的发布日之后写了这篇博文。就我而言,这将包括 Oracle 19.12.0 RU 和 Oracle 12.2.0.1 的 2021 年 7 月 RU。请在下面找到有关使用 2021 年 7 月补丁包修补我的所有环境的详细信息。
Photo by Piron Guillaume on Unsplash
像往常一样,一个重要的预先注释:由于空间问题,我就地修补。但在现实中,你请总是用一个单独的家来修补。请参阅此博客文章,了解在使用 OUI 配置新家时如何直接应用 RU。
2021年7月安全警报
您可以在此处找到所有产品的 2021 年 7 月安全警报。和往常一样,请密切关注数据库服务器产品风险表。Oracle Advanced Networking、Oracle TEXT 和 XML DB 有 7 个以上的问题。所以强烈建议应用这个补丁包。
您可能会意识到风险矩阵中不再提及 11.2.0.4 和 18c。由于两者均不在 Premier 或 Extended Support 中,因此不再有常规补丁包。但是风险矩阵中指出的问题可能会出现在这两个版本中,也可能出现在旧版本中。
此外,Oracle 19.12.0 再次提供了大量修复。
数据库补丁包
您可以在MOS Note: 2773670.1 – Critical Patch Update (CPU) Program Jul 2021 Patch Availability Document (PAD) 中找到指向各个补丁包的链接。但您也可以使用MOS 注释:2118136.2 – 助手:Oracle 数据库/GI 更新、修订、PSU、SPU(CPU)、捆绑补丁、补丁集和基本版本的下载参考来下载“您的”捆绑包。
-
Oracle 数据库 19c
- 适用于 UNIX 的数据库版本更新 19.12.0.0.210720补丁 32904851
- 自述文件
- 修复列表:MOS 注释:2523220.1
-
Oracle 数据库 12.2.0.1
- 数据库 2021 年 7 月发布更新 12.2.0.1.210720补丁 32916808 for UNIX
- 自述文件
- 修复列表:MOS 注释:2245178.1
我需要一个新的 OPatch 吗?
在下载过程中首先检查:我需要刷新我的 OPatch 版本吗?
- 19.12.0 需要 opatch 12.2.0.1.24或以后
- 2021年7月 12.2.0.1 需要 opatch 12.2.0.1.25或以后
就我而言,我需要在两个家庭中更新 opatch。自述文件中的6880880 链接将您直接带到正确的下载。您可能不会感到奇怪,但两个 opatch 版本都是相同的,即使它们在 MOS 上都带有不同的显示标签。所以在我的情况下只下载一次就足够了。
清除OPatch
您家中的当前目录。解压缩新的 OPatch 包后。你可以继续。
将 RU 19.12.0 应用到我的 19c 家
我总是做你不该做的事。我将补丁应用到我现有的家中。这与我实验室环境中的可用空间有关。您请提供一个新家并立即应用补丁,正如我在此处描述的那样。
将 RU 12.2.0.1 2021 年 7 月应用于我的 12.2.0.1 家
我不会复制/粘贴所有步骤,因为输出与上述类似。而且我仍然可以使用 2021 年 1 月补丁应用操作中的 opatch。
1. 补丁冲突和空间检查
$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ Oracle Interim Patch Installer version 12.2.0.1.25 Copyright (c) 2021, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.25 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-07-26_23-01-11PM_1.log Invoking prereq "checkconflictagainstohwithdetail" Prereq "checkConflictAgainstOHWithDetail" passed. OPatch succeeded.
复制
$ $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -ph ./ Oracle Interim Patch Installer version 12.2.0.1.25 Copyright (c) 2021, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.25 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-07-26_23-05-55PM_1.log Invoking prereq "checksystemspace" Prereq "checkSystemSpace" passed. OPatch succeeded.
复制
至少在我的环境中,使用新 opatch 25进行的两次检查都需要很长时间。我想我等了 3 分钟让每次检查返回到命令提示符。由于 opatch 在我下一阶段调用apply时再次执行检查,当它告诉我“正在验证环境并执行先决条件检查… ”时,等待时间再次发生。
现在我很好奇并检查了日志文件/u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-07-26_23-14-10PM_1.log:
[Jul 26, 2021 11:14:23 PM] [INFO] [OPSR-TIME] Loading cooked inventory [Jul 26, 2021 11:14:23 PM] [INFO] [OPSR-MEMORY] : Loading cooked one offs. Heap memory used 514 (MB) [Jul 26, 2021 11:14:28 PM] [INFO] [OPSR-MEMORY] : Loaded cooked oneoffs. Heap memory used : 348 (MB) [Jul 26, 2021 11:14:28 PM] [INFO] [OPSR-TIME] Cooked inventory loaded successfully [Jul 26, 2021 11:14:28 PM] [INFO] CUP_LOG: Found poh CUP 30557433 is a subset of other poh CUP: 30869156 [Jul 26, 2021 11:14:28 PM] [INFO] CUP_LOG: Found poh CUP 30557433 is a subset of other poh CUP: 31281355 [Jul 26, 2021 11:14:28 PM] [INFO] CUP_LOG: Found poh CUP 32218454 is a subset of other poh CUP: 32545013 [Jul 26, 2021 11:17:43 PM] [INFO] Checking if Oracle Home has components required by patches... [Jul 26, 2021 11:17:43 PM] [INFO] CheckMissingComps: Cached file does not exist or is invalid, re-build prereq result. [Jul 26, 2021 11:17:43 PM] [INFO] Checking conflict among patches... [Jul 26, 2021 11:17:43 PM] [INFO] Running prereq checkConflictAmongPatchesWithDetail [Jul 26, 2021 11:17:44 PM] [INFO] Following patches can be applied: 32904851
复制
不知道检查需要打补丁的 Oracle 组件需要花费 3 多分钟的时间。我的猜测是这与更新库存有关,如下所示。
只是一个提示:tail -f这个日志文件总是好的,因为它告诉你关于 opatch 正在做什么的信息比你在命令提示符上看到的要多得多。
2.补丁申请
$ $ORACLE_HOME/OPatch/opatch apply Oracle Interim Patch Installer version 12.2.0.1.25 Copyright (c) 2021, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.25 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-07-26_23-10-05PM_1.log Verifying environment and performing prerequisite checks... -------------------------------------------------------------------------------- Start OOP by Prereq process. Launch OOP... Oracle Interim Patch Installer version 12.2.0.1.25 Copyright (c) 2021, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/19 Central Inventory : /u01/app/oraInventory from : /u01/app/oracle/product/19/oraInst.loc OPatch version : 12.2.0.1.25 OUI version : 12.2.0.7.0 Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-07-26_23-14-10PM_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 32904851 Do you want to proceed? [y|n] y User Responded with: Y All checks passed. Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = '/u01/app/oracle/product/19') Is the local system ready for patching? [y|n] y User Responded with: Y Backing up files... Applying interim patch '32904851' to OH '/u01/app/oracle/product/19' ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.perlint, 5.28.1.0.0... Patching component oracle.rdbms.locator, 19.0.0.0.0... Patching component oracle.rdbms.rsf, 19.0.0.0.0... Patching component oracle.rdbms.util, 19.0.0.0.0... Patching component oracle.rdbms, 19.0.0.0.0... [...] Patching component oracle.mgw.common, 19.0.0.0.0... Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0... Patching component oracle.precomp.common, 19.0.0.0.0... Patching component oracle.precomp.lang, 19.0.0.0.0... Patching component oracle.jdk, 1.8.0.201.0... Patch 32904851 successfully applied. Sub-set patch [32545013] has become inactive due to the application of a super-set patch [32904851]. Please refer to Doc ID 2161861.1 for any possible further required actions. Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2021-07-26_23-14-10PM_1.log OPatch succeeded.
复制
补丁的这一部分(从日志文件中截取)花费了很长时间——参见时间戳:
[Jul 26, 2021 11:29:28 PM] [INFO] [OPSR-MEMORY] : Loaded cooked oneoffs. Heap memory used : 959 (MB) [Jul 26, 2021 11:29:28 PM] [INFO] [OPSR-TIME] Cooked inventory loaded successfully [Jul 26, 2021 11:29:28 PM] [INFO] CUP_LOG: Found poh CUP 30557433 is a subset of other poh CUP: 30869156 [Jul 26, 2021 11:29:28 PM] [INFO] CUP_LOG: Found poh CUP 30557433 is a subset of other poh CUP: 31281355 [Jul 26, 2021 11:29:28 PM] [INFO] CUP_LOG: Found poh CUP 32218454 is a subset of other poh CUP: 32545013 [Jul 26, 2021 11:29:28 PM] [INFO] CUP_LOG: Found poh CUP 32218454 is a subset of other poh CUP: 32904851 [Jul 26, 2021 11:29:28 PM] [INFO] CUP_LOG: Found poh CUP 32545013 is a subset of other poh CUP: 32904851 [Jul 26, 2021 11:33:47 PM] [INFO] [OPSR-TIME] Patch 32904851 saved to inventory [Jul 26, 2021 11:33:47 PM] [INFO] ApplySession: Skip patch verification. [Jul 26, 2021 11:33:47 PM] [INFO] [OPSR-TIME] Finished applying patch "32904851" to local system [Jul 26, 2021 11:33:48 PM] [INFO] The following re-links will eventually be skipped because they are duplicates: client_sharedlib, iorion, libasmclntsh19.ohso, itnsping,
复制
3. 数据补丁
$ $ORACLE_HOME/OPatch/datapatch -verbose SQL Patching tool version 19.12.0.0.0 Production on Mon Jul 26 23:38:30 2021 Copyright (c) 2012, 2021, Oracle. All rights reserved. Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_18299_2021_07_26_23_38_30/sqlpatch_invocation.log Connecting to database...OK Gathering database info...done Note: Datapatch will only apply or rollback SQL fixes for PDBs that are in an open state, no patches will be applied to closed PDBs. Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation (Doc ID 1585822.1) Bootstrapping registry and package to current versions...done Determining current state...done Current state of interim SQL patches: No interim patches found Current state of release update SQL patches: Binary registry: 19.12.0.0.0 Release_Update 210716141810: Installed PDB CDB$ROOT: Applied 19.11.0.0.0 Release_Update 210413004009 successfully on 21-APR-21 02.43.40.035316 PM PDB PDB$SEED: Applied 19.11.0.0.0 Release_Update 210413004009 successfully on 21-APR-21 02.43.41.532161 PM Adding patches to installation queue and performing prereq checks...done Installation queue: For the following PDBs: CDB$ROOT PDB$SEED No interim patches need to be rolled back Patch 32904851 (Database Release Update : 19.12.0.0.210720 (32904851)): Apply from 19.11.0.0.0 Release_Update 210413004009 to 19.12.0.0.0 Release_Update 210716141810 No interim patches need to be applied Installing patches... Patch installation complete. Total patches installed: 2 Validating logfiles...done Patch 32904851 apply (pdb CDB$ROOT): SUCCESS logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/32904851/24343243/32904851_apply_CDB2_CDBROOT_2021Jul26_23_39_36.log (no errors) Patch 32904851 apply (pdb PDB$SEED): SUCCESS logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/32904851/24343243/32904851_apply_CDB2_PDBSEED_2021Jul26_23_41_03.log (no errors) SQL Patching tool complete on Mon Jul 26 23:42:00 2021
复制
4. 启用新的优化器修复
最后,我将启用默认使用 DBMS_OPTIM_BUNDLE 禁用的新优化器修复.
SQL> set serveroutput on; SQL> execute dbms_optim_bundle.getBugsforBundle; 19.12.0.0.210720DBRU: Bug: 31459242, fix_controls: 31459242 Bug: 31082719, fix_controls: 31082719 Bug: 28708585, fix_controls: 28708585 Bug: 31821701, fix_controls: 31821701 Bug: 32107621, fix_controls: 32107621 Bug: 26758837, fix_controls: 26758837 Bug: 31558194, fix_controls: 31558194 Bug: 30781970, fix_controls: 30781970 Bug: 30142527, fix_controls: 30142527 Bug: 31143146, fix_controls: 31143146 Bug: 31961578, fix_controls: 31961578 Bug: 31496840, fix_controls: 31496840 Bug: 22387320, fix_controls: 22387320 PL/SQL procedure successfully completed.
复制
该列表比19.11.0 中的要短得多。
我将启用它们:
SQL> execute dbms_optim_bundle.enable_optim_fixes('ON','BOTH', 'YES')
复制
之后我在我的 SPFILE 中有这个条目:
*._fix_control='29331066:1','28965084:1','28776811:1','28498976:1','28567417:1','28558645:1','29132869:1','29450812:1','29687220:1','29939400:1','30232638:1','30001331:0','29304314:1','29930457:1','30028663:1','28144569:1','28776431:1','27261477:1','31069997:1','31077481:1','28602253:1','29653132:0','29937655:1','30347410:1','30602828:1','30896685:0','29487407:1','30998035:1','30786641:1','31444353:0','30486896:1','28999046:1','30902655:1','30681521:1','29302565:1','30972817:1','30222669:1','31668694:1','31001490:1','30198239:7','30980115:1','30616738:0','31895670:0','19138896:1','31670824:0','9876287:1','30564898:1','32075777:0','30570982:1','32037237:1','30927440:1','30822446:1','24561942:1','31625959:1','31579233:1','29696242:1','31626438:1','30228422:1','17295505:1','29725425:1','30618230:1','30008456:1','30537403:1','30235878:1','30646077:1','29657973:1','29712727:1','20922160:1','30006705:1','29463553:1','30751171:1','31009032:1','30063629:1','30207519:1','31517502:1','30617002:1','30483217:1','30235691:1','30568514:1','28414968:3','32014520:1','30249927:1','31580374:1','29590666:0','29435966:1','28173995:1','29867728:1','30776676:1','26577716:1','30470947:1','30979701:1','30483184:1','31001295:1','31191224:1','31974424:1','29385774:1','28234255:3','31459242:0','31082719:1','28708585:1','31821701:1','32107621:1','26758837:1','31558194:1','30781970:0','30142527:1','31143146:1','31961578:0','31496840:1','22387320:1'#added through dbms_optim_bundle package
复制
5. 附加补丁
此外,您可以考虑我在此处列出的 MOS 注释中 19.12.0 之上提到的补丁:
升级和补丁时的一些非常重要的 MOS 注释,包括 MOS Note:555.1。
将 RU 12.2.0.1.210720 应用到我的 12.2.0.1 家
我不会复制/粘贴所有步骤,因为输出与上述类似。正如我上面写的,我不得不用更新的 opatch 交换我的 opatch。
1.补丁冲突检查
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
复制
2.补丁申请
$ORACLE_HOME/OPatch/opatch apply
复制
3.数据补丁
$ORACLE_HOME/OPatch/datapatch -verbose
复制
所有步骤都运行良好且完美无缺。
但除此之外,可能还有更多工作要做。
文章来源:https://mikedietrichde.com/2021/07/27/patching-all-my-environments-with-the-july-2021-patch-bundles/