更新 資料庫

本文將說明使用主控台和 API 更新資料庫系統中的資料庫的程序。

必要的 IAM 原則

若要使用 Oracle Cloud Infrastructure,必須要有管理員授予您原則的安全性存取權。無論您使用主控台或 REST API 搭配 SDK、CLI 或其他工具,都必須具備此存取權。如果收到您沒有權限或未經授權的訊息,請向管理員確認您擁有的存取權類型,以及要處理哪個區間。

管理員:讓資料庫管理員管理 Oracle Cloud 資料庫系統中的原則可讓指定的群組對資料庫和相關資料庫資源執行所有動作。

如果您是原則的新手,請參閱原則入門和一般原則。若要深入瞭解資料庫的寫入原則,請參閱資料庫服務的詳細資訊。

關於更新資料庫

Oracle 建議先更新資料庫系統,再更新該資料庫系統的資料庫。

依預設,可取得最新核准的版本更新。您也可以在確認顯示的訊息後,選取前兩個版本更新 (N-1 或 N-2) 中的其中一個。若要使用早於 N-2 的版本更新,您必須提交服務要求。

您也可以使用自訂資料庫軟體映像檔來更新 Oracle AI Database。可供選取的映像檔取決於適用的版本選取控制項。

下列僅適用於從 2022 年 4 月開始的 12.1 和 12.2 更新,以及 2022 年 7 月 19c 更新的 Oracle 型更新。

如果您已安裝任何臨時更新 (之前稱為單次修補程式 ),則這些臨時更新會在安裝新更新之前自動回復。如果新更新不包含臨時更新,您可以在完成安裝新更新後再次安裝臨時更新。

如果您在資料庫中安裝任何暫時更新,則為了避免在新更新之後安裝暫時更新,Oracle 建議您使用自訂資料庫軟體影像,並使用該影像更新您的資料庫。

執行前置檢查之後,您可以在 dbcli 中執行下列命令,以識別是否已安裝任何其他暫時更新。

dbcli describe-job -i <job id>

其中 job id (dbcli list-jobs) 是前置檢查執行的工作 ID。

「Oracle 本位目錄」中的所有變更都會複製到新更新和已安裝的資料庫。

備註:

資料庫系統應該可以存取 OCI 內的身分識別和物件儲存端點。如果在專用子網路上執行的資料庫系統只設定了服務閘道,而且沒有其他閘道 (例如 NAT 閘道),您應該確定服務閘道設定為允許存取所有 Oracle 服務,而不只是允許物件儲存。如果可以透過其他方式連線識別和物件儲存端點,則不需要變更。

如需目前可用資料庫更新清單的詳細資訊,請參閱目前可用的更新。

注意:必須使用 OPATCH 工具手動套用 OJVM 更新。

使用資料庫軟體映像檔套用暫時更新

不建議對資料庫系統套用暫時更新。而是應該建立和部署包含必要修正的資料庫軟體映像檔。只有當您無法使用資料庫軟體影像 (例如,將暫時更新套用至 GI 本位目錄) 時,您才能提出「服務要求」(SR) 並要求支援協助下載暫時更新。

如需資料庫軟體映像檔的詳細資訊,請參閱軟體映像檔。

更新 資料庫

使用 OCI 主控台,執行下列步驟以從舊版更新資料庫:

  1. 在資料庫系統清單頁面上,選取包含您要使用之資料庫的資料庫系統。如果您需要尋找清單頁面或資料庫系統的協助,請參閱列出資料庫系統。
  2. 在資料庫頁籤上,選取您要使用的資料庫。
  3. 在資料庫詳細資訊頁面上,選取更新頁籤以檢視資料庫的可用更新清單。
  4. 從您感興趣之更新的動作功能表中,選取下列其中一個動作:

    • 檢視詳細資訊:檢視此更新的詳細資訊。
    • 前置檢查:檢查是否有任何先決條件,以確保可順利套用更新。
    • 套用更新:套用選取的更新。Oracle 建議您先針對更新執行前置檢查作業,再進行套用。

在清單中,狀態會顯示作業的狀態。套用更新時,「狀態」會顯示為更新。資料庫的狀態也會顯示為更新。資料庫及其資源的生命週期作業可能會暫時無法使用。如果更新成功完成,「狀態」會變更為已套用,而資料庫的狀態會變更為可用。

檢視資料庫更新歷史記錄

若要使用 OCI 主控台檢視資料庫的更新歷史記錄,請執行下列步驟:

注意:「主控台」中的更新歷史記錄不會顯示使用命令行工具 (例如 dbcli 或「修正程式」公用程式) 套用的更新。

  1. 在資料庫系統清單頁面上,選取包含您要使用之資料庫的資料庫系統。如果您需要尋找清單頁面或資料庫系統的協助,請參閱列出資料庫系統。
  2. 在資料庫頁籤上,選取您要使用的資料庫。
  3. 在詳細資訊頁面上,選取更新歷史記錄頁籤以檢視該資料庫的更新和升級作業歷史記錄。

套用臨時更新

注意:本主題僅適用於單一節點和多重節點 RAC 資料庫系統的資料庫本位目錄。

若要套用臨時更新以修正特定瑕疵,請遵循本節中的程序。使用 Opatch 公用程式將暫時更新套用至資料庫本位目錄。

注意:在程序範例中,「資料庫本位目錄」為 /u02/app/oracle/product/12.1.0.2/dbhome_1,更新編號為 26543344。

  1. 從 My Oracle Support 取得適用的暫時更新。

  2. 複查更新 README.txt 檔案中的資訊。此檔案可能包含額外的和 (或) 自訂指示,以便成功套用更新。

  3. 使用 SCP 或 SFTP 將更新置於您的目標資料庫。

  4. 關閉在「資料庫本位目錄」中執行的每個資料庫。

    srvctl stop database -db <db name> -stopoption immediate -verbose
  5. 將 Oracle 本位目錄環境變數設為指向目標 Oracle 本位目錄。

    sudo su - oracle
    export ORACLE_HOME=/u02/app/oracle/product/12.1.0.2/dbhome_1
  6. 變更至放置更新的目錄,然後解壓縮更新。

    cd <working directory where opatch is stored>
    unzip p26543344_122010_Linux-x86-64.zip
  7. 以解壓縮的更新變更為目錄,並檢查衝突。

    cd 26543344
    $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
  8. 套用更新。

    $ORACLE_HOME/OPatch/opatch apply
  9. 確認已成功套用更新。

    $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
  10. 如果「資料庫本位目錄」包含資料庫,請重新啟動資料庫。

    $ORACLE_HOME/bin/srvctl start database -db <db name>

    否則,請以 root 使用者身分執行下列命令。

    # /u01/app/<db version>/grid/bin/setasmgidwrap o=/u01/app/oracle/product/<db version>/dbhome_1/bin/oracle
  11. 如果讀我檔案指示更新具有 sqlpatch 元件,請針對每個資料庫執行 datapatch 命令。

    在您執行 datapatch 之前,請確定所有可插拔資料庫 (PDB) 都已開啟。如果要開啟 PDB,您可以使用 SQL*Plus 對 PDB 執行下列動作。

    ALTER PLUGGABLE DATABASE <pdb name> OPEN READ WRITE
    $ORACLE_HOME/OPatch/datapatch