使用 dbcli 更新数据库系统资源

可以使用 dbcli 实用程序更新数据库系统资源。这包括更新数据库系统、数据库系统内节点上的操作系统 (operating system,OS) 和数据库主目录。

有关 dbcli 命令的更多信息,请参见《Oracle Database CLI Reference 》。

先决条件

  1. 准备 OS 更新。

    在更新 OS 之前,请查看以下重要准则和信息:

    • 在尝试 OS 更新之前,先备份数据库系统中的数据库。
    • 请勿从数据库系统中删除程序包。但是,您可能需要删除定制 RPM(在预配系统后安装的软件包),才能成功完成更新。
    • Oracle 建议您在更新生产系统之前在非生产系统上全面测试所有更新。
    • 用于启动数据库系统的映像将定期更新,并具有必要的更新。启动数据库系统后,您将负责应用通过 Oracle 公共 YUM 服务器发布的必需操作系统安全更新。
    • 要应用操作系统更新,必须将数据库系统中的虚拟云网络 (VCN) 配置为允许访问 YUM 资料档案库。有关详细信息,请参阅 VCN 和子网。
  2. 使用 SSH 连接到数据库系统的要求。

    要通过 SSH 连接到数据库系统,您需要与启动数据库系统时使用的公共密钥关联的私有密钥的路径。

    您还需要数据库系统的公共或专用 IP 地址。

    使用专用 IP 地址从内部部署网络或 VCN 内连接到系统。这包括从位于内部部署的主机进行连接,该主机通过 VPN 或 FastConnect 连接到 VCN,或从同一 VCN 中的其他主机进行连接。使用数据库系统的公共 IP 地址从云外部连接到系统(没有 VPN)。您可以在控制台中找到 IP 地址,如下所示:

    1. 在 DB System Details 页面上的 Resources 下,单击 Nodes 。
    2. 查看在表的公共 IP 地址列和专用 IP 地址和 DNS 名称列中显示的值,这些列显示数据库系统的节点。

检查已安装和可用的更新

执行以下步骤以检查已安装和可用的更新。

  1. 通过 SSH 连接到数据库系统。

    ssh -i <private_key_path> opc@<db_system_ip_address>
  2. 以 opc 身份登录,然后以 sudo 身份登录到 root 用户。使用带有连字符的 sudo su - 调用 root 用户的配置文件,该配置文件将 PATH 设置为 dbcli 目录 (/opt/oracle/dcs/bin)。

    sudo su -
  3. 使用组件命令显示已安装的更新版本。如果可用版本列指示组件的版本号,则应更新组件。

    dbcli describe-component

    输出:

    System Version
    ---------------
    12.1.2.10.0
    
    Component Name        Installed Version    Available Version
    --------------------- -------------------- --------------------
    OAK                   12.1.2.10.0          up-to-date
    GI                    12.1.0.2.161018      up-to-date
    ORADB12102_HOME1      12.1.0.2.160719      12.1.0.2.161018
  4. 使用 Latestpatch Command 显示对象存储中可用的最新更新版本。

    dbcli describe-latestpatch

    输出:

    componentType   availableVersion
    --------------- --------------------
    gi              12.1.0.2.161018
    db              11.2.0.4.161018
    db              12.1.0.2.161018
    oak             12.1.2.10.0

更新服务器组件

执行以下步骤更新网格基础结构 (GI) 和存储管理工具包 (OAK) 服务器组件。

  1. 通过 SSH 连接到数据库系统。

    ssh -i <private_key_path> opc@<db_system_ip_address>
  2. 以 opc 身份登录,然后以 sudo 身份登录到 root 用户。使用带有连字符的 sudo su - 调用 root 用户的配置文件,该配置文件将 PATH 设置为 dbcli 目录 (/opt/oracle/dcs/bin)。

    sudo su -
  3. 使用服务器命令更新服务器组件。

    dbcli update-server

    输出:

    {
      "jobId" : "9a02d111-e902-4e94-bc6b-9b820ddf6ed8",
      "status" : "Created",
      "reports" : [ ],
      "createTimestamp" : "January 19, 2017 09:37:11 AM PST",
      "resourceList" : [ ],
      "description" : "Server Patching",
      "updatedTime" : "January 19, 2017 09:37:11 AM PST"
    }

    请记下以上示例中的 jobId。

  4. 将 Job Commands 与 jobId 一起使用,检查作业输出。

    dbcli describe-job -i 9a02d111-e902-4e94-bc6b-9b820ddf6ed8

    输出:

    Job details
    ----------------------------------------------------------------
                         ID:  9a02d111-e902-4e94-bc6b-9b820ddf6ed8
                Description:  Server Patching
                     Status:  Running
                    Created:  January 19, 2017 9:37:11 AM PST
                    Message:
    
    Task Name                                Start Time                          End Time                            Status
    ---------------------------------------- ----------------------------------- ----------------------------------- ----------
    Create Patching Repository Directories   January 19, 2017 9:37:11 AM PST     January 19, 2017 9:37:11 AM PST     Success
    Download latest patch metadata           January 19, 2017 9:37:11 AM PST     January 19, 2017 9:37:11 AM PST     Success
    Update System version                    January 19, 2017 9:37:11 AM PST     January 19, 2017 9:37:11 AM PST     Success
    Update Patching Repository               January 19, 2017 9:37:11 AM PST     January 19, 2017 9:38:35 AM PST     Success
    oda-hw-mgmt upgrade                      January 19, 2017 9:38:35 AM PST     January 19, 2017 9:38:58 AM PST     Success
    Opatch updation                          January 19, 2017 9:38:58 AM PST     January 19, 2017 9:38:58 AM PST     Success
    Patch conflict check                     January 19, 2017 9:38:58 AM PST     January 19, 2017 9:42:06 AM PST     Success
    Apply cluster-ware patch                  January 19, 2017 9:42:06 AM PST     January 19, 2017 10:02:32 AM PST    Success
    Updating GiHome version                  January 19, 2017 10:02:32 AM PST    January 19, 2017 10:02:38 AM PST    Success
  5. 使用组件命令验证服务器组件是否已成功更新。可用版本列应指示 update-to-date。

