實驗環境-我是從19.0.0.0直接打到19.23.0.0.0,適合剛部署好的集群打補丁直接到最新版本。
查看當前環境
查詢集群中運行的 Oracle Clusterware 軟件的?activex?版
查詢本地節點上二進制文件中存儲的 Oracle Clusterware 軟件的版本

查詢本地服務器上 OHAS 和 Oracle Clusterware 的狀態

查看oracle補丁信息以及版本

查看grid補丁信息以及版本

查看Opatch版本

查看數據庫版本

校驗數據庫清單并保存結果集
grid用戶:

Oracle用戶:

升級OPatch,兩個節點都要升級,首先需要備份原來的OPatch
升級oracle的OPatch,在兩個節點
一節點:

二節點:


至此Oracle用戶的OPatch升級完畢。
升級grid用戶OPatch,在兩個節點
一節點:


二節點:


至此grid用戶OPatch升級完畢
驗證Oracle Inventory的有效性,分別用grid,oracle用戶驗證
grid用戶:

Oracle用戶:

至此 Oracle Inventory 有效性驗證完畢
解壓授權 19.23.0.0.0 GI RU包,我把這個放在家目錄了,這個需要特別注意,我之前把GI的RU包用root用戶解壓之后再給grid用戶權限這樣不行,很奇怪只有在家目錄才能解壓,給了權限也不行,oracle用戶又訪問不了grid家目錄,沒辦法,我把GI用oracle和grid在家目錄分別解壓了一遍,其實也不影響這些都是打補丁前的檢查工作。
否則會報這個錯誤:

使用grid用戶編寫一個文件

檢查Patch是否沖突,grid和oracle用戶都要檢查
Grid用戶檢查,

Oracle用戶檢查:

可以看到沒有沖突,至此沖突檢查完畢。
執行opatchauto 工具應用RU
對GI HOME 進行patch:
- 升級過程會自動關閉和啟動集群。 (2) 先升級節點1 grid,再升級節點2 grid。
一節點:

二節點:


開始升級 DB RU (RELEASE UPDATE) 補丁
由于 GI RU 包含 DB RU,所以 RAC 環境升級 DB 時,還將使用此 Patch 即可。 說明: (兩個節點都要執行) (1) 升級過程會自動關閉和啟動集群。 (2) 先升級節點1 database,再升級節點2 database。
其實打完GI理論上就不用打DB了,但是很多打補丁都是GI和DB都打,我打DB也成功了,所以就都打了。
兩節點都需要升級


更新數字字典
/u01/app/oracle/product/19.3.0/dbhome_1/OPatch/datapatch -verbose
處理無效對象
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
@utlrp.sql