数据库主目录管理

本节提供了用于管理 Oracle AI Database 主目录的工具。It includes commands such as dbaascli dbhome create to create a new Oracle AI Database home and dbaascli dbHome delete to remove an existing one. 您还可以使用 dbaascli dbHome getDetails 查看有关特定 Oracle 主目录的详细信息,并使用 dbaascli dbhome getDatabases 检查从给定 Oracle 主目录运行哪些数据库。这些命令可确保高效管理数据库环境。

dbaascli dbhome 创建

要创建所需版本的 Oracle AI Database 主目录,请使用 dbaascli dbhome create 命令。

先决条件:

以 root 用户身份运行该命令。

语法:

dbaascli dbhome create --version <value>
[--oracleHome <value>]
[--oracleHomeName <value>]
[--enableUnifiedAuditing <value>]
[--imageTag <value>]
[--ImageLocation <value>

参数:

参数 说明
--version 指定指定为由句点分隔的五个数字段的 Oracle 主目录版本,例如 19.12.0.0.0
--oracleHome 指定 Oracle 主目录位置
--oracleHomeName 指定用户定义的 Oracle 主目录名称。如果未提供,则使用缺省名称
--enableUnifiedAuditing 指定 true 或 false 以启用或禁用 Oracle 主目录中的统一审计链接选项
--imageTag 指定 Oracle 主目录映像标记
--imageLocation 要使用的映像的路径。
--waitForCompletion 指定 false 以在后台运行操作。有效值:true 或 false。

常见问题解答:

问:dbaascli dbhome create 命令的目的是什么?

答案:dbaascli dbhome create 命令用于创建具有所需版本的新 Oracle AI Database 主目录。

问:运行 dbaascli dbhome create 命令有哪些先决条件?

答:必须以 root 用户身份运行该命令。

问:如何在创建新 Oracle 主目录时指定 Oracle Database 版本?

答:使用 --version 选项,后跟 Oracle AI Database 版本,格式为 5 个以句点分隔的数字段,例如 19.11.0.0.0。

问:– oracleHome 选项指定了什么?

答:--oracleHome 选项指定要安装 Oracle 主目录的位置。如果未提供,将使用默认位置。

问:是否可以将定制名称分配给新的 Oracle 主目录?

答:是的,可以使用 --oracleHomeName 选项为 Oracle 主目录指定用户定义的名称。如果未指定,则将使用一个默认名称。

问:如何在新的 Oracle 主目录中启用或禁用统一审计?

答:使用 --enableUnifiedAuditing 选项并指定 true 以启用 Oracle 主目录,或者使用 false 为 Oracle 主目录禁用统一审计。

问:– imageTag 选项的作用是什么?

答:--imageTag 选项指定 Oracle 主目录映像标记,该标记可用于映像标记与版本不同的情况。

问:使用带有版本和映像标记的 dbaascli dbhome create 命令的示例是什么?

答:带有版本和映像标记的命令的一个示例是:

dbaascli dbhome create --version 19.8.0.0.0 --imageTag 19.8.0.0.0

这将为版本 19.8.0.0.0 创建具有相应映像标记的 Oracle 主目录。

问:如果不提供– oracleHome 或– oracleHomeName 选项,会发生什么情况?

答:如果未提供 --oracleHome,则 Oracle 主目录将安装在默认位置。如果未指定 --oracleHomeName,则会将默认名称分配给 Oracle 主目录。

问:如何验证 Oracle 主目录创建是否成功?

答:运行命令后,检查输出日志中是否存在任何成功消息或错误。您还可以通过导航到指定位置或使用 Oracle 工具(如 orainstRoot.sh)来验证 Oracle 主目录。

问:是否可以在同一系统上创建具有不同版本的多个 Oracle 主目录?

答:是的,您可以通过为 --version 和 --oracleHomeName 选项指定不同的值来创建具有不同版本的多个 Oracle 主目录。

问:如果 Oracle 主目录创建失败,我该怎么办?

答:有关详细的错误消息,请查看输出日志。验证您是否具有有效的版本格式、所需的权限和足够的磁盘空间。修复任何问题,然后再次尝试运行该命令。

示例:dbaascli dbhome create

dbaascli dbhome create --version 19.11.0.0.0

或者,对于映像标记与版本不同的情况,可以使用 dbaascli dbhome create --version 19.8.0.0.0.0 --imageTag 19.8.0.0.0。

dbaascli dbHome 删除

要删除给定的数据库主目录,请使用 dbaascli dbHome delete 命令。

先决条件:

以 root 用户身份运行该命令。

语法:

dbaascli dbHome delete
{ --oracleHome <value>
| --oracleHomeName <value> } [--resume [--sessionID <value>]]

参数:

参数 说明
--oracleHome 指定 Oracle 主目录位置
--oracleHomeName 指定 Oracle 主目录的名称
--resume 恢复上一个执行
--sessionID 指定以恢复特定的会话 ID

常见问题解答:

问:dbaascli dbHome delete 命令的用途是什么?

答:dbaascli dbHome delete 命令用于从系统中删除指定的数据库主目录。

问:运行 dbaascli dbHome delete 命令有哪些先决条件?

答:必须以 root 用户身份运行该命令。

问:如何指定要删除的 Oracle 主目录?

答:您可以使用以下选项之一指定要删除的 Oracle 主目录:

问:– oracleHome 和– oracleHomeName 选项有何区别?

答案:

问:如何恢复以前中断的删除过程?

答:可以使用 --resume 选项恢复以前的删除过程。如果您知道进程的特定会话 ID,则可以使用 --sessionID 选项将其包含在内。

问:dbaascli dbHome delete 命令中使用的– sessionID 选项是什么?

答:--sessionID 选项用于恢复之前在删除过程中中断或失败的特定会话。

问:如果不提供– resume 或– sessionID 选项,会发生什么情况?

答:如果未提供 --resume 或 --sessionID 选项,该命令将启动新的删除进程,而不是恢复中断的删除进程。

问:是否有任何方法可以在运行该命令后确认删除 Oracle 主目录?

答:您可以通过检查输出日志中的成功消息来验证删除,并确保指定的位置不再存在 Oracle 主目录。

问:是否可以删除正在运行的数据库当前正在使用的 Oracle 主目录?

答:否。在删除过程中,任何正在运行的数据库或服务都不应使用 Oracle 主目录。在运行删除命令之前,请确保停止任何相关数据库。

问:如果 dbaascli dbHome delete 命令失败,我该怎么办?

答:查看输出日志以了解任何错误消息。确保 Oracle 主目录未在使用中,验证有效的 Oracle 主目录位置或名称,并确认您具有必要的权限。解决任何问题后,重新运行该命令,或者根据需要使用 --resume 选项。

问题:是否可以使用 dbaascli dbHome delete 命令一次删除多个 Oracle 主目录?

答:否,该命令只允许您通过指定 --oracleHome 或 --oracleHomeName 选项一次删除一个 Oracle 主目录。

问:什么是按名称删除 Oracle 主目录的示例?

答:下面是按名称删除 Oracle 主目录的示例:

dbaascli dbHome delete --oracleHomeName myOracleHome

此命令将删除名为 myOracleHome 的 Oracle 主目录。

Q:什么是按位置删除 Oracle 主目录的示例?

答:下面是一个通过指定 Oracle 主目录的位置来删除该主目录的示例:

dbaascli dbHome delete --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1

此命令将删除位于 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 主目录。

问:我是否可以在删除过程启动后将其取消?

答:不,一旦删除过程开始,就无法取消。在执行命令之前,请确保 Oracle 主目录已准备好进行删除。

dbaascli dbhome getDatabases

要查看有关从给定数据库 Oracle 主目录运行的所有 Oracle 数据库的信息,请使用 dbaascli dbHome getDatabases 命令。指定 Oracle 主目录位置或 Oracle 主目录名称。

以 root 用户身份运行该命令。

语法:

dbaascli dbHome getDatabases
{ --oracleHomeName value | --oracleHome value }

参数:

参数 说明
--oracleHomeName 指定用户定义的 Oracle 主目录名称
--oracleHome 指定 Oracle 主目录的位置(路径)

常见问题解答:

问:dbaascli dbHome getDatabases 命令的用途是什么?

答案:dbaascli dbHome getDatabases 命令用于查看有关从指定 Oracle Database 主目录运行的所有 Oracle 数据库的信息。

问:如何指定要检查的 Oracle Database 主目录?

答:可以使用以下选项之一指定数据库主目录:

问:– oracleHomeName 和– oracleHome 选项有何区别?

答案:

问:如何运行 dbaascli dbHome getDatabases 命令?

答:要运行该命令,请使用以下语法:

dbaascli dbHome getDatabases --oracleHomeName <value>

或者

dbaascli dbHome getDatabases --oracleHome <value>

确保以 root 用户身份运行该命令。

问题:是否可以在同一命令中同时指定 Oracle 主目录名称和 Oracle 主目录位置?

答:不可以,只能在单个命令执行中指定 --oracleHomeName 或 --oracleHome。根据标识 Oracle 主目录的方式选择一个选项。

问:dbaascli dbHome getDatabases 命令返回什么类型的信息?

答:该命令返回有关从指定 Oracle 主目录运行的所有 Oracle 数据库的信息。这包括数据库名称和状态等详细信息。

问:在 Oracle 主目录位置中使用 dbaascli dbHome getDatabases 的示例是什么?

答:下面是将该命令与 Oracle 主目录位置一起使用的示例:

dbaascli dbHome getDatabases --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1

此命令检索从位于 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 主目录运行的数据库列表。

问:使用 dbaascli dbHome getDatabases 和 Oracle 主目录名称的示例是什么?

答:下面是使用带有 Oracle 主目录名称的命令的示例:

dbaascli dbHome getDatabases --oracleHomeName myOracleHome

此命令检索从名为 myOracleHome 的 Oracle 主目录运行的数据库列表。

问:我是否需要任何特殊权限才能运行此命令?

答:是,您必须以 root 用户身份运行该命令,才能查看有关从指定 Oracle 主目录运行的 Oracle 数据库的信息。

问:我应该如何检查 dbaascli dbHome getDatabases 命令是否未返回数据库?

答:请确保您指定了有效的 Oracle 主目录名称或位置,并且存在从该 Oracle 主目录运行的数据库。此外,确认 Oracle 主目录已正确配置并处于活动状态。

问题:是否可以一次对多个 Oracle 主目录使用 dbaascli dbHome getDatabases 命令?

答:不,该命令一次在单个 Oracle 主目录上运行。必须为要查询的每个 Oracle 主目录单独运行该命令。

问:是否有方法可以验证命令中指定的 Oracle 主目录是否正确?

答:您可以通过检查系统中的目录结构或配置详细信息来验证 Oracle 主目录,以确保提供的路径或名称与实际 Oracle 主目录匹配。

问:如果我在未指定 Oracle 主目录或 Oracle 主目录名称的情况下运行该命令将会怎样?

答:该命令要求指定 --oracleHome 或 --oracleHomeName 选项。如果未提供任何选项,则该命令将无法执行。

问:此命令是否可以检索当前停止的数据库?

答:是,该命令将列出与指定 Oracle 主目录关联的所有数据库,无论这些数据库当前是正在运行还是已停止。

示例:dbaascli dbHome getDatabases – oracleHome

dbaascli dbHome getDatabases --oracleHome /u02/app/mar_home/

dbaascli dbHome getDetails

要查看有关特定 Oracle 主目录的信息,请使用 dbaascli dbHome getDetails 命令。指定 Oracle 主目录位置或 Oracle 主目录名称。

先决条件:

以 root 用户身份运行该命令。

语法:

dbaascli dbHome getDetails
{ --oracleHomeName value | --oracleHome value }

参数:

参数 说明
--oracleHomeName 指定用户定义的 Oracle 主目录名称
--oracleHome 指定 Oracle 主目录位置

常见问题解答:

问:dbaascli dbHome getDetails 命令的用途是什么?

答案:dbaascli dbHome getDetails 命令用于查看有关系统上特定 Oracle 主目录的详细信息。

问:如何指定要获取有关 Oracle 主目录的详细信息?

答:您可以使用以下选项之一指定 Oracle 主目录:

问:– oracleHomeName 和– oracleHome 有什么区别?

答案:

问:如何运行 dbaascli dbHome getDetails 命令?

答:要运行该命令,请使用以下语法:

dbaascli dbHome getDetails --oracleHomeName <value>

或者

dbaascli dbHome getDetails --oracleHome <value>

务必以 root 用户身份运行该命令。

问:我是否可以在同一命令中同时指定– oracleHomeName 和– oracleHome?

答:不可以,每个命令执行只能使用一个选项。您必须指定 Oracle 主目录名称或 Oracle 主目录位置,不能同时指定两者。

问:dbaascli dbHome getDetails 命令返回什么信息?

答:该命令提供有关指定 Oracle 主目录的详细信息,例如其版本、状态以及与 Oracle 主目录关联的任何其他配置详细信息。

问:使用 dbaascli dbHome getDetails 命令和 Oracle 主目录位置的示例是什么?

答:下面是一个示例:

dbaascli dbHome getDetails --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1

此命令检索有关位于 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 主目录的详细信息。

问:使用 dbaascli dbHome getDetails 命令和 Oracle 主目录名称的示例是什么?

答:下面是一个示例:

dbaascli dbHome getDetails --oracleHomeName myOracleHome

此命令检索有关名为 myOracleHome 的 Oracle 主目录的详细信息。

问:我是否需要任何特殊权限才能运行此命令?

答:是的,您必须以 root 用户身份运行该命令才能查看有关 Oracle 主目录的详细信息。

问:如果 dbaascli dbHome getDetails 命令未返回任何信息,我该怎么办?

答:请确保已正确指定 Oracle 主目录名称或位置,并且 Oracle 主目录已正确配置并且存在于系统上。

问:是否可以在多个 Oracle 主目录上同时使用 dbaascli dbHome getDetails 命令?

答:不,该命令一次只能在单个 Oracle 主目录上运行。必须分别为每个 Oracle 主目录运行该命令。

问:是否可以在运行该命令之前验证 Oracle 主目录名称?

答:是的,您可以通过检查系统的配置文件或列出系统上可用的所有 Oracle 主目录来验证 Oracle 主目录名称。

问:如果未在命令中指定 Oracle 主目录名称或位置,会发生什么情况?

答:该命令要求指定 --oracleHome 或 --oracleHomeName 选项。如果未提供这两个命令,将无法执行该命令。

问:是否可以检索有关当前未使用的 Oracle 主目录的信息?

答案:是,dbaascli dbHome getDetails 命令提供有关 Oracle 主目录的详细信息,无论这些主目录是处于使用状态还是处于空闲状态。

问:我应该如何检查命令是否返回错误?

答:请确保 Oracle 主目录名称或位置有效,Oracle 主目录存在,并且您以 root 用户身份运行该命令。再次检查是否存在错误或路径不正确。

示例:dbaascli dbHome getDetails - 使用 Oracle 主目录位置

dbaascli dbHome getDetails --oracleHome /u02/app/home_db19c/

示例:dbaascli dbHome getDetails - 使用 Oracle 主目录名称

dbaascli dbHome getDetails --oracleHomeName home_db19c

dbaascli dbHome 补丁程序

要将 Oracle 主目录从一个补丁程序级别打补丁到另一个补丁程序级别,请使用 dbaascli dbHome patch 命令。

先决条件:

以 root 用户身份运行该命令。

语法:

dbaascli dbHome patch

{
    --oracleHome <value>
    | --oracleHomeName <value>
 }
        [--imageFilePath <value>] [--executePrereqs] [--nodes <value>]
        {
            [--resume [--sessionID <value>]]
            | [--rollback [--sessionID <value>]]
        }
[--skipDatapatch]
[--skipClosedPDBs]
[--skipPDBs <value>]
[--continueWithDbDowntime]
[--skipUnreachableNodes]
[--drainTimeoutInSeconds <value>]
[--waitForCompletion <value>]
[--nonRolling]
[--skipDatapatchForDB <value>]

参数:

参数 说明
--oracleHome 指定 Oracle 主目录路径
--oracleHomeName 指定 Oracle 主目录的名称
--targetVersion 指定 Oracle 主目录的目标版本,指定为以句点分隔的五个数字段,例如 19.12.0.0.0。
--resume 恢复上一个运行
--sessionID 指定以恢复特定的会话 ID
--continueWithDbDowntime 继续为数据库停机打补丁。此选项可用于仅存在一个活动实例且即使停机也能继续打补丁操作的环境中。
--skipUnreachableNodes 忽略对无法访问的节点执行操作
--nodes 指定节点列表(如果必须对节点子集执行打补丁)
--executePrereqs 运行前提条件
--skipDatapatch 跳过在数据库上运行 datapatch
--imageFilePath 指定要使用的映像文件的绝对路径
--skipPDBs 跳过在指定的以逗号分隔的 PDB 列表中运行 datapatch。例如:cdb1:pdb1 、cdb2:pdb2 等
--skipClosedPdbs 跳过在已关闭的 PDB 上运行 datapatch
--rollback 回退已打补丁的 Oracle 主目录。
--waitForCompletion 指定 false 以在后台运行操作。有效值为:true 或 false
--drainTimeoutInSeconds 指定在停止数据库时完成资源耗尽的时间(秒)
--skipUnreachableNodes 忽略对无法访问的节点执行操作
[--nonRolling] 在所有节点上并行修补 dbhome。请注意,这将导致数据库停机。
[--skipDatapatchForDB <value>] 跳过在指定的以逗号分隔的数据库列表中运行 datapatch 的操作。示例:db1,db2,db3,...

常见问题解答:

问:dbaascli dbHome patch 命令用于什么?

答:dbaascli dbHome patch 命令用于将 Oracle 主目录从一个补丁程序级别打补丁到另一个补丁程序级别。

问:运行 dbaascli dbHome patch 命令是否需要特殊权限?

答:是的,您需要以 root 用户身份运行该命令。

问:如何指定补丁程序的 Oracle 主目录路径或名称?

答:使用 --oracleHome 选项指定 Oracle 主目录的路径,或者使用 --oracleHomeName 指定 Oracle 主目录的名称。

Q:如何为补丁程序定义目标版本?

答:使用 --targetVersion 选项后跟版本号,格式为 19.12.0.0.0。

Q:使用– resume 选项可以做什么?

答:使用 --resume 选项可以恢复以前的打补丁会话。

问:在恢复补丁程序时如何指定特定会话 ID?

答:使用 --sessionID 选项指定要恢复的打补丁会话的会话 ID。

问:– continueWithDbDowntime 选项用于什么?

答:即使存在数据库停机,--continueWithDbDowntime 选项也允许继续打补丁,这在只有一个活动实例的环境中非常有用。

问:如何在无法访问的节点上跳过打补丁?

答:使用 --skipUnreachableNodes 选项跳过无法访问的节点上的操作。

问:如何仅为集群中的特定节点打补丁?

答:使用 --nodes 选项后跟逗号分隔的节点名称列表来修补部分节点。

问:– executePrereqs 选项用于什么?

答:在应用修补程序之前,--executePrereqs 选项会运行先决条件检查。

问:如何跳过在数据库上运行 datapatch?

答:在打补丁期间使用 --skipDatapatch 选项跳过 datapatch 进程。

Q:是否可以为数据库映像指定定制位置?

答:是,使用 --imageLocation 选项为数据库映像指定定制位置。

问:– skipPDBs 选项的作用是什么?

答:通过 --skipPDBs 选项,可以跳过在指定的逗号分隔的可插入数据库 (pluggable database,PDB) 列表上运行 datapatch。

问:如何在关闭的 PDB 上跳过 datapatch?

答:使用 --skipClosedPDBs 选项跳过已关闭的 PDB 上的数据补丁程序。

问:如果我使用– rollback 选项,会发生什么情况?

答:--rollback 选项将在应用补丁程序之前将 Oracle 主目录还原为其以前的状态。

问:如何指定用于打补丁的 Oracle 主目录路径?

答:使用 --oracleHome 选项,后跟 Oracle 主目录的路径。

问:如何按名称(而不是路径)为 Oracle 主目录打补丁?

答:使用 --oracleHomeName 选项,后跟 Oracle 主目录的名称。

问:如果打补丁操作被中断,如何恢复打补丁操作?

答:使用 --resume 选项和 --sessionID 选项可恢复特定的中断会话。

问:如果数据库关闭,是否可以继续打补丁过程?

答:是的,即使数据库已关闭,也可以使用 --continueWithDbDowntime 选项继续打补丁。

问:如果在打补丁过程中某些节点无法访问,我该怎么办?

答:使用 --skipUnreachableNodes 选项绕过无法访问的节点。

问:如何才能将补丁程序仅应用于某些节点?

答:使用带有逗号分隔的节点名称列表的 --nodes 选项指定要打补丁的节点。

问题:在应用补丁程序之前,如何检查先决条件?

答:在应用修补程序之前,请使用 --executePrereqs 选项运行先决条件检查。

问:如果要在打补丁过程中避免应用 datapatch,我该怎么做?

答:使用 --skipDatapatch 选项跳过 datapatch 步骤。

问:如何为打补丁过程中使用的数据库映像指定其他位置?

答:使用 --imageLocation 选项指定映像的定制位置。

问:如果我需要在某些 PDB 上跳过 datapatch,该怎么办?

答:使用 --skipPDBs 选项跳过指定以逗号分隔的 PDB 列表上的 datapatch。

问题:是否可以在当前未打开的 PDB 上跳过 datapatch?

答:是,使用 --skipClosedPDBs 选项跳过已关闭 PDB 上的 datapatch。

问:如果打补丁中途失败,我该怎么办?

答:您可以使用 --rollback 选项恢复到以前的状态,或者尝试使用 --resume 选项恢复打补丁过程。

Q:如何在应用补丁程序之前检查是否满足所有先决条件?

答:使用 --executePrereqs 选项运行 patch 命令以确保满足所有先决条件。

问:如果打补丁操作未成功完成并且我需要重试,该怎么办?

答:使用 --resume 选项从停止的位置重试打补丁操作。如果需要,可以指定 --sessionID 以恢复特定会话。

Q:如何验证补丁程序是否已成功应用?

答:修补程序完成后,可以通过使用 opatch lsinventory 命令检查 Oracle 主目录版本来验证修补过程。

问:我是否可以在模拟运行模式下运行打补丁命令来预览操作?

答案:否,dbaascli dbHome patch 命令没有预运行功能。但是,您可以在实际应用修补程序之前使用 --executePrereqs 选项运行先决条件检查。

问:是否可以在一次运行中应用多个补丁程序?

答:dbaascli dbHome patch 命令一次仅允许一个目标版本。您需要为每个修补程序版本单独运行该命令。

问:如果环境使用多个 Oracle 主目录,如何处理打补丁?

答:您可以使用 --oracleHome 或– oracleHomeName 选项指定要打补丁的 Oracle 主目录,具体取决于您指定的是 Oracle 主目录的路径还是名称。

问题:是否可以在一个命令中跳过 PDB 和 CDB 数据匹配?

答案:是,可以组合使用 --skipPDBs 和 --skipDatapatch 选项,在单个补丁程序运行中跳过 PDB 和 CDB 的数据补丁程序。

问:如果补丁程序导致问题,是否可以立即应用并回退?

答:是的,应用修补程序后,如果出现任何问题,可以使用 --rollback 选项恢复到以前的修补程序级别。

问:是否可以同时为多个 Oracle 主目录打补丁?

答:不,您需要为每个 Oracle 主目录分别运行 dbaascli dbHome patch 命令。

问:如何跟踪打补丁操作的进度?

答:在打补丁过程中,该命令会提供显示进度信息的输出消息。您还可以查看日志文件以了解详细信息。

问:我是否可以在集群环境中并行运行打补丁?

答:可使用 --nodes 选项将打补丁操作应用于节点的子集。但是,应仔细处理同时打补丁,并且应确保会话不重叠。

问:如何确定哪些补丁程序可用于我的 Oracle 主目录?

答:您可以通过 Oracle 支持门户或运行 opatch lsinventory 命令来检查可用的补丁程序,以查看应用于 Oracle 主目录的当前补丁程序。

问:是否可以在打补丁期间停止数据库时指定耗尽资源的超时?

答:是的,可以使用 --drainTimeoutInSeconds 选项指定停止数据库时资源耗尽的时间(秒)。

问:如果在多节点环境中的某个节点上打补丁失败,会发生什么情况?

答:您可以使用 --skipUnreachableNodes 选项跳过失败的节点并在剩余节点上继续打补丁过程。然后,您可以在发生故障的节点上单独解决该问题。

问:如何使打补丁过程在后台运行?

答:将 --waitForCompletion 选项与值 false 一起使用可允许在后台运行打补丁过程。这样,您就不必等待流程以交互方式完成。

问:是否可以对集群环境中的部分节点执行回退操作?

答:是的,可以使用 --nodes 选项和 --rollback 选项在特定节点集上回滚打补丁。

问:如果在启动打补丁过程后需要更新映像位置,该怎么办?

答:--resume 选项不允许更改映像位置。但是,可以使用更新的 --imageLocation 停止会话并启动新的修补程序进程。

Q:是否有办法检查哪些会话 ID 可用于恢复补丁程序?

答:您可以查看日志文件或使用 Oracle Cloud 工具来标识活动或暂停的打补丁会话及其会话 ID。

问:我是否可以限制打补丁期间的停机时间?

答:如果需要限制停机时间,请仔细使用 --continueWithDbDowntime 选项。这允许您即使在需要停机但需要计划以尽量减少服务影响的情况下继续操作。

示例:

示例:按 Oracle 主目录路径进行基本 Oracle 主目录打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0

将位于 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 主目录打补丁到版本 19.12.0.0.0。

示例:按 Oracle 主目录名称打补丁

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0

将名为 DB_HOME_NAME 的 Oracle 主目录打补丁到版本 19.12.0.0.0。

示例:恢复以前的修补程序操作

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --resume

恢复位于 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 主目录的上一个打补丁操作。

示例:恢复具有特定会话 ID 的修补程序

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --resume --sessionID 12345

使用会话 ID 12345 恢复 Oracle 主目录 DB_HOME_NAME 的打补丁操作。

示例:允许使用数据库停机打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --continueWithDbDowntime

将位于 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 主目录打补丁到版本 19.12.0.0.0,同时允许数据库停机。

示例:跳过无法访问的节点

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipUnreachableNodes

在跳过任何无法访问的节点时,将 Oracle 主目录打补丁到版本 19.12.0.0.0。

示例:为节点的子集打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --nodes node1,node2

仅在 node1 和 node2 上为 Oracle 主目录的版本 19.12.0.0.0 打补丁。

示例:打补丁前运行先决条件检查

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --executePrereqs

在运行先决条件检查后,将 Oracle 主目录 DB_HOME_NAME 修补到版本 19.12.0.0.0。

示例:跳过 Datapatch 步骤

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipDatapatch

将 Oracle 主目录打补丁到版本 19.12.0.0.0,而不在数据库上运行 datapatch。

示例:使用图像文件打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --imageFilePath /path/to/image/file.zip

使用位于 /path/to/image/file.zip 的映像文件为 Oracle 主目录修补 19.12.0.0.0 版。

示例:在 Datapatch 期间跳过特定 PDB

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipPDBs cdb1:pdb1,cdb2:pdb2

将 Oracle 主目录打补丁到版本 19.12.0.0.0 并跳过在指定 PDB 上运行 datapatch(cdb1 中的 pdb1 和 cdb2 中的 pdb2)。

示例:跳过已关闭 PDB 上的 Datapatch

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipClosedPDBs

将 Oracle 主目录打补丁到版本 19.12.0.0.0,同时跳过在任何关闭的 PDB 上运行 datapatch。

示例:回退 Oracle 主目录

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --rollback

回退名为 DB_HOME_NAME 的 Oracle 主目录上最后应用的补丁程序。

示例:打补丁与先决条件检查和特定节点的组合

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --executePrereqs --nodes node1,node2

将 Oracle 主目录打补丁到版本 19.12.0.0.0,运行先决条件检查,并且仅对 node1 和 node2 应用补丁程序。

示例:跳过无法访问的节点和特定 PDB

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --skipUnreachableNodes --skipPDBs cdb1:pdb1

将 Oracle 主目录 DB_HOME_NAME 修补到版本 19.12.0.0.0,同时跳过无法访问的节点并避免在 cdb1 中的 pdb1 上运行 datapatch。

示例:检查 Oracle 主目录版本打补丁后

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0
opatch lsinventory

此示例说明如何通过运行 opatch lsinventory 在成功打补丁后检查 Oracle 主目录版本。

示例:使用特定会话 ID 回退打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --rollback --sessionID 67890

回退会话 ID 为 67890 的 Oracle 主目录打补丁。

示例:通过跳过先决条件检查打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipPrereqs

对 Oracle 主目录打补丁,但在应用补丁程序之前跳过先决条件检查。

示例:将补丁程序应用于定制 Oracle 主目录映像

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --imageLocation /custom/location/image.zip

使用位于 /custom/location/image.zip 的定制映像文件为 Oracle 主目录打补丁。

示例:跳过特定节点并运行先决条件

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipUnreachableNodes --executePrereqs

在应用补丁程序之前,跳过为无法访问的节点打补丁并运行先决条件检查。

示例:跳过多个 CDB 中所有 PDB 的数据补丁程序

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipPDBs cdb1:pdb1,cdb2:pdb2,cdb3:pdb3

为 Oracle 主目录打补丁,但跳过多个 CDB 中指定 PDB 上的数据补丁程序。

示例:在多个节点上继续打补丁并停机

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --continueWithDbDowntime --nodes node3,node4

继续在 node3 和 node4 上打补丁,并允许数据库停机。

示例:跳过 PDB 和已关闭 PDB 上的 Datapatch

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipDatapatch --skipClosedPDBs

为 Oracle 主目录打补丁,同时跳过数据补丁程序和关闭的 PDB。

示例:回退并重新应用补丁程序

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --rollback
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0

回退当前补丁程序,然后将补丁程序重新应用于 Oracle 主目录。

示例:跳过 Datapatch 并允许特定节点停机

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.13.0.0.0 --skipDatapatch --continueWithDbDowntime --nodes node1

将 Oracle 主目录打补丁到 node1 上的版本 19.13.0.0.0,跳过 datapatch 步骤并允许停机。

示例:指定数据库关闭期间的耗尽超时

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.13.0.0.0 --drainTimeoutInSeconds 300

将 Oracle 主目录 DB_HOME_NAME 修补为版本 19.13.0.0.0,并允许在关闭期间超时 5 分钟(300 秒)以耗尽资源。

示例:在后台运行打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.13.0.0.0 --waitForCompletion false

将 Oracle 主目录打补丁到版本 19.13.0.0.0,并在后台运行打补丁过程,而无需等待完成。

示例:在节点的子集上回退修补程序

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --rollback --nodes node1,node2

仅为指定的 Oracle 主目录回退 node1 和 node2 上最后应用的补丁程序。

示例:跳过先决条件并为多个节点打补丁

dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.13.0.0.0 --skipPrereqs --nodes node3,node4

在 node3 和 node4 上为 Oracle 主目录的版本 19.13.0.0.0 打补丁,而无需运行先决条件检查。

示例:回退修补程序并跳过无法访问的节点

dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --rollback --skipUnreachableNodes

在 Oracle 主目录 DB_HOME_NAME 上回退最后一个补丁程序,并在回退过程中跳过无法访问的节点。