更新数据库主目录组件

执行以下步骤更新数据库主目录组件。

  1. 通过 SSH 连接到数据库系统。

    ssh -i <private_key_path> opc@<db_system_ip_address>
  2. 以 opc 身份登录,然后以 sudo 身份登录到 root 用户。使用带有连字符的 sudo su - 调用 root 用户的配置文件,该配置文件将 PATH 设置为 dbcli 目录 (/opt/oracle/dcs/bin)。

    sudo su -
  3. 使用 Dbhome 命令获取数据库主目录的 ID。

    dbcli list-dbhomes

    输出:

    ID                                   Name               DB Version Home Location
    ------------------------------------ -----------------  ---------- ------------------------------------------
    b727bf80-c99e-4846-ac1f-28a81a725df6 OraDB12102_home1    12.1.0.2  /u01/app/orauser/product/12.1.0.2/dbhome_1
  4. 使用 Dbhome 命令更新数据库主目录组件并提供上一步中的 ID。

    dbcli update-dbhome -i b727bf80-c99e-4846-ac1f-28a81a725df6

    输出:

    {
      "jobId" : "31b38f67-f993-4f2e-b7eb-5bccda9901ae",
      "status" : "Created",
      "message" : null,
      "reports" : [ ],
      "createTimestamp" : "January 20, 2017 10:08:48 AM PST",
      "resourceList" : [ ],
      "description" : "DB Home Patching: Home Id is 52e2e799-946a-4339-964b-c203dee35328",
      "updatedTime" : "January 20, 2017 10:08:48 AM PST"
    }

    请记下以上示例中的 jobId。

  5. 将 Job Commands 与 jobId 一起使用,检查作业输出。

    dbcli describe-job -i 31b38f67-f993-4f2e-b7eb-5bccda9901ae

    输出:

    Job details
    ----------------------------------------------------------------
                         ID:  31b38f67-f993-4f2e-b7eb-5bccda9901ae
                Description:  DB Home Patching: Home Id is b727bf80-c99e-4846-ac1f-28a81a725df6
                     Status:  Success
                    Created:  January 20, 2017 10:08:48 AM PST
                    Message:
    
    Task Name                                Start Time                          End Time                            Status
    ---------------------------------------- ----------------------------------- ----------------------------------- ----------
    Create Patching Repository Directories   January 20, 2017 10:08:49 AM PST    January 20, 2017 10:08:49 AM PST    Success
    Download latest patch metadata           January 20, 2017 10:08:49 AM PST    January 20, 2017 10:08:49 AM PST    Success
    Update System version                    January 20, 2017 10:08:49 AM PST    January 20, 2017 10:08:49 AM PST    Success
    Update Patching Repository               January 20, 2017 10:08:49 AM PST    January 20, 2017 10:08:58 AM PST    Success
    Opatch updation                          January 20, 2017 10:08:58 AM PST    January 20, 2017 10:08:58 AM PST    Success
    Patch conflict check                     January 20, 2017 10:08:58 AM PST    January 20, 2017 10:12:00 AM PST    Success
    db upgrade                               January 20, 2017 10:12:00 AM PST    January 20, 2017 10:22:17 AM PST    Success
  6. 使用组件命令验证数据库主目录组件是否已成功更新。可用版本列应指示 update-to-date。

检查数据库系统节点的可用操作系统更新

