資料庫本位目錄管理
本節提供管理 Oracle AI Database 本位目錄的工具。其中包含建立新 Oracle AI Database 本位目錄的命令 (例如 dbaascli dbhome create),以及移除現有 Oracle AI Database 本位目錄的 dbaascli dbHome delete。您也可以使用 dbaascli dbHome getDetails 檢視特定 Oracle 本位目錄的詳細資訊,並使用 dbaascli dbhome getDatabases 檢查從指定 Oracle 本位目錄執行的資料庫。這些命令可確保有效管理資料庫環境。
- dbaascli dbhome 建立
- dbaascli dbHome 刪除
- dbaascli dbhome getDatabases
- dbaascli dbHome getDetails
- dbaascli dbHome 修正程式
dbaascli dbhome 建立
若要建立所需版本的 Oracle AI Database 本位目錄,請使用 dbaascli dbhome create 命令。
先決條件:
身分為 root 使用者執行指令。
語法:
dbaascli dbhome create --version <value>
[--oracleHome <value>]
[--oracleHomeName <value>]
[--enableUnifiedAuditing <value>]
[--imageTag <value>]
[--ImageLocation <value>
參數:
| 參數 | 描述 |
|---|---|
--version |
指定 Oracle 本位目錄的版本為以句號區隔的五個數值區段,例如 19.12.0.0.0 |
--oracleHome |
指定 Oracle 本位目錄位置 |
--oracleHomeName |
指定使用者定義的 Oracle 本位目錄名稱。若未提供,則將使用預設名稱 |
--enableUnifiedAuditing |
指定 true 或 false,以啟用或停用 Oracle 本位目錄中的統一稽核連結選項 |
--imageTag |
指定 Oracle 本位目錄影像標記 |
--imageLocation |
要使用的影像路徑。 |
--waitForCompletion |
指定 false 可在背景執行作業。有效值:true 或 false。 |
常見問題:
問:dbaascli dbhome 建立命令的目的是什麼?
答:dbaascli dbhome create 命令是用來建立具有所需版本的新 Oracle AI Database 本位目錄。
問:執行 dbaascli dbhome create 命令有哪些先決條件?
答:這個指令必須以 root 使用者身分執行。
問:如何在建立新 Oracle 本位目錄時指定 Oracle Database 版本?
A:使用 --version 選項,後面接著 Oracle AI Database 版本,格式為五個以句點分隔的數值區段,例如 19.11.0.0.0。
問:– oracleHome 選項指定什麼?
答:--oracleHome 選項會指定您要安裝 Oracle 本位目錄的位置。若未提供,則將使用預設位置。
問:我可以指派自訂名稱給新的 Oracle 本位目錄嗎?
答:是的,您可以使用 --oracleHomeName 選項來指定 Oracle 本位目錄的使用者定義名稱。若未指定,將使用預設名稱。
問:如何在新的 Oracle 本位目錄中啟用或停用統一稽核?
A:使用 --enableUnifiedAuditing 選項並指定 true 來啟用,或指定 false 來停用 Oracle 本位目錄的「統一稽核」。
問:– imageTag 選項有什麼作用?
A:--imageTag 選項會指定 Oracle 本位目錄映像檔標記,當映像檔標記與版本不同時,即可使用此標記。
問:使用 dbaascli dbhome create 命令搭配版本和影像標記的範例是什麼?
A:含有 version 和 image tag 的指令範例為:
dbaascli dbhome create --version 19.8.0.0.0 --imageTag 19.8.0.0.0
這會建立一個版本 19.8.0.0.0 的 Oracle 本位目錄,其中包含對應的影像標記。
問:如果我沒有提供 -oracleHome 或 -oracleHomeName 選項,會發生什麼情況?
A:如果未提供 --oracleHome,則 Oracle 本位目錄會安裝在預設位置。如果未指定 --oracleHomeName,則會指派預設名稱給 Oracle 本位目錄。
問:如何驗證 Oracle 本位目錄建立是否成功?
A:執行命令之後,請查看輸出日誌,瞭解是否有任何成功訊息或錯誤。您也可以瀏覽至指定的位置或使用 Oracle 工具 (例如 orainstRoot.sh),來驗證 Oracle 本位目錄。
問:是否可以在同一個系統上使用不同版本建立多個 Oracle 本位目錄?
答:是的,您可以為 --version 和 --oracleHomeName 選項指定不同的值,以不同的版本建立多個 Oracle 本位目錄。
問:如果建立 Oracle 本位目錄失敗,該怎麼辦?
答:檢查輸出日誌以瞭解詳細的錯誤訊息。請確認您具有有效的版本格式、所需的權限,以及足夠的磁碟空間。請修正任何問題,然後嘗試重新執行命令。
範例:dbaascli dbhome create
dbaascli dbhome create --version 19.11.0.0.0
或者,如果影像標記與版本不同,則為 dbaascli dbhome create --version 19.8.0.0.0.0 --imageTag 19.8.0.0.0。
dbaascli dbHome 刪除
若要刪除指定的資料庫本位目錄,請使用 dbaascli dbHome delete 命令。
先決條件:
身分為 root 使用者身分執行指令。
語法:
dbaascli dbHome delete
{ --oracleHome <value>
| --oracleHomeName <value> } [--resume [--sessionID <value>]]
參數:
| 參數 | 描述 |
|---|---|
--oracleHome |
指定 Oracle 本位目錄位置 |
--oracleHomeName |
指定 Oracle 本位目錄的名稱 |
--resume |
繼續上一個執行 |
--sessionID |
指定繼續特定的階段作業 ID |
常見問題:
Q:dbaascli dbHome delete 命令的用途為何?
答:dbaascli dbHome delete 命令用於從系統中刪除指定的資料庫本位目錄。
問:執行 dbaascli dbHome delete 命令有哪些先決條件?
答:這個指令必須以 root 使用者身分執行。
問:如何指定要刪除的 Oracle 本位目錄?
答:您可以使用下列其中一個選項,指定要刪除的 Oracle 本位目錄:
--oracleHome <value>-- 提供 Oracle 本位目錄位置的絕對路徑。--oracleHomeName <value>,提供 Oracle 本位目錄的名稱。
問:– oracleHome 與 – oracleHomeName 選項有何差異?
A:
--oracleHome指定要刪除之 Oracle 本位目錄的實體位置或路徑。--oracleHomeName指定要刪除之 Oracle 本位目錄的使用者定義名稱。
問:如何恢復先前中斷的刪除過程?
答:您可以使用 --resume 選項繼續先前的刪除程序。如果您知道處理的特定階段作業 ID,可以將它與 --sessionID 選項一起包含。
問:dbaascli dbHome delete 命令中使用的 – sessionID 選項為何?
答:--sessionID 選項是用來繼續之前在刪除過程中中斷或失敗的特定階段作業。
問:如果我沒有提供 – resume 或 – sessionID 選項,會發生什麼事?
A:如果未提供 --resume 或 --sessionID 選項,命令將會起始新的刪除處理作業,而不是繼續中斷的處理作業。
問:執行命令後,是否有任何方法可以確認刪除「Oracle 本位目錄」?
答:您可以檢查輸出日誌是否有成功訊息,並確保指定的位置不再有 Oracle 本位目錄,以驗證刪除。
問:是否可以刪除執行中資料庫目前正在使用的 Oracle 本位目錄?
答:否,在刪除處理作業期間,任何執行中的資料庫或服務都不應該使用 Oracle 本位目錄。請確定先停止所有相關的資料庫,再執行 delete 命令。
問:如果 dbaascli dbHome delete 命令失敗,該怎麼辦?
A:複查輸出日誌以瞭解任何錯誤訊息。請確定 Oracle 本位目錄未使用,檢查有效的 Oracle 本位目錄位置或名稱,並確認您具備必要的權限。解決任何問題之後,請重新執行命令,或視需要使用 --resume 選項。
問:我可以使用 dbaascli dbHome delete 命令一次刪除多個 Oracle 本位目錄嗎?
答:否,命令只允許您指定 --oracleHome 或 --oracleHomeName 選項,一次刪除一個 Oracle 本位目錄。
問:以其名稱刪除「Oracle 本位目錄」的範例為何?
A:以下是依名稱刪除 Oracle 本位目錄的範例:
dbaascli dbHome delete --oracleHomeName myOracleHome
此命令會刪除名稱為 myOracleHome 的 Oracle 本位目錄。
問:刪除 Oracle 本位目錄的位置有哪些範例?
答:以下為透過指定 Oracle 本位目錄位置來刪除其位置的範例:
dbaascli dbHome delete --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1
此命令會刪除位於 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 本位目錄。
問:一旦開始,我可以取消刪除程序嗎?
答:不可以,一旦刪除程序開始,就無法取消。請先確定 Oracle 本位目錄已可供刪除,再執行命令。
dbaascli dbhome getDatabases
若要檢視從指定資料庫 Oracle 本位目錄執行之所有「Oracle 資料庫」的相關資訊,請使用 dbaascli dbHome getDatabases 命令。請指定 Oracle 本位目錄位置或 Oracle 本位目錄的名稱。
身分為 root 使用者執行指令。
語法:
dbaascli dbHome getDatabases
{ --oracleHomeName value | --oracleHome value }
參數:
| 參數 | 描述 |
|---|---|
--oracleHomeName |
指定使用者定義的 Oracle 本位目錄名稱 |
--oracleHome |
指定 Oracle 本位目錄的位置 (路徑) |
常見問題:
問:dbaascli dbHome getDatabases 命令的目的是什麼?
答:dbaascli dbHome getDatabases 命令用於檢視從指定 Oracle Database 本位目錄執行之所有 Oracle 資料庫的相關資訊。
問:如何指定要檢查的 Oracle Database 本位目錄?
答:您可以使用下列其中一個選項來指定資料庫本位目錄:
--oracleHomeName <value>-- 指定 Oracle 本位目錄的使用者定義名稱。--oracleHome <value>-- 指定 Oracle 本位目錄的完整位置 (路徑)。
問:– oracleHomeName 與 – oracleHome 選項有何差異?
A:
--oracleHomeName是指 Oracle 本位目錄的使用者定義名稱。--oracleHome是指系統上 Oracle 本位目錄的實體位置 (或目錄路徑)。
問:如何執行 dbaascli dbHome getDatabases 命令?
A:若要執行命令,請使用下列語法:
dbaascli dbHome getDatabases --oracleHomeName <value>
或
dbaascli dbHome getDatabases --oracleHome <value>
確保以 root 使用者身分執行指令。
問:是否可以在同一個命令中同時指定 Oracle 本位目錄名稱和 Oracle 本位目錄位置?
答:否,您只能在單一命令執行中指定 --oracleHomeName 或 --oracleHome。依據您識別 Oracle 本位目錄的方式選取一個選項。
問:dbaascli dbHome getDatabases 命令傳回什麼類型的資訊?
A:此命令會傳回從指定 Oracle 本位目錄執行之所有「Oracle 資料庫」的相關資訊。這包括資料庫名稱和狀態等詳細資訊。
問:在 Oracle 本位目錄位置使用 dbaascli dbHome getDatabases 是什麼範例?
A:以下是搭配 Oracle 本位目錄位置使用命令的範例:
dbaascli dbHome getDatabases --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1
此命令會從位於 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 本位目錄擷取執行的資料庫清單。
問:使用 dbaascli dbHome getDatabases 搭配 Oracle 本位目錄名稱有什麼範例?
A:以下是搭配 Oracle 本位目錄名稱使用命令的範例:
dbaascli dbHome getDatabases --oracleHomeName myOracleHome
此命令會從名為 myOracleHome 的 Oracle 本位目錄擷取執行的資料庫清單。
問:我需要任何特殊權限才能執行此指令嗎?
答:是的,您必須以 root 使用者身分執行命令,檢視從指定 Oracle 本位目錄執行的 Oracle 資料庫相關資訊。
問:我應該如何檢查 dbaascli dbHome getDatabases 命令是否未傳回任何資料庫?
A:請確定您已指定有效的 Oracle 本位目錄名稱或位置,而且有從該 Oracle 本位目錄執行的資料庫。此外,請確認 Oracle 本位目錄已正確設定且為作用中。
問:我可以在多個 Oracle 本位目錄上同時使用 dbaascli dbHome getDatabases 命令嗎?
答:否,命令一次適用於單一 Oracle 本位目錄。您必須針對每個要查詢的 Oracle 本位目錄分別執行命令。
問:是否有方法可以驗證命令中指定的 Oracle 本位目錄正確?
答:您可以檢查系統中的目錄結構或組態詳細資訊來驗證 Oracle 本位目錄,以確保提供的路徑或名稱符合實際的 Oracle 本位目錄。
問:如果在未指定 Oracle 本位目錄或 Oracle 本位目錄名稱的情況下執行命令,會發生什麼情況?
A:指令需要指定 --oracleHome 或 --oracleHomeName 選項。若未提供任何選項,命令將無法執行。
問:這個命令可以擷取目前停止的資料庫嗎?
答:是的,命令會列出與指定 Oracle 本位目錄關聯的所有資料庫,無論資料庫目前在執行中或已停止。
範例:dbaascli dbHome getDatabases – oracleHome
dbaascli dbHome getDatabases --oracleHome /u02/app/mar_home/
dbaascli dbHome getDetails
若要檢視特定 Oracle 本位目錄的相關資訊,請使用 dbaascli dbHome getDetails 命令。請指定 Oracle 本位目錄位置或 Oracle 本位目錄的名稱。
先決條件:
以 root 使用者身分執行指令。
語法:
dbaascli dbHome getDetails
{ --oracleHomeName value | --oracleHome value }
參數:
| 參數 | 描述 |
|---|---|
--oracleHomeName |
指定使用者定義的 Oracle 本位目錄名稱 |
--oracleHome |
指定 Oracle 本位目錄的地點 |
常見問題:
問:dbaascli dbHome getDetails 命令的目的是什麼?
答:dbaascli dbHome getDetails 命令可用來檢視有關系統上特定 Oracle 本位目錄的詳細資訊。
問:如何指定要取得詳細資訊的 Oracle 本位目錄?
答:您可以使用下列其中一個選項來指定 Oracle 本位目錄:
--oracleHomeName <value>-- 指定 Oracle 本位目錄的使用者定義名稱。--oracleHome <value>-- 指定 Oracle 本位目錄的完整位置 (路徑)。
問:– oracleHomeName 與 – oracleHome 有什麼不同?
A:
--oracleHomeName是 Oracle 本位目錄的使用者定義名稱。--oracleHome是指 Oracle 本位目錄所在的完整目錄路徑。
問:如何執行 dbaascli dbHome getDetails 命令?
A:若要執行命令,請使用下列語法:
dbaascli dbHome getDetails --oracleHomeName <value>
或
dbaascli dbHome getDetails --oracleHome <value>
確保以 root 使用者身分執行指令。
問:我可以在同一命令中同時指定 – oracleHomeName 和 – oracleHome 嗎?
答:否,每個指令執行只能使用一個選項。您必須指定 Oracle 本位目錄名稱或 Oracle 本位目錄位置,但不可同時指定兩者。
問:dbaascli dbHome getDetails 命令傳回什麼資訊?
A:此命令提供指定之 Oracle 本位目錄的詳細資訊,例如其版本、狀態,以及與 Oracle 本位目錄關聯的任何其他組態詳細資訊。
問:使用 dbaascli dbHome getDetails 命令搭配 Oracle 本位目錄位置有什麼範例?
A:以下是一個範例:
dbaascli dbHome getDetails --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1
此命令會擷取位於 /u01/app/oracle/product/19.0.0/dbhome_1 之 Oracle 本位目錄的詳細資訊。
問:使用 dbaascli dbHome getDetails 命令搭配 Oracle 本位目錄名稱有什麼範例?
A:以下是一個範例:
dbaascli dbHome getDetails --oracleHomeName myOracleHome
此命令會擷取 Oracle 本位目錄 myOracleHome 的詳細資訊。
問:我需要任何特殊權限才能執行此指令嗎?
答:是的,您必須以 root 使用者身分執行命令,才能檢視 Oracle 本位目錄的相關詳細資訊。
問:如果 dbaascli dbHome getDetails 命令沒有傳回任何資訊,該怎麼辦?
答:請確定您已正確指定 Oracle 本位目錄名稱或位置,且 Oracle 本位目錄已正確設定且存在於系統中。
問:我可以在多個 Oracle 本位目錄同時使用 dbaascli dbHome getDetails 命令嗎?
答:否,命令一次只適用於單一 Oracle 本位目錄。您必須為每個 Oracle 本位目錄分別執行命令。
問:是否可以在執行命令之前先驗證 Oracle 本位目錄名稱?
答:是的,您可以檢查系統的組態檔或列出系統上可用的所有 Oracle 本位目錄,以驗證 Oracle 本位目錄名稱。
問:如果未在命令中指定 Oracle 本位目錄名稱或位置,會發生什麼情況?
A:指令需要指定 --oracleHome 或 --oracleHomeName 選項。若未提供,則命令將無法執行。
問:我可以擷取目前未使用中的 Oracle 本位目錄相關資訊嗎?
答:是的,dbaascli dbHome getDetails 命令提供有關 Oracle 本位目錄的詳細資訊,無論它們是使用中還是閒置中。
問:我該如何檢查指令是否傳回錯誤?
答:請確定 Oracle 本位目錄名稱或位置有效、Oracle 本位目錄存在,以及您以 root 使用者身分執行命令。請再次檢查錯字或錯誤的路徑 。
範例:dbaascli dbHome getDetails - 使用 Oracle 本位目錄位置
dbaascli dbHome getDetails --oracleHome /u02/app/home_db19c/
範例:dbaascli dbHome getDetails - 使用 Oracle 本位目錄名稱
dbaascli dbHome getDetails --oracleHomeName home_db19c
dbaascli dbHome 修正程式
若要將 Oracle 本位目錄從某個修正程式層次修正為另一個修正程式層次,請使用 dbaascli dbHome patch 命令。
先決條件:
以 root 使用者身分執行指令。
語法:
dbaascli dbHome patch
{
--oracleHome <value>
| --oracleHomeName <value>
}
[--imageFilePath <value>] [--executePrereqs] [--nodes <value>]
{
[--resume [--sessionID <value>]]
| [--rollback [--sessionID <value>]]
}
[--skipDatapatch]
[--skipClosedPDBs]
[--skipPDBs <value>]
[--continueWithDbDowntime]
[--skipUnreachableNodes]
[--drainTimeoutInSeconds <value>]
[--waitForCompletion <value>]
[--nonRolling]
[--skipDatapatchForDB <value>]
參數:
| 參數 | 描述 |
|---|---|
--oracleHome |
指定 Oracle 首頁目錄的路徑 |
--oracleHomeName |
指定 Oracle 本位目錄名稱 |
--targetVersion |
指定 Oracle 本位目錄的目標版本為以句號區隔的五個數值區段,例如 19.12.0.0.0。 |
--resume |
繼續上一次執行 |
--sessionID |
指定繼續特定的階段作業 ID |
--continueWithDbDowntime |
以資料庫停機時間繼續修補。此選項可用於僅啟動一個作用中執行處理的環境中,即使發生停止工作的情形,也能繼續進行修正作業。 |
--skipUnreachableNodes |
在無法連線的節點上略過作業 |
--nodes |
若必須在節點的子集執行修正,則指定以逗號區隔的節點清單 |
--executePrereqs |
執行先決程式 |
--skipDatapatch |
略過對資料庫執行 datapatch |
--imageFilePath |
指定要使用之影像檔的絕對路徑 |
--skipPDBs |
略過對指定的逗號區隔 PDB 清單執行資料修正。例如:cdb1:pdb1 、cdb2:pdb2 等等。 |
--skipClosedPdbs |
略過在已關閉的 PDB 上執行 datapatch |
--rollback |
倒回已修正的 Oracle 本位目錄。 |
--waitForCompletion |
指定 false 即可在背景執行作業。有效值:true 或 false |
--drainTimeoutInSeconds |
指定停止資料庫時完成資源清空所需的時間 (秒) |
--skipUnreachableNodes |
在無法連線的節點上略過作業 |
[--nonRolling] |
平行修正所有節點上的 dbhome。請注意,這會導致資料庫停止工作。 |
[--skipDatapatchForDB <value>] |
略過在指定的逗號區隔資料庫清單中執行 datapatch。範例:db1,db2,db3,... |
常見問題:
Q:dbaascli dbHome patch 命令的用途為何?
答:dbaascli dbHome patch 命令用於將 Oracle 本位目錄從某個修正程式層次修正為另一個修正程式層次。
問:是否需要特殊權限才能執行 dbaascli dbHome patch 命令?
答:是的,您必須以 root 使用者身分執行命令。
問:如何指定修正程式的 Oracle 本位目錄路徑或名稱?
A:使用 --oracleHome 選項來指定 Oracle 本位目錄的路徑,使用 --oracleHomeName 來指定 Oracle 本位目錄的名稱。
問:如何定義修正程式的目標版本?
A:使用 --targetVersion 選項後接版本號碼,格式為 19.12.0.0.0。
問:– resume 選項有什麼作用?
答:--resume 選項可讓您繼續先前的修正階段作業。
問:繼續修正程式時,如何指定特定的階段作業 ID?
A:使用 --sessionID 選項來指定要繼續之修正階段作業的階段作業 ID。
問:什麼是 – continueWithDbDowntime 選項用於?
答:--continueWithDbDowntime 選項允許修正,即使發生資料庫停止工作,也可用於只有一個作用中執行處理的環境。
問:如何略過無法連線節點上的修正?
A:使用 --skipUnreachableNodes 選項來略過無法連線之節點上的作業。
問:如何只修正叢集中的特定節點?
A:使用 --nodes 選項,後面接著以逗號分隔的節點名稱清單,以修正節點的子集。
問:什麼是 – executePrereqs 選項?
A:--executePrereqs 選項會在套用修正程式之前先執行先決條件檢查。
問:如何略過在資料庫上執行資料修正?
A:使用 --skipDatapatch 選項,在修正期間略過資料修正處理作業。
問:我可以為資料庫影像指定自訂位置嗎?
答:是的,請使用 --imageLocation 選項指定資料庫影像的自訂位置。
問:– skipPDBs 選項有什麼作用?
答:--skipPDBs 選項可讓您略過在指定的可插拔資料庫 (PDB) 清單上執行資料修正。
問:如何略過已關閉之 PDB 的資料修正?
答:使用 --skipClosedPDBs 選項來略過已關閉之 PDB 的資料修正。
問:如果我使用 – rollback 選項會發生什麼事?
答:在套用修正程式之前,--rollback 選項會將 Oracle 本位目錄回復成先前的狀態。
問:如何指定要修正的 Oracle 本位目錄路徑?
A:使用 --oracleHome 選項,後面接著 Oracle 本位目錄的路徑。
問:如何以名稱而非路徑來修正 Oracle 本位目錄?
A:使用 --oracleHomeName 選項,後面接著 Oracle 本位目錄的名稱。
問:如果打補丁作業被中斷,該如何恢復該作業?
A:使用 --resume 選項以及 --sessionID 選項,以繼續特定的中斷階段作業。
問:如果資料庫關閉,是否可以繼續修正處理作業?
答:是,即使資料庫已關閉,也可使用 --continueWithDbDowntime 選項繼續修正。
問:如果在修正過程中無法連線某些節點,該怎麼辦?
A:使用 --skipUnreachableNodes 選項來略過無法連線的節點。
問:如何將修正程式套用至特定節點?
A:使用 --nodes 選項搭配以逗號分隔的節點名稱清單,指定您要修正的節點。
問:如何先檢查先決條件再套用修正程式?
A:在套用修正程式之前,使用 --executePrereqs 選項執行先決條件檢查。
問:如果我想避免在修正過程中套用資料修正,該怎麼辦?
A:使用 --skipDatapatch 選項來略過資料修正步驟。
問:如何為打補丁過程中使用的資料庫映像檔指定其他位置?
A:使用 --imageLocation 選項指定影像的自訂位置。
問:如果需要略過某些 PDB 的資料修正,該怎麼辦?
A:使用 --skipPDBs 選項來略過指定之以逗號分隔的 PDB 清單上的資料修正。
問:是否可以略過目前未開啟之 PDB 的資料修正?
答:是的,請使用 --skipClosedPDBs 選項來略過已關閉之 PDB 的資料修正。
問:如果打補丁中途失敗,該怎麼辦?
答:您可以使用 --rollback 選項回復成先前的狀態,或嘗試使用 --resume 選項繼續修正程序。
問:如何在套用修正程式之前檢查是否符合所有先決條件?
A:使用 --executePrereqs 選項執行 patch 命令,以確保符合所有先決條件。
問:如果打補丁作業未順利完成,而我需要重試,該怎麼辦?
A:使用 --resume 選項,從其離開的位置重試修正作業。如有需要,您可以指定 --sessionID 來繼續特定階段作業。
問:如何驗證修補程式是否已成功套用?
答:您可以在修補程式完成後,使用 opatch lsinventory 命令檢查 Oracle 本位目錄版本,以驗證修補程序。
問:我可以在模擬測試模式下執行修正命令來預覽動作嗎?
答:否,dbaascli dbHome patch 指令沒有模擬測試功能。不過,您可以在實際套用修正程式之前,使用 --executePrereqs 選項執行先決條件檢查。
問:是否可以在一次執行中套用多個修補程式?
A:dbaascli dbHome patch 命令一次只允許一個目標版本。您需要為每個修補程式版本分別執行指令。
問:如果環境使用多個 Oracle 本位目錄,該如何處理修正?
答:您可以使用 --oracleHome 或 – oracleHomeName 選項指定要修正的 Oracle 本位目錄,視您指定的是 Oracle 本位目錄的路徑或名稱而定。
問:我可以在一個命令中同時略過 PDB 和 CDB 資料修正嗎?
答:是的,您可以結合 --skipPDBs 和 --skipDatapatch 選項,在單一修正程式執行中略過 PDB 和 CDB 的資料修正。
問:如果修補程式造成問題,可以立即套用並倒回嗎?
答:是,套用修正程式之後,如果發生任何問題,您可以使用 --rollback 選項回復成先前的修正程式層次。
問:我可以同時修補多個 Oracle 本位目錄嗎?
答:否,您需要為每個 Oracle 本位目錄個別執行 dbaascli dbHome patch 命令。
問:如何追蹤修正作業的進度?
答:在修補程序期間,該指令提供顯示進度的輸出訊息。您也可以查看記錄檔以取得詳細資訊。
問:我可以在叢集化環境中平行執行修補嗎?
A:您可以使用 --nodes 選項,將修正作業套用至節點的子集。不過,同步修正應謹慎處理,且您應確保不會有重疊的階段作業。
問:如何識別哪些修正程式可供我的 Oracle 本位目錄使用?
答:您可以透過 Oracle 支援入口網站檢查可用的修正程式,或執行 opatch lsinventory 命令來查看套用至您 Oracle 本位目錄的目前修正程式。
問:在打補丁期間停止資料庫時,是否可以指定清空資源的逾時?
答:是的,您可以使用 --drainTimeoutInSeconds 選項,指定停止資料庫時清空資源的時間 (秒)。
問:如果修補程式在多節點環境中的其中一個節點上故障,會發生什麼事?
答:您可以使用 --skipUnreachableNodes 選項來略過失敗的節點,然後繼續在其餘節點上進行修正程序。然後您可以個別解決失敗的節點上的問題。
問:如何讓修正程序在背景執行?
A:使用值為 false 的 --waitForCompletion 選項,讓修正處理作業可以在背景執行。如此一來,您就不需要等待流程以互動方式完成。
問:我可以在叢集環境中的節點子集執行倒回作業嗎?
答:是的,您可以搭配使用 --nodes 選項與 --rollback 選項,在特定的一組節點上倒回修正。
問:如果在啟動修補程序後需要更新影像位置,該怎麼辦?
A:--resume 選項不允許變更影像位置。不過,您可以使用更新的 --imageLocation 來停止階段作業,並啟動新的修正程式處理作業。
問:是否有方法可以檢查哪些階段作業 ID 可繼續修正程式?
答:您可以查看日誌檔或使用 Oracle Cloud 工具來識別作用中或暫停的修正階段作業及其階段作業 ID。
問:我可以在修補期間限制停機時間嗎?
答:如果您需要限制停機時間,請謹慎使用 --continueWithDbDowntime 選項。這可讓您即使在預期停機時間,但需要規劃最少的服務影響,也能繼續進行。
範例:
範例:依 Oracle 本位目錄路徑進行基本 Oracle 本位目錄修正
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0
將位於 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 本位目錄修正為版本 19.12.0.0.0。
範例:依 Oracle 本位目錄命名修正
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0
將名稱為 DB_HOME_NAME 的 Oracle 本位目錄修正為版本 19.12.0.0.0。
範例:繼續先前的修正作業
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --resume
繼續執行位於 /u01/app/oracle/product/19.0.0/dbhome_1 之 Oracle 本位目錄的上一個修正作業。
範例:繼續具有特定階段作業 ID 的修正程式
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --resume --sessionID 12345
繼續使用階段作業 ID 12345 進行 Oracle 本位目錄 DB_HOME_NAME 的修正作業。
範例:允許以資料庫停止工作時間進行修正
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --continueWithDbDowntime
將位於 /u01/app/oracle/product/19.0.0/dbhome_1 的 Oracle 本位目錄修正為版本 19.12.0.0.0,同時允許資料庫停止工作。
範例:略過無法連線的節點
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipUnreachableNodes
略過任何無法連線的節點時,將 Oracle 本位目錄修正為版本 19.12.0.0.0。
範例:修正節點的子集
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --nodes node1,node2
僅在 node1 和 node2 上將 Oracle 本位目錄修正為版本 19.12.0.0.0。
範例:在修正之前執行先決條件檢查
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --executePrereqs
執行先決條件檢查之後,將 Oracle 本位目錄 DB_HOME_NAME 修正為版本 19.12.0.0.0。
範例:略過資料修正步驟
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipDatapatch
將 Oracle 本位目錄修正為版本 19.12.0.0.0,但未在資料庫上執行資料修正。
範例:使用映像檔進行修正
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --imageFilePath /path/to/image/file.zip
使用位於 /path/to/image/file.zip 的映像檔,將 Oracle 本位目錄修正為版本 19.12.0.0.0。
範例:在資料修正期間略過特定 PDB
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipPDBs cdb1:pdb1,cdb2:pdb2
將 Oracle 本位目錄修正為版本 19.12.0.0.0,並略過在指定的 PDB 上執行資料修正 (cdb1 中的 pdb1 和 cdb2 中的 pdb2)。
範例:略過已關閉之 PDB 的 Datapatch
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipClosedPDBs
略過在任何已關閉的 PDB 上執行資料修正時,將 Oracle 本位目錄修正為版本 19.12.0.0.0。
範例:倒回 Oracle 本位目錄
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --rollback
倒回 Oracle 本位目錄上最後套用的修正程式 (名稱為 DB_HOME_NAME)。
範例:修正與先決條件檢查及特定節點的組合
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --executePrereqs --nodes node1,node2
將 Oracle 本位目錄修正為版本 19.12.0.0.0、執行先決條件檢查,並且只在 node1 和 node2 上套用修正程式。
範例:略過無法連線的節點和特定 PDB
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --skipUnreachableNodes --skipPDBs cdb1:pdb1
將 Oracle 本位目錄 DB_HOME_NAME 修正為版本 19.12.0.0.0,同時略過無法連線的節點並避免在 cdb1 內的 pdb1 上執行資料修正。
範例:檢查 Oracle 本位目錄版本修正後
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0
opatch lsinventory
此範例顯示如何執行 opatch lsinventory,在順利完成修正程式之後檢查 Oracle 本位目錄版本。
範例:使用特定階段作業 ID 倒回修正
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --rollback --sessionID 67890
倒回 67890 階段作業 ID 的 Oracle 本位目錄修正。
範例:使用略過先決條件檢查進行修正
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipPrereqs
修正 Oracle 本位目錄,但在套用修正程式之前略過先決條件檢查。
範例:將修正程式套用至自訂 Oracle 本位目錄映像檔
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --imageLocation /custom/location/image.zip
使用位於 /custom/location/image.zip 的自訂映像檔來修正 Oracle 本位目錄。
範例:略過特定節點並執行先決條件
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipUnreachableNodes --executePrereqs
略過修正無法連線的節點,並在套用修正程式之前先執行先決條件檢查。
範例:略過多個 CDB 中所有 PDB 的資料修正
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipPDBs cdb1:pdb1,cdb2:pdb2,cdb3:pdb3
修正 Oracle 本位目錄,但略過多個 CDB 中指定 PDB 的資料修正。
範例:繼續修正多個節點的停止工作時間
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.12.0.0.0 --continueWithDbDowntime --nodes node3,node4
繼續在 node3 和 node4 上進行修正,並允許資料庫停止工作。
範例:略過 PDB 和已關閉 PDB 的 Datapatch
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0 --skipDatapatch --skipClosedPDBs
略過資料修正和關閉的 PDB 時,修正 Oracle 本位目錄。
範例:倒回並重新套用修正程式
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --rollback
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.12.0.0.0
倒回目前的修正程式,然後將修正程式重新套用至 Oracle 本位目錄。
範例:略過特定節點的 Datapatch 和允許停止工作時間
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.13.0.0.0 --skipDatapatch --continueWithDbDowntime --nodes node1
在 node1 上將 Oracle 本位目錄修正為版本 19.13.0.0.0,略過資料修正步驟並允許停止工作。
範例:在資料庫關閉期間指定清空逾時
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --targetVersion 19.13.0.0.0 --drainTimeoutInSeconds 300
將 Oracle 本位目錄 DB_HOME_NAME 修正為版本 19.13.0.0.0,並允許 5 分鐘的逾時 (300 秒) 在關機時清空資源。
範例:在背景執行修正
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.13.0.0.0 --waitForCompletion false
將 Oracle 本位目錄修正為版本 19.13.0.0.0,並在背景執行修正處理作業,不需要等待完成。
範例:倒回節點子集上的修正程式
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --rollback --nodes node1,node2
僅倒回指定 Oracle 本位目錄之 node1 和 node2 上最後套用的修正程式。
範例:略過先決條件並修正多個節點
dbaascli dbHome patch --oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 --targetVersion 19.13.0.0.0 --skipPrereqs --nodes node3,node4
在 node3 和 node4 上將 Oracle 本位目錄修正為版本 19.13.0.0.0,而不執行先決條件檢查。
範例:倒回修正程式並略過無法連線的節點
dbaascli dbHome patch --oracleHomeName DB_HOME_NAME --rollback --skipUnreachableNodes
倒回 Oracle 本位目錄 DB_HOME_NAME 上的最後一個修正程式,然後在倒回處理作業期間略過無法連線的節點。