暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译文]Oracle打补丁,使用2021年7月的补丁包修补我的所有环境

原创 Mike.Dietrich 2021-07-28
1891

又是打补丁的一天。欢呼!或不。我意识到在修补当天,所有 19c 包都丢失了。所以在通常的发布日之后写了这篇博文。就我而言,这将包括 Oracle 19.12.0 RU 和 Oracle 12.2.0.1 的 2021 年 7 月 RU。请在下面找到有关使用 2021 年 7 月补丁包修补我的所有环境的详细信息。

图片.png
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 中,因此不再有常规补丁包。但是风险矩阵中指出的问题可能会出现在这两个版本中,也可能出现在旧版本中。

图片.png

此外,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)、捆绑补丁、补丁集和基本版本的下载参考来下载“您的”捆绑包。

我需要一个新的 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/

最后修改时间:2021-07-28 11:42:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

暂无图片
获得了262次点赞
暂无图片
内容获得93次评论
暂无图片
获得了327次收藏
目录
  • 2021年7月安全警报
  • 数据库补丁包
  • 我需要一个新的 OPatch 吗?
  • 将 RU 19.12.0 应用到我的 19c 家
    • 1. 补丁冲突和空间检查
    • 2.补丁申请
    • 3. 数据补丁
    • 4. 启用新的优化器修复
    • 5. 附加补丁
  • 将 RU 12.2.0.1.210720 应用到我的 12.2.0.1 家
    • 1.补丁冲突检查
    • 2.补丁申请
    • 3.数据补丁