使用 dbcli 更新資料庫系統資源

您可以使用 dbcli 公用程式來更新資料庫系統資源。這包括更新資料庫系統、資料庫系統內節點上的作業系統 (OS) 以及資料庫本位目錄。

如需有關 dbcli 命令的詳細資訊,請參閱 Oracle Database CLI Reference 。

先決條件

  1. 正在準備作業系統更新。

    在更新作業系統之前,請審閱下列重要準則與資訊:

    • 請先備份資料庫系統中的資料庫,再嘗試更新作業系統。
    • 請勿移除資料庫系統的套裝程式。不過,您可能必須移除自訂 RPM (系統啟動設定後安裝的套裝軟體),更新才能順利完成。
    • Oracle 建議您在更新生產系統之前,先在非生產系統上完整測試任何更新。
    • 用來啟動資料庫系統的映像檔會定期更新,以進行必要的更新。啟動資料庫系統之後,您必須負責套用透過 Oracle 公用 YUM 伺服器發布的必要作業系統安全更新。
    • 若要套用作業系統更新,必須將資料庫系統中的虛擬雲端網路 (VCN) 設定為允許存取 YUM 儲存區域。如需詳細資訊,請參閱 VCN 和子網路。
  2. 使用 SSH 連線至資料庫系統的需求。

    若要透過 SSH 連線至資料庫系統,您需要啟動資料庫系統時所使用之公開金鑰的私密金鑰路徑。

    您還需要資料庫系統的公用或專用 IP 位址。

    使用專用 IP 位址從內部部署網路或 VCN 內連線至系統。這包括從透過 VPN 或 FastConnect 連線至 VCN 的內部部署主機連線,或從相同 VCN 中的其他主機連線。使用資料庫系統的公用 IP 位址,從雲端外部連接到系統 (無需 VPN)。您可以在主控台中找到 IP 位址,如下所示:

    1. 在資料庫系統詳細資訊頁面的資源底下,按一下節點。
    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 命令顯示物件儲存中可用的最新更新版本。

    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) 和儲存體管理套件 (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. 使用工作命令搭配 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. 使用工作命令搭配 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 指令識別要套用至作業系統的更新。請注意,如果 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 執行前置檢查,然後將更新套用至在資料庫系統節點上執行的作業系統。

注意:部分作業系統更新作業需要在更新完成後重新啟動。使用上一個主題中所述的 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. 如果前置檢查成功,並且未發現任何無法成功更新作業的問題,您可以更新作業系統。如果前置檢查不成功,請先解決前置檢查所識別的問題後,再嘗試更新作業系統。

    注意:您只能使用 -l (--local) 旗標更新目前節點中的伺服器元件。

    若要更新作業系統,請使用 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. 如果作業系統更新需要重新啟動,請在更新作業完成後重新啟動伺服器。