更新資料庫
本文將說明使用主控台和 API 在資料庫系統中更新資料庫的程序。
必要的 IAM 原則
若要使用 Oracle Cloud Infrastructure,管理員必須透過原則授予您安全性存取權。不論您是使用主控台或 REST API 搭配 SDK、CLI 或其他工具,都必須具備此存取權。如果您收到一則訊息,指出您沒有權限或未經授權,請與您的管理員確認您所擁有的存取類型,以及應使用的區間。
針對管理員:讓資料庫管理員管理 Oracle Cloud 資料庫系統中的原則可讓指定的群組對資料庫和相關資料庫資源執行所有動作。
如果您不熟悉原則,請參閱原則入門和通用原則。如果您想要深入撰寫資料庫的原則,請參閱資料庫服務的詳細資訊。
關於更新資料庫
Oracle 建議先更新資料庫系統後,再更新該資料庫系統內的資料庫。
對於 Oracle Database,有四個最新版本可供更新 (N 到 N-3)。例如,如果執行處理使用 21c,且提供的最新 21c 版本為 21.10.0.0,則 21.10.0.0、21.9.0.0、21.8.0.0 和 21.7.0.0 可供 Oracle Database 更新使用。您可以使用上述任一更新,但 Oracle 建議使用最新版本。
您也可以使用自訂資料庫軟體映像檔來更新您的 Oracle Database。使用軟體映像進行更新時,Oracle 支援根據四個最新版本中的任一版本 (N 到 N-3) 使用任何映像進行更新。
從 2022 年 4 月開始,19c 的 12.1、12.2 和 2022 年 7 月更新,下列僅適用於 Oracle 更新。
如果您已安裝任何暫時更新 (之前稱為單次修正程式 ),則那些暫時更新將在安裝新更新之前自動倒回。如果新更新未包含暫時更新,則可以在完成安裝新更新後再次安裝暫時更新。
如果您的資料庫中已安裝任何暫時更新,則為了避免在新更新後安裝暫時更新,Oracle 建議您使用自訂資料庫軟體映像檔,並使用該映像檔更新您的資料庫。
執行前置檢查之後,您可以透過在 dbcli 中執行下列命令,識別是否已安裝任何額外的暫時更新。
dbcli describe-job -i <job id>
其中 job id
(dbcli list-jobs
) 是前置檢查執行的工作 ID。
「Oracle 本位目錄」中的所有變更將會複製到新更新和已安裝的資料庫。
附註:
- Oracle 不建議變更資料庫本位目錄內的任何檔案。
- 請務必確認已正確複製您對「資料庫本位目錄」所做的所有變更。如果您已經複製「資料庫本位目錄」中的任何檔案或資料夾,例如
tnsnames.ora
、listener.ora
等,您應該手動備份這些檔案。
資料庫系統應能夠存取 OCI 內的身分識別和物件儲存端點。如果在專用子網路上執行的資料庫系統只設定了服務閘道而沒有其他閘道 (例如 NAT 閘道),則應確保服務閘道設定為允許存取所有 Oracle 服務,而非僅允許存取物件儲存。如果可以透過其他方式連線識別端點和物件儲存端點,則不需要進行任何變更。
如需目前可用資料庫更新清單的詳細資訊,請參閱 Currently Available Updates 。
附註:
必須使用 OPATCH 工具手動套用 OJVM 更新。使用資料庫軟體映像檔套用暫時更新
我們不建議對資料庫系統套用暫時更新。因此,您應該建立和部署包含必要修正的資料庫軟體映像檔。只有在無法使用資料庫軟體映像檔的情況下 (例如將暫時更新套用至 GI 本位目錄),您才可以提出「服務要求 (SR)」並要求支援協助下載暫時更新。
如需資料庫軟體映像檔的詳細資訊,請參閱軟體映像檔。
更新資料庫
使用 OCI 主控台,執行下列步驟以從舊版更新資料庫:
- 在資料庫系統清單頁面上,選取包含您要使用之資料庫的資料庫系統。如果您需要尋找清單頁面或資料庫系統的協助,請參閱列出資料庫系統。
- 在資料庫頁籤上,選取您要使用的資料庫。
- 在資料庫詳細資訊頁面上,選取更新頁籤以檢視資料庫的可用更新清單。
- 從您感興趣之更新的動作功能表中,選取下列其中一個動作:
- 檢視詳細資訊:檢視此更新的詳細資訊。
- 前置檢查:檢查是否有任何先決條件,以確保可順利套用更新。
- 套用更新:套用選取的更新。Oracle 建議您在套用前先執行更新的前置檢查作業。
在清單中,狀態會顯示作業的狀態。套用更新時,「狀態」會顯示為更新。資料庫的狀態也會顯示為更新。資料庫與其資源的生命週期作業可能暫時無法使用。如果更新順利完成,「狀態」會變更為已套用,而資料庫的狀態會變更為可用。
檢視資料庫更新歷史記錄
若要使用 OCI 主控台檢視資料庫的更新歷史記錄,請執行下列步驟:
附註:
主控台中的更新歷史記錄未顯示使用命令行工具 (例如 dbcli 或修正公用程式) 所套用的更新。- 在資料庫系統清單頁面上,選取包含您要使用之資料庫的資料庫系統。如果您需要尋找清單頁面或資料庫系統的協助,請參閱列出資料庫系統。
- 在資料庫頁籤上,選取您要使用的資料庫。
- 在詳細資訊頁面上,選取更新歷史記錄頁籤以檢視該資料庫的更新和升級作業歷史記錄。
套用過渡更新
附註:
本主題僅適用於單一節點和多節點 RAC 資料庫系統的資料庫本位目錄。若要套用暫時更新來修正特定瑕疵,請遵循本節中的程序。使用 Opatch
公用程式將暫時更新套用至資料庫本位目錄。
附註:
在程序範例中,「資料庫本位目錄」為 /u02/app/oracle/product/12.1.0.2/dbhome_1 ,更新編號為 26543344 。- 從 My Oracle Support 取得適用的暫時更新。
- 複查更新
README.txt
檔案中的資訊。此檔案可能包含附加和 / 或自訂指示,以便順利套用更新。 - 使用 SCP 或 SFTP 將更新放置在您的目標資料庫上。
- 關閉在「資料庫本位目錄」中執行的每個資料庫。
srvctl stop database -db <db name> -stopoption immediate -verbose
- 將「Oracle 本位目錄」環境變數設為指向目標「Oracle 本位目錄」。
sudo su - oracle export ORACLE_HOME=/u02/app/oracle/product/12.1.0.2/dbhome_1
- 變更至您放置更新的目錄,然後解壓縮更新。
cd <working directory where opatch is stored> unzip p26543344_122010_Linux-x86-64.zip
- 將解壓縮的更新變更為目錄,並檢查衝突。
cd 26543344 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
- 套用更新。
$ORACLE_HOME/OPatch/opatch apply
- 驗證已成功套用更新。
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
- 如果資料庫本位目錄包含資料庫,請重新啟動它們。
$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
- 如果 Readme 指示更新含有
sqlpatch
元件,請針對每個資料庫執行datapatch
命令。執行
datapatch
之前,請先確定所有可插拔資料庫 (PDB) 都已開啟。如果要開啟 PDB,您可以使用 SQL*Plus 對 PDB 執行下列動作。ALTER PLUGGABLE DATABASE <pdb name> OPEN READ WRITE
$ORACLE_HOME/OPatch/datapatch