注意:

  1. 通过 SSH 连接到数据库系统。

    ssh -i <private_key_path> opc@<db_system_ip_address>
  2. 以 opc 身份登录,然后以 sudo 身份登录到 root 用户。使用带有连字符的 sudo su - 调用 root 用户的配置文件,该配置文件将 PATH 设置为 dbcli 目录 (/opt/oracle/dcs/bin)。

    sudo su -
  3. 使用 get-availableospatches 命令可标识要应用于 OS 的更新。请注意,如果 rebootIsRequired 字段为 "true",则在应用更新后必须重新引导数据库系统。

    dbcli get-availableospatches

    输出:

    Update Available     Reboot Required
    -------------------- --------------------
    Yes                  Yes

    要获取 JSON 中的输出,请使用以下命令。

    dbcli get-availableospatches -j

    输出:

    {
    "updateAvailable" : true,
    "rebootIsRequired" : true,
    "updateableRpms" : [ "curl.x86_64::7.29.0-59.0.1.el7_9.1", "freetype.x86_64::2.8-14.el7_9.1",
        "kernel-devel.x86_64::3.10.0-1160.11.1.el7", "kernel-headers.x86_64::3.10.0-1160.11.1.el7",
        "kernel-uek.x86_64::4.1.12-124.45.6.el7uek", "kernel-uek-firmware.noarch::4.1.12-124.45.6.el7uek",
        "libX11.x86_64::1.6.7-3.el7_9", "libX11-common.noarch::1.6.7-3.el7_9",
        "libcurl.x86_64::7.29.0-59.0.1.el7_9.1", "libsmbclient.x86_64::4.10.16-9.el7_9",
        "libwbclient.x86_64::4.10.16-9.el7_9", "python.x86_64::2.7.5-90.0.1.el7",
        "python-libs.x86_64::2.7.5-90.0.1.el7", "samba-client-libs.x86_64::4.10.16-9.el7_9",
        "samba-common.noarch::4.10.16-9.el7_9", "samba-common-libs.x86_64::4.10.16-9.el7_9",
        "sudo.x86_64::1.8.23-10.el7_9.1" ],
    "installedRpms" : [ "curl.x86_64::7.29.0-59.0.1.el7", "freetype.x86_64::2.8-14.el7",
        "kernel-devel.x86_64::3.10.0-1160.2.2.el7", "kernel-headers.x86_64::3.10.0-1160.2.2.el7",
        "kernel-uek.x86_64::4.1.12-124.43.4.el7uek", "kernel-uek-firmware.noarch::4.1.12-124.43.4.el7uek",
        "libX11.x86_64::1.6.7-2.el7", "libX11-common.noarch::1.6.7-2.el7",
        "libcurl.x86_64::7.29.0-59.0.1.el7", "libsmbclient.x86_64::4.10.16-7.el7_9",
        "libwbclient.x86_64::4.10.16-7.el7_9", "python.x86_64::2.7.5-89.0.1.el7",
        "python-libs.x86_64::2.7.5-89.0.1.el7", "samba-client-libs.x86_64::4.10.16-7.el7_9",
        "samba-common.noarch::4.10.16-7.el7_9", "samba-common-libs.x86_64::4.10.16-7.el7_9",
        "sudo.x86_64::1.8.23-10.el7" ]
    }

更新数据库系统节点的操作系统

本主题介绍了如何使用 dbcli 运行预检查,然后对在数据库系统节点上运行的操作系统应用更新。

注:某些 OS 更新操作在更新完成后需要重新引导。使用 dbcli get-availableospatches 命令(如上一主题中所述)确定要应用的更新是否需要重新引导。

执行以下步骤更新数据库系统节点的操作系统。

  1. 通过 SSH 连接到数据库系统。

    ssh -i <private_key_path> opc@<db_system_ip_address>
  2. 以 opc 身份登录,然后以 sudo 身份登录到 root 用户。使用带有连字符的 sudo su - 调用 root 用户的配置文件,该配置文件将 PATH 设置为 dbcli 目录 (/opt/oracle/dcs/bin)。

    sudo su -
  3. 使用 update-server -c os -p 命令运行预检查:

    dbcli update-server -c os -p

    输出:

    {
      "jobId" : "7fc5cadd-d256-436a-be0d-c2bfe9fd4e95",
      "status" : "Created",
      "message" : null,
      "reports" : [ ],
      "createTimestamp" : "March 01, 2021 07:36:19 AM UTC",
      "resourceList" : [ ],
      "description" : "OS Patching Prechecks",
      "updatedTime" : "March 01, 2021 07:36:20 AM UTC",
      "percentageProgress" : "0%"
    }
  4. 如果预检查成功且未发现任何阻止成功更新操作的问题,则可以更新 OS。如果预检查不成功,请先解决预检查发现的问题,然后再尝试更新 OS。

    注:只能在当前节点中使用 -l (--local) 标志来更新服务器组件。

    要更新 OS,请使用 dbcli update-server -c os 命令:

    dbcli update-server -c os

    输出:

    {
      "jobId" : "bee1c6d9-45fb-4e5b-8ee8-f02e7cd192ab",
      "status" : "Created",
      "message" : null,
      "reports" : [ ],
      "createTimestamp" : "March 01, 2021 07:37:43 AM UTC",
      "resourceList" : [ ],
      "description" : "OS Patching",
      "updatedTime" : "March 01, 2021 07:37:43 AM UTC",
      "percentageProgress" : "0%"
     }
  5. 如果 OS 更新需要重新引导,请在更新操作完成后重新引导服务器。