使用 dbcli 更新数据库系统资源
可以使用 dbcli 实用程序更新数据库系统资源。这包括更新数据库系统、数据库系统内节点上的操作系统 (operating system,OS) 和数据库主目录。
有关 dbcli 命令的更多信息,请参见Oracle Database CLI Reference。
Prerequisites
- 正在准备 OS 更新。
在更新 OS 之前,请查看以下重要准则和信息:
- 在尝试 OS 更新之前,请在数据库系统中备份数据库。
-
请勿从数据库系统中删除程序包。但是,为了成功完成更新,您可能需要删除定制 RPM(在预配系统后安装的软件包)。
注意:
请勿在数据库系统上安装网络管理器。安装此软件包并重新引导系统会导致对系统的访问严重丢失。 - Oracle 建议您在更新生产系统之前对非生产系统上的任何更新进行全面测试。
- 用于启动数据库系统的映像将定期更新并进行必要的更新。启动数据库系统后,您负责应用通过 Oracle 公共 YUM 服务器发布所需的 OS 安全更新。
- 要应用 OS 更新,必须将数据库系统中的虚拟云网络 (VCN) 配置为允许访问 YUM 资料档案库。有关更多信息,请参见VCN 和子网。
- 使用 SSH 连接到数据库系统的要求。
要通过 SSH 连接到数据库系统,您需要指向与启动数据库系统时使用的公共密钥关联的私有密钥的路径。
您还需要数据库系统的公共或专用 IP 地址。
使用专用 IP 地址从内部部署网络或 VCN 内连接到系统。这包括从位于内部部署中的主机通过 VPN 或 FastConnect 连接到 VCN,或者从同一 VCN 中的其他主机进行连接。使用数据库系统的公共 IP 地址从云外部连接到系统(不含 VPN)。您可以在控制台中找到 IP 地址,如下所示:
- 在数据库系统详细信息页的资源下,单击节点。
- 查看表中显示数据库系统的节点的公共 IP 地址和专用 IP 地址和 DNS 名称列中显示的值。
使用最新命令更新 CLI
执行以下步骤更新 CLI 以确保您具有最新的更新命令(较旧的数据库系统可能不包括这些命令)。
- 通过 SSH 连接到数据库系统。
ssh -i <private_key_path> opc@<db_system_ip_address>
- 以
opc
身份登录,然后以sudo
身份登录到root
用户。使用带连字符的sudo su -
调用root
用户的配置文件,该配置文件将PATH
设置为 dbcli 目录 (/opt/oracle/dcs/bin
)。sudo su -
- 使用 CLI Update Command 更新 CLI。
输出:cliadm update-dbcli
{ "jobId" : "dc9ce73d-ed71-4473-99cd-9663b9d79bfd", "status" : "Created", "message" : "Dcs cli will be updated", "reports" : [ ], "createTimestamp" : "January 18, 2017 10:19:34 AM PST", "resourceList" : [ ], "description" : "dbcli patching", "updatedTime" : "January 18, 2017 10:19:34 AM PST" }
- 等待更新作业成功完成。使用作业命令检查作业的状态。
输出:dbcli list-jobs
ID Description Created Status ------------------------------------ -------------- ----------------------------------- ---------- dc9ce73d-ed71-4473-99cd-9663b9d79bfd dbcli patching January 18, 2017 10:19:34 AM PST Success
检查已安装和可用更新
执行以下步骤可检查是否已安装和可用的更新。
- 通过 SSH 连接到数据库系统。
ssh -i <private_key_path> opc@<db_system_ip_address>
- 以
opc
身份登录,然后以sudo
身份登录到root
用户。使用带连字符的sudo su -
调用root
用户的配置文件,该配置文件将PATH
设置为 dbcli 目录 (/opt/oracle/dcs/bin
)。sudo su -
- 使用组件命令显示已安装的更新版本。如果可用版本列指示组件的版本号,则应更新该组件。
输出: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
- 使用 Latestpatch 命令显示对象存储中可用的最新更新版本。
输出: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
更新服务器组件
执行以下步骤更新网格基础结构 (Grid Infrastructure,GI) 和存储管理工具包 (Storage Management Kit,OAK) 服务器组件。
- 通过 SSH 连接到数据库系统。
ssh -i <private_key_path> opc@<db_system_ip_address>
- 以
opc
身份登录,然后以sudo
身份登录到root
用户。使用带连字符的sudo su -
调用root
用户的配置文件,该配置文件将PATH
设置为 dbcli 目录 (/opt/oracle/dcs/bin
)。sudo su -
- 使用服务器命令更新服务器组件。
输出: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
。 - 使用带有
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
- 使用 Component Command 验证服务器组件是否已成功更新。可用版本列应指示
update-to-date
。
更新数据库主目录组件
执行以下步骤更新数据库主目录组件。
- 通过 SSH 连接到数据库系统。
ssh -i <private_key_path> opc@<db_system_ip_address>
- 以
opc
身份登录,然后以sudo
身份登录到root
用户。使用带有连字符的sudo su -
调用root
用户的配置文件,该配置文件会将 PATH 设置为 dbcli 目录 (/opt/oracle/dcs/bin
)。sudo su -
- 使用 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
- 使用 Dbhome Commands 更新数据库主目录组件,并提供上一步中的
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
。 - 使用带有
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
- 使用组件命令验证数据库主目录组件是否已成功更新。可用版本列应指示
update-to-date
。
检查数据库系统节点的可用操作系统更新
注意:
- 如果 OS 更新中存在任何内核更新,Oracle 建议重新引导数据库系统。
- Oracle 不建议安装不属于 Oracle 提供的版本锁的 OS 软件包或相关项。
- 通过 SSH 连接到数据库系统。
ssh -i <private_key_path> opc@<db_system_ip_address>
- 以
opc
身份登录,然后以sudo
身份登录到root
用户。使用带有连字符的sudo su -
调用 root 用户的配置文件,该配置文件会将PATH
设置为 dbcli 目录 (/opt/oracle/dcs/bin
)。sudo su -
- 使用
get-availableospatches
命令确定要应用于 OS 的更新。请注意,如果rebootIsRequired
字段为 "true",则必须在应用更新后重新引导数据库系统。
输出:dbcli get-availableospatches
要以 JSON 格式获取输出,请使用以下命令。Update Available Reboot Required -------------------- -------------------- Yes Yes
输出: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 应用更新。
注意:
某些 OS 更新操作在更新完成后需要重新引导。使用上一主题中所述的dbcli get-availableospatches
命令确定要应用的更新是否需要重新引导。
执行以下步骤更新数据库系统节点的 OS。
- 通过 SSH 连接到数据库系统。
ssh -i <private_key_path> opc@<db_system_ip_address>
- 以
opc
身份登录,然后以sudo
身份登录到root
用户。使用带有连字符的sudo su -
调用 root 用户的配置文件,该配置文件会将PATH
设置为 dbcli 目录 (/opt/oracle/dcs/bin
)。sudo su -
- 使用
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%" }
- 如果预检查成功,并且未发现任何阻止成功更新操作的问题,则可以更新 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%" }
- 如果 OS 更新需要重新引导,请在更新操作完成后重新引导服务器。