您需要了解的有关 Oracle 数据库修补的所有信息

这是我过去写的一个主题(了解 Oracle 补丁新版本编号)。但是现在,在新的补丁概念(自 12.2 起)和编号更改(自 18c 起)已经存在一段时间并且已经稳定之后,我认为是时候在新帖子中总结新的补丁/版本控制了,所以这里是.

Oracle 数据库版本、支持和升级

总结一下,Oracle 决定放弃每个版本(例如 12.1.0.1、12.1.0.2 等)的几个版本的概念,并采用年份编号(即 18c、19c、等等。)。但是,“幕后”一些版本仍将属于同一个“版本组”。因此,12cR2 是在 12.2.0.1 中引入的,但它在 18c(实际上是 12.2.0.2)和 19c (12.2.0.3) 中继续(即使命名已更改)。

这对于支持问题非常重要。由于 12.2、18c 和 19c 仍处于“12cR2”之下,Oracle 将对 12.2 和 18c 提供短期(且不可扩展)支持,而 19c 将是长期支持版本。正如您在 MOS注释#742060.1 中看到的那样,对 12.2 的支持将于 2020 年 11 月结束,并且不会延长。对 18c 的支持也不会延长,并将于 2021 年 6 月结束。版本 19c 将是长期支持,将支持到 2023 年 3 月,并延长付费支持到 2026 年 3 月。

根据多个 Oracle 资源,似乎相同的概念将保留在未来的版本中。所以预计明年的 Oracle 20c 和明年的 21c 作为短期支持版本,而 22c 将是长期支持版本。

如果您现在计划从早期版本升级您的数据库,请考虑直接升级到 19c,并计划将来升级到 22c。

修补 Oracle 数据库 – RU 和 RUR

在 Oracle 12.2 中,Oracle 也改变了修补概念。不再有 PSU 和 DBBP,现在我们有 RU 和 RUR。此更改仅针对 *NIX 系统引入,因此我在此处解释的内容与 Windows 无关。Windows 补丁没有改变,仍然被称为捆绑补丁 (BP)。

数据库补丁集每季度发布一次(一月、四月、七月和十月)。现在有 2 种补丁类型可用:

  • RU(发布更新)——这是主要补丁,其中包含大量修复。安装 RU 时,您将更改数据库版本的第二个数字。例如,2019 年 7 月 18c 的 RU 为 18.7。下一个(10 月)是 18.8。19c 的相同补丁(7 月)是 19.4,10 月的补丁是 19.5。
  • RUR (Release Update Revision)——这是一个较小的补丁集,它包括一个较小的更改集(自上一个 RU 以来仅安全和回归修复)。安装 RUR 将更改数据库版本的第 3 位数字。请注意,每个 RU 仅支持 6 个月的 RUR。例如,如果我在 18c 数据库(即 18.6)上安装了 2019 年 4 月的 RU,并且我决定安装 7 月的 RUR,那么我将拥有 Oracle 18.6.1。在 10 月,我可以决定安装 RU 并获得 18.8,或者在我的版本之上安装 RUR 并获得 18.6.2。但是在 2020 年 1 月,在 18.6 之上不会再有另一个 RUR。我的选择是安装新 RU 并获得 18.9,安装 18.7 和新 RUR 并获得 18.7.2,或安装 18.8 和新 RUR 并获得 18.8.1。

RU 和 RUR 都是累积的,所以每个补丁都包含了之前补丁的所有修复。如果你想安装 Oracle 18.7,你可以在任何 18c 版本上安装它,你不必先安装 18.6。

修补 Oracle 数据库 - 可用修补程序列表

当您访问MOS 上补丁可用性说明时,您会看到每个版本都有很多选项。这是您应该了解该列表中每个补丁的内容(我以 18.7 为例,它的顺序与注释中的顺序不同):

  • 数据库版本更新 18.7 – 这是 18c 数据库的主要 RU
  • 数据库版本更新修订版 18.6.1 – 这是可以安装在 18.6 RU 上的 RUR
  • 数据库版本更新修订版 18.5.2 – 这是可以安装在 18.5 RU 之上的 RUR
  • Grid Infrastructure Release Update 18.7 – 这是 GI 的主要 RU,它还包括 DB RU,因此如果您使用 GI(用于 Oracle Restart 或 RAC),您可以在 GI 和 DB 主目录上安装此补丁
  • Grid Infrastructure Release Update 18.6.1 – 这是 18.6 之上的 GI RUR,它还包括 DB 18.6.1 RUR
  • Grid Infrastructure Release Update 18.5.2 – 这是 GI 18.5 的 RUR,它还包括 DB 18.5.2 RUR
  • OJVM RU 18.7 – 如果您的数据库中安装了 OJVM(无论您是否使用它),您应该在您的数据库主目录中安装此补丁。如果您的数据库中没有安装OJVM,则无需安装此补丁(Oracle 建议您安装它,以防您将来使用OJVM 创建新数据库)
  • OJVM + DB RU 18.7 的组合——这只是 18.7 DB RU 和 OJVM 18.7 的一次下载。您可以单独下载它们并获得完全相同的补丁。这只是为了方便起见
  • OJVM + GI RU 18.7 的组合——这只是 18.7 GI RU 和 OJVM 18.7 的一次下载。您可以单独下载它们并获得完全相同的补丁。这只是为了方便起见
  • Windows BP 18.7 – 这是在 Windows 平台上运行的数据库的 18.7 补丁

