2024. 4. 4. 13:38 오라클
19c RU 작업후 Patch level 다르게 보이는 증상
증상 : 19.20 -> 19.22 RU 패치 작업한 후 각각 노드의 패치정보가 다르게 인식됨.
보통의 경우 아래와 같은 방법으로 해결이 됨. (Doc ID 1639285.1)
/u01/app/19.0.0/grid/crs/install/rootcrs.sh -unlock
/u01/app/19.0.0/grid/bin/clscfg -localpatch (Corrects patch level at OLR)
/u01/app/19.0.0/grid/bin/clscfg -patch (corrects patch level at OCR)
/u01/app/19.0.0/grid/crs/install/rootcrs.sh -lock
- But 해당 경우는 위의 작업을 해도 소용이 없었음.
[root@gtexadb01 /root]# kfod op=patches
---------------
List of Patches
===============
33575402
35943157
35956421
35967489
36115038
[root@gtexadb02 /root]# kfod op=patches
---------------
List of Patches
===============
33575402
35332537 <--- 19.20 패치정보가 남아있음?
35571653 <--- 19.20 패치정보가 남아있음?
35943157
35956421
35967489
36115038
- rollback 시도 실패
[gtexa2]oracle@gtexadb02:/home/oracle$ opatch nrollback -id 35332537,35571653 -oh /u01/app/oracle/product/19.0.0/dbhome_1
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/19.0.0/dbhome_1
Central Inventory : /u01/app/oraInventory
from : /u01/app/oracle/product/19.0.0/dbhome_1/oraInst.loc
OPatch version : 12.2.0.1.41
OUI version : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.0.0/dbhome_1/cfgtoollogs/opatch/opatch2024-04-03_12-52-28PM_1.log
Following patches are not present in the Oracle Home.
35332537,35571653
UtilSession failed: Prereq. API succeeds but no patch is available for rollback.
Log file location: /u01/app/oracle/product/19.0.0/dbhome_1/cfgtoollogs/opatch/opatch2024-04-03_12-52-28PM_1.log
OPatch failed with error code 73
- OCR 정보 수정 실패
[root@gtexadb02 /root]# $GI_HOME/bin/clscfg -patch
clscfg: -patch mode specified
clscfg: EXISTING configuration version 19 detected.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
[root@gtexadb01 /root]# crsctl stop rollingpatch
CRS-1171: Rejecting rolling patch mode change because the patch level is not consistent across all nodes in the cluster. The patch level on nodes gtexadb02 is not the same as the patch level [3844574830] found on nodes gtexadb01.
CRS-4000: Command Stop failed, or completed with errors.
- 아직 조회시 노드별 다른 정보 조회되는 상태
[root@gtexadb01 /u01/app/19.0.0/grid/crs/install]# crsctl query crs activeversion -f
Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [ROLLING PATCH]. The cluster active patch level is [4059512333].
[root@gtexadb01 /u01/app/19.0.0/grid/crs/install]# crsctl query crs releasepatch
Oracle Clusterware release patch level is [3844574830] and the complete list of patches [33575402 35943157 35956421 35967489 36115038 ] have been applied on the local node. The release patch string is [19.22.0.0.0].
[root@gtexadb02 /root]# crsctl query crs activeversion -f
Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [ROLLING PATCH]. The cluster active patch level is [4059512333].
[root@gtexadb02 /root]# crsctl query crs releasepatch
Oracle Clusterware release patch level is [2795171529] and the complete list of patches [33575402 35332537 35571653 35943157 35956421 35967489 36115038 ] have been applied on the local node. The release patch string is [19.22.0.0.0].
- Solution
$GI_HOME/crs/install/rootcrs.sh -prepatch
(grid)
19.20 패치 제거하는 경우 <--- library 화일에서 해당 patch list 를 삭제함.
$GI_HOME/bin/patchgen commit -rb 35332537
$GI_HOME/bin/patchgen commit -rb 35571653
추가하는 경우는
$GI_HOME/bin/patchgen commit -pi 35332537
$GI_HOME/bin/patchgen commit -pi 35571653
- 각 노드 패치 리스트 비교 확인
$GI_HOME/bin/kfod op=patches
$GI_HOME/bin/kfod op=patchlvl
- 이제 정상적으로 조회됨.
[root@gtexadb01 /root]# $GI_HOME/bin/kfod op=patches
---------------
List of Patches
===============
33575402
35943157
35956421
35967489
36115038
[root@gtexadb01 /root]# $GI_HOME/bin/kfod op=patchlvl
-------------------
Current Patch level
===================
3844574830
[root@gtexadb02 /root]# $GI_HOME/bin/kfod op=patches
---------------
List of Patches
===============
33575402
35943157
35956421
35967489
36115038
[root@gtexadb02 /root]# $GI_HOME/bin/kfod op=patchlvl
-------------------
Current Patch level
===================
3844574830
(root)
$GI_HOME/crs/install/rootcrs.sh -postpatch
- 정상 기동된 후 양 노드 정보확인
crsctl query crs softwarepatch
Oracle Clusterware patch level on node gtexadb01 is [3844574830].
[root@gtexadb01 /root]# crsctl query crs activeversion -f
Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [3844574830].
sys@gtexa1> select sys_context('SYS_CLUSTER_PROPERTIES', 'CLUSTER_STATE') from dual;
SYS_CONTEXT('SYS_CLUSTER_PROPERTIES','CLUSTER_STATE')
------------------------------------------------------------------------------------------------------------------------
Normal
Elapsed: 00:00:00.00
sys@gtexa1> select sys_context('SYS_CLUSTER_PROPERTIES', 'CURRENT_PATCHLVL') from dual;
SYS_CONTEXT('SYS_CLUSTER_PROPERTIES','CURRENT_PATCHLVL')
------------------------------------------------------------------------------------------------------------------------
320077824
* 또한 Patch level 관련 이상있을시 Cell 노드를 리부팅하는 경우 ACTIVATE 시 OFFLINE -> ONLINE 이 자동으로 되지 않음
패치문제 조치 후 바로 정상 OFFLINE -> ONLINE 변경됨
- 조치 전
[root@gtexacel01 ~]# cellcli -e list griddisk attributes name,status,asmmodestatus,asmdeactivationoutcome
DATAC1_CD_00_gtexacel01 active OFFLINE Yes
DATAC1_CD_01_gtexacel01 active OFFLINE Yes
DATAC1_CD_02_gtexacel01 active OFFLINE Yes
DATAC1_CD_03_gtexacel01 active OFFLINE Yes
DATAC1_CD_04_gtexacel01 active OFFLINE Yes
DATAC1_CD_05_gtexacel01 active OFFLINE Yes
DBFSC1_CD_02_gtexacel01 active OFFLINE Yes
DBFSC1_CD_03_gtexacel01 active OFFLINE Yes
DBFSC1_CD_04_gtexacel01 active OFFLINE Yes
DBFSC1_CD_05_gtexacel01 active OFFLINE Yes
RECOC1_CD_00_gtexacel01 active OFFLINE Yes
RECOC1_CD_01_gtexacel01 active OFFLINE Yes
RECOC1_CD_02_gtexacel01 active OFFLINE Yes
RECOC1_CD_03_gtexacel01 active OFFLINE Yes
RECOC1_CD_04_gtexacel01 active OFFLINE Yes
RECOC1_CD_05_gtexacel01 active OFFLINE Yes
- 조치 후
[root@gtexacel01 ~]# cellcli -e list griddisk attributes name,status,asmmodestatus,asmdeactivationoutcome
DATAC1_CD_00_gtexacel01 active ONLINE Yes
DATAC1_CD_01_gtexacel01 active ONLINE Yes
DATAC1_CD_02_gtexacel01 active ONLINE Yes
DATAC1_CD_03_gtexacel01 active ONLINE Yes
DATAC1_CD_04_gtexacel01 active ONLINE Yes
DATAC1_CD_05_gtexacel01 active ONLINE Yes
DBFSC1_CD_02_gtexacel01 active ONLINE Yes
DBFSC1_CD_03_gtexacel01 active ONLINE Yes
DBFSC1_CD_04_gtexacel01 active ONLINE Yes
DBFSC1_CD_05_gtexacel01 active ONLINE Yes
RECOC1_CD_00_gtexacel01 active ONLINE Yes
RECOC1_CD_01_gtexacel01 active ONLINE Yes
RECOC1_CD_02_gtexacel01 active ONLINE Yes
RECOC1_CD_03_gtexacel01 active ONLINE Yes
RECOC1_CD_04_gtexacel01 active ONLINE Yes
RECOC1_CD_05_gtexacel01 active ONLINE Yes
- 이상 있을 시 리부팅 되지 않은 타 노드에서 상태 조회했을 시 내용
[root@gtexacel02 ~]# cellcli -e list griddisk attributes name,status,asmmodestatus,asmdeactivationoutcome
DATAC1_CD_00_gtexacel02 active ONLINE "Cannot deactivate because partner disk DATAC1_CD_02_GTEXACEL01 is not online"
DATAC1_CD_01_gtexacel02 active ONLINE "Cannot deactivate because partner disk DATAC1_CD_00_GTEXACEL01 is not online"
DATAC1_CD_02_gtexacel02 active ONLINE "Cannot deactivate because partner disk DATAC1_CD_03_GTEXACEL01 is not online"
DATAC1_CD_03_gtexacel02 active ONLINE "Cannot deactivate because partner disk DATAC1_CD_00_GTEXACEL01 is not online"
DATAC1_CD_04_gtexacel02 active ONLINE "Cannot deactivate because partner disk DATAC1_CD_01_GTEXACEL01 is not online"
DATAC1_CD_05_gtexacel02 active ONLINE "Cannot deactivate because partner disk DATAC1_CD_04_GTEXACEL01 is not online"
DBFSC1_CD_02_gtexacel02 active ONLINE "Cannot deactivate because partner disk DBFSC1_CD_04_GTEXACEL01 is not online"
DBFSC1_CD_03_gtexacel02 active ONLINE "Cannot deactivate because partner disk DBFSC1_CD_05_GTEXACEL01 is not online"
DBFSC1_CD_04_gtexacel02 active ONLINE "Cannot deactivate because partner disk DBFSC1_CD_04_GTEXACEL01 is not online"
DBFSC1_CD_05_gtexacel02 active ONLINE "Cannot deactivate because partner disk DBFSC1_CD_05_GTEXACEL01 is not online"
RECOC1_CD_00_gtexacel02 active ONLINE "Cannot deactivate because partner disk RECOC1_CD_04_GTEXACEL01 is not online"
RECOC1_CD_01_gtexacel02 active ONLINE "Cannot deactivate because partner disk RECOC1_CD_02_GTEXACEL01 is not online"
RECOC1_CD_02_gtexacel02 active ONLINE "Cannot deactivate because partner disk RECOC1_CD_05_GTEXACEL01 is not online"
RECOC1_CD_03_gtexacel02 active ONLINE "Cannot deactivate because partner disk RECOC1_CD_05_GTEXACEL01 is not online"
RECOC1_CD_04_gtexacel02 active ONLINE "Cannot deactivate because partner disk RECOC1_CD_02_GTEXACEL01 is not online"
RECOC1_CD_05_gtexacel02 active ONLINE "Cannot deactivate because partner disk RECOC1_CD_03_GTEXACEL01 is not online"
-참고 문서
CRS-6706: Oracle Clusterware Release patch level ('nnn') does not match Software patch level ('mmm') (Doc ID 1639285.1)
[OCI] Scale-up Failed in DBCS With ORA-15032: not all alterations performed, ORA-15137: The ASM cluster is in rolling patch state (Doc ID 2681040.1)
Software Patch Mismatch After Applying Bundle Patch or PSU on Grid Home and the Cluster Upgrade State is [ROLLING PATCH] (Doc ID 2176790.1)
SEHA Patching on Windows: CRS startup encounters - Patch Levels don't match. Local Patch Level [XXXXXXXXXXX] != Cache Writer Patch Level [XXXXXXXXXXX] (Doc ID 2923424.1)