现在选择相关补丁下载并继续阅读

附加补丁

一旦您决定要安装哪个补丁,在 MOS 注释的同一个表中,有一个名为“已知问题”的列,其中包含指向注释的链接。转到此说明并阅读此特定 RU/RUR 的已知问题。在大多数情况下,您会找到一些针对此版本的推荐补丁。您应该按照说明,下载所有推荐的补丁并在安装新的 RU/RUR 时安装它们。

您还可能会遇到环境中的特定错误或问题。对于这些问题,您需要特定的一次性补丁。如果您已经安装了一次性补丁,首先检查它们是否包含在您将要安装的 RU/RUR 中。如果不是,请确保它们与新的 RU/RUR 不冲突,或者向 Oracle 索取更新版本。

安装类型(用于 RAC/备用)

在复杂的环境中安装补丁时,有两种补丁:

  • Data Guard 的备用优先补丁——这些补丁应该首先安装在备用端,然后是主端。双方都打补丁后,您应该在主端运行任何所需的脚本。如果补丁不是备用优先补丁,则意味着您需要在再次启动数据库之前关闭整个环境并修补双方。
  • RAC 的滚动补丁——如果您使用 RAC,滚动补丁是您可以一次安装在一个节点上的补丁,而其他节点则启动并运行。一个节点打补丁完成,节点又启动了,可以继续下一个节点,以此类推。这样,打补丁时停机时间为零。如果补丁不是滚动补丁,这意味着安装了补丁和没有安装补丁的节点不能在集群中共存。这里最好的方法是在RAC一个节点上一个接一个地安装补丁,而不要在补丁后在节点上启动实例。当你到达最后一个节点时,你会在修补它时有一个停机时间,之后你可以启动所有节点

RU 和 RUR 补丁始终是备用优先和 RAC 滚动补丁。使用 OJVM 补丁会更复杂,您可以在 MOS note# 2217053.1 中阅读有关它的信息一次性补丁可以是任何类型,您应该检查它们的自述文件。

安装补丁

这可以是它自己的帖子,但我只会写一个安装过程的简短概述。对于每个补丁(RU、RUR、一次性),您应该查看自述文件并按照安装说明进行操作。

  • 对于 GI RU/RUR,请使用“opatchauto apply”。您可以在 GI 和 DB home 上一起或单独应用补丁(通过对 opatchauto 使用 -oh 标志)。这还将为您的数据库运行数据补丁脚本(如果它在运行 patchauto 之前已启动)
  • 对于单实例数据库使用 opatch apply,然后手动运行数据补丁脚本
  • 再次检查自述文件并计划在 RAC 或备用环境中安装

复杂环境的最佳实践

备用环境(假设 serverA 当前为主,serverB 当前为备用):

  • 待机第一个补丁
    • 补丁服务器B
    • 切换到 serverB(停机时间短)
    • 补丁服务器A
    • 在 serverB(现在是主要的)上运行所需的脚本(如果需要)
    • 如果您希望在另一个短暂的停机时间内返回 serverA,您可以再次切换,但这不是强制性的,您的环境已经打过补丁
  • 非待机先打补丁
    • 打补丁serverB但打补丁后不启动数据库
    • 补丁服务器A(安装补丁之前的停机时间)
    • 启动两个数据库
    • 在 serverA 上运行任何必需的脚本

RAC环境(假设我们有3个节点:serverA、serverB和serverC):

  • RAC 滚动补丁(无完全停机时间)
    • 补丁serverA,补丁后启动
    • 补丁serverB,补丁后启动
    • 补丁serverC,补丁后启动
  • 非 RAC 滚动补丁
    • 补丁serverA,补丁后不要启动DB
    • 补丁serverB,补丁后不要启动DB
    • 关闭 serverC 上的数据库(完全停机)
    • 启动 serverA 和 serverB
    • 在 serverA/B 上运行任何所需的脚本
    • 补丁 serverC 并启动数据库

最后说明

关于 Active Data Guard 的最后一条评论——如果补丁需要“启动升级”(就像我在修补 DST时意识到的那样),Active Data Guard 无法前滚生成的重做日志 (ORA-10485)。在升级模式下启动主数据库之前,备用数据库必须安装而不是打开,直到应用所有更改。

posted @ 2021-06-25 15:56  雪竹子  阅读(258)  评论(0编辑  收藏  举报