1. 작업 대상 확인
A) 클러스터 상태 확인
crsctl stat res -t
[root@rac1 ~]# crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 ONLINE OFFLINE STABLE ora.CRS.dg(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.DATA.dg(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.FRA.dg(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac2 STABLE ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE rac1 STABLE ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE rac1 STABLE ora.asm(ora.asmgroup) 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.asmnet1.asmnetwork(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.qosmserver 1 ONLINE ONLINE rac1 STABLE ora.rac1.vip 1 ONLINE ONLINE rac1 STABLE ora.rac2.vip 1 ONLINE ONLINE rac2 STABLE ora.racdb.db 1 ONLINE ONLINE rac1 Open,HOME=/u01/app/o racle/product/19c/db _1,STABLE 2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o racle/product/19c/db _1,STABLE ora.scan1.vip 1 ONLINE ONLINE rac2 STABLE ora.scan2.vip 1 ONLINE ONLINE rac1 STABLE ora.scan3.vip 1 ONLINE ONLINE rac1 STABLE --------------------------------------------------------------------------------
B) 데이터베이스 상태 확인
select NAME, OPEN_MODE from V$PDBS; select PATCH_ID, ACTION, STATUS, ACTION_TIME, SOURCE_VERSION, TARGET_VERSION from DBA_REGISTRY_SQLPATCH;
[racdb1:/home/oracle]> sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 26 10:13:16 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> set lines 100 SQL> col NAME form a10 SQL> select NAME, OPEN_MODE from V$PDBS; NAME OPEN_MODE ---------- ---------- PDB$SEED READ ONLY PDB READ WRITE SQL> col STATUS form a10 SQL> col ACTION_TIME form a25 SQL> select PATCH_ID, ACTION, STATUS, ACTION_TIME, SOURCE_VERSION, TARGET_VERSION from DBA_REGISTRY_SQLPATCH; PATCH_ID ACTION STATUS ACTION_TIME SOURCE_VERSION TARGET_VERSION ---------- --------------- ---------- ------------------------- --------------- --------------- 29517242 APPLY SUCCESS 19/08/24 14:38:46.385562 19.1.0.0.0 19.3.0.0.0 SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0
2. Release Update 적용
A) RU 패치
$GI_HOME/OPatch/opatchauto apply /media/sf_oracle/19.4/29708769
1번 노드
[root@rac1 ~]# $GI_HOME/OPatch/opatchauto apply /media/sf_oracle/19.4/29708769 OPatchauto session is initiated at Mon Aug 26 10:22:18 2019 System initialization log file is /u01/app/19c/grid/cfgtoollogs/opatchautodb/systemconfig2019-08-26_10-23-18AM.log. 세션 로그 파일은 /u01/app/19c/grid/cfgtoollogs/opatchauto/opatchauto2019-08-26_10-25-48AM.log입니다. 이 세션의 ID는 XZZZ입니다. Executing OPatch prereq operations to verify patch applicability on home /u01/app/19c/grid Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/19c/db_1 Patch applicability verified successfully on home /u01/app/oracle/product/19c/db_1 Patch applicability verified successfully on home /u01/app/19c/grid Verifying SQL patch applicability on home /u01/app/oracle/product/19c/db_1 SQL patch applicability verified successfully on home /u01/app/oracle/product/19c/db_1 Preparing to bring down database service on home /u01/app/oracle/product/19c/db_1 Successfully prepared home /u01/app/oracle/product/19c/db_1 to bring down database service Bringing down CRS service on home /u01/app/19c/grid CRS service brought down successfully on home /u01/app/19c/grid Performing prepatch operation on home /u01/app/oracle/product/19c/db_1 Perpatch operation completed successfully on home /u01/app/oracle/product/19c/db_1 Start applying binary patch on home /u01/app/oracle/product/19c/db_1 Binary patch applied successfully on home /u01/app/oracle/product/19c/db_1 Performing postpatch operation on home /u01/app/oracle/product/19c/db_1 Postpatch operation completed successfully on home /u01/app/oracle/product/19c/db_1 Start applying binary patch on home /u01/app/19c/grid Binary patch applied successfully on home /u01/app/19c/grid Starting CRS service on home /u01/app/19c/grid CRS service started successfully on home /u01/app/19c/grid Preparing home /u01/app/oracle/product/19c/db_1 after database service restarted No step execution required......... Trying to apply SQL patch on home /u01/app/oracle/product/19c/db_1 SQL patch applied successfully on home /u01/app/oracle/product/19c/db_1 OPatchAuto를 성공했습니다. --------------------------------Summary-------------------------------- Patching is completed successfully. Please find the summary as follows: Host:rac1 RAC Home:/u01/app/oracle/product/19c/db_1 Version:19.0.0.0.0 Summary: ==Following patches were SKIPPED: Patch: /media/sf_oracle/19.4/29708769/29851014 Reason: This patch is not applicable to this specified target type - "rac_database" Patch: /media/sf_oracle/19.4/29708769/29401763 Reason: This patch is not applicable to this specified target type - "rac_database" ==Following patches were SUCCESSFULLY applied: Patch: /media/sf_oracle/19.4/29708769/29834717 Log: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_10-35-49오전_1.log Patch: /media/sf_oracle/19.4/29708769/29850993 Log: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_10-35-49오전_1.log Host:rac1 CRS Home:/u01/app/19c/grid Version:19.0.0.0.0 Summary: ==Following patches were SKIPPED: Patch: /media/sf_oracle/19.4/29708769/29401763 Reason: This patch is already been applied, so not going to apply again. ==Following patches were SUCCESSFULLY applied: Patch: /media/sf_oracle/19.4/29708769/29834717 Log: /u01/app/19c/grid/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_10-41-21오전_1.log Patch: /media/sf_oracle/19.4/29708769/29850993 Log: /u01/app/19c/grid/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_10-41-21오전_1.log Patch: /media/sf_oracle/19.4/29708769/29851014 Log: /u01/app/19c/grid/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_10-41-21오전_1.log OPatchauto session completed at Mon Aug 26 10:54:15 2019 Time taken to complete the session 32 minutes, 1 second
2번 노드
[root@rac2 ~]# $GI_HOME/OPatch/opatchauto apply /media/sf_oracle/19.4/29708769 OPatchauto session is initiated at Mon Aug 26 11:00:38 2019 System initialization log file is /u01/app/19c/grid/cfgtoollogs/opatchautodb/systemconfig2019-08-26_11-00-49AM.log. 세션 로그 파일은 /u01/app/19c/grid/cfgtoollogs/opatchauto/opatchauto2019-08-26_11-01-56AM.log입니다. 이 세션의 ID는 N8PU입니다. Executing OPatch prereq operations to verify patch applicability on home /u01/app/19c/grid Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/19c/db_1 Patch applicability verified successfully on home /u01/app/oracle/product/19c/db_1 Patch applicability verified successfully on home /u01/app/19c/grid Verifying SQL patch applicability on home /u01/app/oracle/product/19c/db_1 SQL patch applicability verified successfully on home /u01/app/oracle/product/19c/db_1 Preparing to bring down database service on home /u01/app/oracle/product/19c/db_1 Successfully prepared home /u01/app/oracle/product/19c/db_1 to bring down database service Bringing down CRS service on home /u01/app/19c/grid CRS service brought down successfully on home /u01/app/19c/grid Performing prepatch operation on home /u01/app/oracle/product/19c/db_1 Perpatch operation completed successfully on home /u01/app/oracle/product/19c/db_1 Start applying binary patch on home /u01/app/oracle/product/19c/db_1 Binary patch applied successfully on home /u01/app/oracle/product/19c/db_1 Performing postpatch operation on home /u01/app/oracle/product/19c/db_1 Postpatch operation completed successfully on home /u01/app/oracle/product/19c/db_1 Start applying binary patch on home /u01/app/19c/grid Binary patch applied successfully on home /u01/app/19c/grid Starting CRS service on home /u01/app/19c/grid CRS service started successfully on home /u01/app/19c/grid Preparing home /u01/app/oracle/product/19c/db_1 after database service restarted No step execution required......... Trying to apply SQL patch on home /u01/app/oracle/product/19c/db_1 SQL patch applied successfully on home /u01/app/oracle/product/19c/db_1 OPatchAuto를 성공했습니다. --------------------------------Summary-------------------------------- Patching is completed successfully. Please find the summary as follows: Host:rac2 RAC Home:/u01/app/oracle/product/19c/db_1 Version:19.0.0.0.0 Summary: ==Following patches were SKIPPED: Patch: /media/sf_oracle/19.4/29708769/29851014 Reason: This patch is not applicable to this specified target type - "rac_database" Patch: /media/sf_oracle/19.4/29708769/29401763 Reason: This patch is not applicable to this specified target type - "rac_database" ==Following patches were SUCCESSFULLY applied: Patch: /media/sf_oracle/19.4/29708769/29834717 Log: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_11-09-14오전_1.log Patch: /media/sf_oracle/19.4/29708769/29850993 Log: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_11-09-14오전_1.log Host:rac2 CRS Home:/u01/app/19c/grid Version:19.0.0.0.0 Summary: ==Following patches were SKIPPED: Patch: /media/sf_oracle/19.4/29708769/29401763 Reason: This patch is already been applied, so not going to apply again. ==Following patches were SUCCESSFULLY applied: Patch: /media/sf_oracle/19.4/29708769/29834717 Log: /u01/app/19c/grid/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_11-14-29오전_1.log Patch: /media/sf_oracle/19.4/29708769/29850993 Log: /u01/app/19c/grid/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_11-14-29오전_1.log Patch: /media/sf_oracle/19.4/29708769/29851014 Log: /u01/app/19c/grid/cfgtoollogs/opatchauto/core/opatch/opatch2019-08-26_11-14-29오전_1.log OPatchauto session completed at Mon Aug 26 11:42:48 2019 Time taken to complete the session 42 minutes, 10 seconds
3. Release Update Datapatch 적용
A) CDB와 PDB Datapatch 적용 여부 확인
select NAME, OPEN_MODE from V$PDBS; select PATCH_ID, ACTION, STATUS, ACTION_TIME, SOURCE_VERSION, TARGET_VERSION from DBA_REGISTRY_SQLPATCH; select TIME, NAME, CAUSE, STATUS, MESSAGE from PDB_PLUG_IN_VIOLATIONS;
[racdb1:/home/oracle]> sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 26 13:42:42 2019 Version 19.4.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0 SQL> set lines 100 SQL> col NAME form a10 SQL> select NAME, OPEN_MODE from V$PDBS; NAME OPEN_MODE ---------- ---------- PDB$SEED READ ONLY PDB READ WRITE SQL> col STATUS form a10 SQL> col ACTION_TIME form a25 SQL> select PATCH_ID, ACTION, STATUS, ACTION_TIME, SOURCE_VERSION, TARGET_VERSION from DBA_REGISTRY_SQLPATCH; PATCH_ID ACTION STATUS ACTION_TIME SOURCE_VERSION TARGET_VERSION ---------- --------------- ---------- ------------------------- --------------- --------------- 29517242 APPLY SUCCESS 19/08/24 14:38:46.385562 19.1.0.0.0 19.3.0.0.0 29834717 APPLY SUCCESS 19/08/26 11:42:17.845203 19.3.0.0.0 19.4.0.0.0 SQL> col TIME form a25 SQL> col NAME form a10 SQL> col CAUSE form a10 SQL> col MESSAGE form a150 SQL> select TIME, NAME, CAUSE, STATUS, MESSAGE from PDB_PLUG_IN_VIOLATIONS; TIME NAME CAUSE STATUS MESSAGE ------------------------- ---------- ---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------------------ 19/08/24 15:01:56.279107 PDB$SEED SQL Patch RESOLVED '19.3.0.0.0 Release_Update 1904101227' is installed in the CDB but no release updates are installed in the PDB 19/08/26 13:29:21.177332 PDB SQL Patch PENDING '19.4.0.0.0 Release_Update 1906261711' is installed in the CDB but '19.3.0.0.0 Release_Update 1904101227' is installed in the PDB SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0
B) Datapatch 적용
datapatch -verbose
[racdb1:/home/oracle]> datapatch -verbose SQL Patching tool version 19.4.0.0.0 Production on Mon Aug 26 13:29:41 2019 Copyright (c) 2012, 2019, Oracle. All rights reserved. Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_17954_2019_08_26_13_29_41/sqlpatch_invocation.log Connecting to database...OK Gathering database info...done Note: Datapatch will only apply or rollback SQL fixes for PDBs that are in an open state, no patches will be applied to closed PDBs. Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation (Doc ID 1585822.1) Bootstrapping registry and package to current versions...done Determining current state...done Current state of interim SQL patches: No interim patches found Current state of release update SQL patches: Binary registry: 19.4.0.0.0 Release_Update 190626171128: Installed PDB CDB$ROOT: Applied 19.4.0.0.0 Release_Update 190626171128 successfully on 19/08/26 11:42:17.845203 PDB PDB: Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 19/08/24 14:55:33.831127 PDB PDB$SEED: Applied 19.4.0.0.0 Release_Update 190626171128 successfully on 19/08/26 11:42:30.723819 Adding patches to installation queue and performing prereq checks...done Installation queue: For the following PDBs: CDB$ROOT PDB$SEED No interim patches need to be rolled back No release update patches need to be installed No interim patches need to be applied For the following PDBs: PDB No interim patches need to be rolled back Patch 29834717 (Database Release Update : 19.4.0.0.190716 (29834717)): Apply from 19.3.0.0.0 Release_Update 190410122720 to 19.4.0.0.0 Release_Update 190626171128 No interim patches need to be applied Installing patches... Patch installation complete. Total patches installed: 1 Validating logfiles...done Patch 29834717 apply (pdb PDB): SUCCESS logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/29834717/23016168/29834717_apply_RACDB_PDB_2019Aug26_13_31_09.log (no errors) SQL Patching tool complete on Mon Aug 26 13:43:58 2019
C) PDB 재기동 및 Datapatch 결과 확인
alter pluggable database PDB close immediate; alter pluggable database PDB open; select TIME, NAME, CAUSE, STATUS, MESSAGE from PDB_PLUG_IN_VIOLATIONS;
[racdb1:/home/oracle]> sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 26 13:58:42 2019 Version 19.4.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0 SQL> alter pluggable database PDB close; Pluggable database altered. SQL> alter pluggable database PDB open; Pluggable database altered. SQL> set lines 250 SQL> col TIME form a25 SQL> col NAME form a10 SQL> col CAUSE form a10 SQL> col MESSAGE form a150 SQL> select TIME, NAME, CAUSE, STATUS, MESSAGE from PDB_PLUG_IN_VIOLATIONS; TIME NAME CAUSE STATUS MESSAGE ------------------------- ---------- ---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------------------ 19/08/24 15:01:56.279107 PDB$SEED SQL Patch RESOLVED '19.3.0.0.0 Release_Update 1904101227' is installed in the CDB but no release updates are installed in the PDB 19/08/26 13:56:15.520959 PDB SQL Patch RESOLVED '19.4.0.0.0 Release_Update 1906261711' is installed in the CDB but '19.3.0.0.0 Release_Update 1904101227' is installed in the PDB SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0
4. RU 패치 결과 확인
A) Grid 패치 결과 확인
$GI_HOME/OPatch/opatch lspatches -oh $GI_HOME
1번 노드
[racdb1:/home/oracle]> $GI_HOME/OPatch/opatch lspatches -oh $GI_HOME 29851014;ACFS RELEASE UPDATE 19.4.0.0.0 (29851014) 29850993;OCW RELEASE UPDATE 19.4.0.0.0 (29850993) 29834717;Database Release Update : 19.4.0.0.190716 (29834717) 29401763;TOMCAT RELEASE UPDATE 19.0.0.0.0 (29401763) OPatch succeeded.
2번 노드
[racdb2:/home/oracle]> $GI_HOME/OPatch/opatch lspatches -oh $GI_HOME 29851014;ACFS RELEASE UPDATE 19.4.0.0.0 (29851014) 29850993;OCW RELEASE UPDATE 19.4.0.0.0 (29850993) 29834717;Database Release Update : 19.4.0.0.190716 (29834717) 29401763;TOMCAT RELEASE UPDATE 19.0.0.0.0 (29401763) OPatch succeeded.
B) Database 패치 결과 확인
$DB_HOME/OPatch/opatch lspatches -oh $DB_HOME
1번 노드
[racdb1:/home/oracle]> $DB_HOME/OPatch/opatch lspatches -oh $DB_HOME 29850993;OCW RELEASE UPDATE 19.4.0.0.0 (29850993) 29834717;Database Release Update : 19.4.0.0.190716 (29834717) OPatch succeeded.
2번 노드
[racdb2:/home/oracle]> $DB_HOME/OPatch/opatch lspatches -oh $DB_HOME 29850993;OCW RELEASE UPDATE 19.4.0.0.0 (29850993) 29834717;Database Release Update : 19.4.0.0.190716 (29834717) OPatch succeeded.
5. OJVM 패치 (옵션)
A) OJVM 패치 준비
DB_HOME 서비스 정지
srvctl stop home -oraclehome $DB_HOME -statefile /tmp/state.out -node <노드명> -stopoption IMMEDIATE
1번 노드
[root@rac1 ~]# srvctl stop home -oraclehome $DB_HOME -statefile /tmp/state.out -node rac1 -stopoption IMMEDIATE
2번 노드
[root@rac2 ~]# srvctl stop home -oraclehome $DB_HOME -statefile /tmp/state.out -node rac2 -stopoption IMMEDIATE
결과 확인
[root@rac2 ~]# crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 ONLINE OFFLINE STABLE ora.CRS.dg(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.DATA.dg(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.FRA.dg(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac1 STABLE ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE rac2 STABLE ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE rac2 STABLE ora.asm(ora.asmgroup) 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.asmnet1.asmnetwork(ora.asmgroup) 1 ONLINE ONLINE rac1 STABLE 2 ONLINE ONLINE rac2 STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac2 STABLE ora.qosmserver 1 ONLINE ONLINE rac2 STABLE ora.rac1.vip 1 ONLINE ONLINE rac1 STABLE ora.rac2.vip 1 ONLINE ONLINE rac2 STABLE ora.racdb.db 1 OFFLINE OFFLINE Instance Shutdown,ST ABLE 2 OFFLINE OFFLINE Instance Shutdown,ST ABLE ora.scan1.vip 1 ONLINE ONLINE rac1 STABLE ora.scan2.vip 1 ONLINE ONLINE rac2 STABLE ora.scan3.vip 1 ONLINE ONLINE rac2 STABLE --------------------------------------------------------------------------------
패치 사전 검증
$DB_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph <압축 해제 경로>/29774421
1번 노드
[racdb1:/home/oracle]> $DB_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph /media/sf_oracle/19.4/29774421 Oracle Interim 패치 설치 프로그램 버전 12.2.0.1.17 Copyright (c) 2019, Oracle Corporation. All rights reserved. PREREQ session Oracle 홈: /u01/app/oracle/product/19c/db_1 중앙 인벤토리: /u01/app/oraInventory 출처: /u01/app/oracle/product/19c/db_1/oraInst.loc OPatch 버전: 12.2.0.1.17 OUI 버전: 12.2.0.7.0 로그 파일 위치: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatch/opatch2019-08-26_14-09-25오후_1.log Invoking prereq "checkconflictagainstohwithdetail" Prereq "checkConflictAgainstOHWithDetail" passed. OPatch succeeded.
2번 노드
[racdb2:/home/oracle]> $DB_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph /media/sf_oracle/19.4/29774421 Oracle Interim 패치 설치 프로그램 버전 12.2.0.1.17 Copyright (c) 2019, Oracle Corporation. All rights reserved. PREREQ session Oracle 홈: /u01/app/oracle/product/19c/db_1 중앙 인벤토리: /u01/app/oraInventory 출처: /u01/app/oracle/product/19c/db_1/oraInst.loc OPatch 버전: 12.2.0.1.17 OUI 버전: 12.2.0.7.0 로그 파일 위치: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatch/opatch2019-08-26_14-09-36오후_1.log Invoking prereq "checkconflictagainstohwithdetail" Prereq "checkConflictAgainstOHWithDetail" passed. OPatch succeeded.
B) OJVM 패치 적용
cd <압축 해제 경로>/29774421 $DB_HOME/OPatch/opatch apply
1번 노드
[racdb1:/home/oracle]> cd /media/sf_oracle/19.4/29774421 [racdb1:/media/sf_oracle/19.4/29774421]> $DB_HOME/OPatch/opatch apply Oracle Interim 패치 설치 프로그램 버전 12.2.0.1.17 Copyright (c) 2019, Oracle Corporation. All rights reserved. Oracle 홈: /u01/app/oracle/product/19c/db_1 중앙 인벤토리: /u01/app/oraInventory 출처: /u01/app/oracle/product/19c/db_1/oraInst.loc OPatch 버전: 12.2.0.1.17 OUI 버전: 12.2.0.7.0 로그 파일 위치: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatch/opatch2019-08-26_14-10-37오후_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 29774421 계속하겠습니까? [y|n] y User Responded with: Y All checks passed. 로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오. (Oracle 홈 = '/u01/app/oracle/product/19c/db_1') 로컬 시스템이 패치할 준비가 되었습니까? [y|n] y User Responded with: Y Backing up files... OH '/u01/app/oracle/product/19c/db_1'에 Interim 패치 '29774421'을(를) 적용하는 중 oracle.javavm.server, 19.0.0.0.0 구성요소를 패치하는 중... oracle.javavm.server.core, 19.0.0.0.0 구성요소를 패치하는 중... oracle.rdbms.dbscripts, 19.0.0.0.0 구성요소를 패치하는 중... oracle.rdbms, 19.0.0.0.0 구성요소를 패치하는 중... Patch 29774421 successfully applied. Log file location: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatch/opatch2019-08-26_14-10-37오후_1.log OPatch succeeded.
2번 노드
[racdb2:/home/oracle]> cd /media/sf_oracle/19.4/29774421 [racdb2:/media/sf_oracle/19.4/29774421]> $DB_HOME/OPatch/opatch apply Oracle Interim 패치 설치 프로그램 버전 12.2.0.1.17 Copyright (c) 2019, Oracle Corporation. All rights reserved. Oracle 홈: /u01/app/oracle/product/19c/db_1 중앙 인벤토리: /u01/app/oraInventory 출처: /u01/app/oracle/product/19c/db_1/oraInst.loc OPatch 버전: 12.2.0.1.17 OUI 버전: 12.2.0.7.0 로그 파일 위치: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatch/opatch2019-08-26_14-19-07오후_1.log Verifying environment and performing prerequisite checks... OPatch continues with these patches: 29774421 계속하겠습니까? [y|n] y User Responded with: Y All checks passed. 로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오. (Oracle 홈 = '/u01/app/oracle/product/19c/db_1') 로컬 시스템이 패치할 준비가 되었습니까? [y|n] y User Responded with: Y Backing up files... OH '/u01/app/oracle/product/19c/db_1'에 Interim 패치 '29774421'을(를) 적용하는 중 oracle.javavm.server, 19.0.0.0.0 구성요소를 패치하는 중... oracle.javavm.server.core, 19.0.0.0.0 구성요소를 패치하는 중... oracle.rdbms.dbscripts, 19.0.0.0.0 구성요소를 패치하는 중... oracle.rdbms, 19.0.0.0.0 구성요소를 패치하는 중... Patch 29774421 successfully applied. Log file location: /u01/app/oracle/product/19c/db_1/cfgtoollogs/opatch/opatch2019-08-26_14-19-07오후_1.log OPatch succeeded.
클러스터 재기동
srvctl start home -oraclehome $DB_HOME -statefile /tmp/state.out -node <노드명>
1번 노드
[root@rac1 ~]# srvctl start home -oraclehome $DB_HOME -statefile /tmp/state.out -node rac1
2번 노드
[root@rac2 ~]# srvctl start home -oraclehome $DB_HOME -statefile /tmp/state.out -node rac2
C) OJVM 패치 결과 확인
$DB_HOME/OPatch/opatch lspatches -oh $DB_HOME
1번 노드
[racdb1:/home/oracle]> $DB_HOME/OPatch/opatch lspatches -oh $DB_HOME 29774421;OJVM RELEASE UPDATE: 19.4.0.0.190716 (29774421) 29850993;OCW RELEASE UPDATE 19.4.0.0.0 (29850993) 29834717;Database Release Update : 19.4.0.0.190716 (29834717) OPatch succeeded.
2번 노드
[racdb2:/home/oracle]> $DB_HOME/OPatch/opatch lspatches -oh $DB_HOME 29774421;OJVM RELEASE UPDATE: 19.4.0.0.190716 (29774421) 29850993;OCW RELEASE UPDATE 19.4.0.0.0 (29850993) 29834717;Database Release Update : 19.4.0.0.190716 (29834717) OPatch succeeded.
D) OJVM Datapatch 준비
OJVM Datapatch 준비
alter system set cluster_database=false scope=spfile;
[racdb1:/home/oracle]> sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 26 14:36:39 2019 Version 19.4.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0 SQL> alter system set cluster_database=false scope=spfile; System altered. SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0
Database 중지
srvctl stop database -d <데이터베이스명> -o immediate
[racdb1:/home/oracle]> srvctl stop database -d racdb -o immediate
업그레이드 모드로 Database 기동
startup upgrade alter pluggable database all open upgrade;
[racdb1:/home/oracle]> sqlplus /nolog SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 26 14:41:36 2019 Version 19.4.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. SQL> connect / as sysdba Connected to an idle instance. SQL> startup upgrade ORACLE instance started. Total System Global Area 3154114088 bytes Fixed Size 9139752 bytes Variable Size 805306368 bytes Database Buffers 2332033024 bytes Redo Buffers 7634944 bytes Database mounted. Database opened. SQL> alter pluggable database all open upgrade; Pluggable database altered. SQL> quit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0
E) OJVM Datapatch 적용
$DB_HOME/OPatch/datapatch -verbose
[racdb1:/home/oracle]> datapatch -verbose SQL Patching tool version 19.4.0.0.0 Production on Mon Aug 26 14:42:46 2019 Copyright (c) 2012, 2019, Oracle. All rights reserved. Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_26152_2019_08_26_14_42_46/sqlpatch_invocation.log Connecting to database...OK Gathering database info...done Note: Datapatch will only apply or rollback SQL fixes for PDBs that are in an open state, no patches will be applied to closed PDBs. Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation (Doc ID 1585822.1) Bootstrapping registry and package to current versions...done Determining current state...done Current state of interim SQL patches: Interim patch 29774421 (OJVM RELEASE UPDATE: 19.4.0.0.190716 (29774421)): Binary registry: Installed PDB CDB$ROOT: Not installed PDB PDB: Not installed PDB PDB$SEED: Not installed Current state of release update SQL patches: Binary registry: 19.4.0.0.0 Release_Update 190626171128: Installed PDB CDB$ROOT: Applied 19.4.0.0.0 Release_Update 190626171128 successfully on 19/08/26 11:42:17.845203 PDB PDB: Applied 19.4.0.0.0 Release_Update 190626171128 successfully on 19/08/26 13:43:48.990596 PDB PDB$SEED: Applied 19.4.0.0.0 Release_Update 190626171128 successfully on 19/08/26 11:42:30.723819 Adding patches to installation queue and performing prereq checks...done Installation queue: For the following PDBs: CDB$ROOT PDB$SEED PDB No interim patches need to be rolled back No release update patches need to be installed The following interim patches will be applied: 29774421 (OJVM RELEASE UPDATE: 19.4.0.0.190716 (29774421)) Installing patches... Patch installation complete. Total patches installed: 3 Validating logfiles...done Patch 29774421 apply (pdb CDB$ROOT): SUCCESS logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/29774421/22965160/29774421_apply_RACDB_CDBROOT_2019Aug26_14_43_35.log (no errors) Patch 29774421 apply (pdb PDB$SEED): SUCCESS logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/29774421/22965160/29774421_apply_RACDB_PDBSEED_2019Aug26_14_46_02.log (no errors) Patch 29774421 apply (pdb PDB): SUCCESS logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/29774421/22965160/29774421_apply_RACDB_PDB_2019Aug26_14_46_02.log (no errors) SQL Patching tool complete on Mon Aug 26 14:47:08 2019
OJVM Datapatch 정리 작업
alter system set cluster_database=true scope=spfile; shutdown
[racdb1:/home/oracle]> sqlplus /nolog SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 26 14:52:56 2019 Version 19.4.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. SQL> connect / as sysdba Connected. SQL> alter system set cluster_database=true scope=spfile; System altered. SQL> shutdown Database closed. Database dismounted. ORACLE instance shut down. SQL> quit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0
Database 기동
srvctl start database -d racdb
[racdb1:/home/oracle]> srvctl start database -d racdb
F) OJVM Datapatch 결과 확인
select NAME, OPEN_MODE from V$PDBS; select PATCH_ID, ACTION, STATUS, ACTION_TIME, SOURCE_VERSION, TARGET_VERSION from DBA_REGISTRY_SQLPATCH; select TIME, NAME, CAUSE, STATUS, MESSAGE from PDB_PLUG_IN_VIOLATIONS;
[racdb1:/home/oracle]> sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Aug 26 15:04:09 2019 Version 19.4.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0 SQL> set lines 250 SQL> col NAME form a10 SQL> select NAME, OPEN_MODE from V$PDBS; NAME OPEN_MODE ---------- ---------- PDB$SEED READ ONLY PDB READ WRITE SQL> col STATUS form a10 SQL> col ACTION_TIME form a25 SQL> select PATCH_ID, ACTION, STATUS, ACTION_TIME, SOURCE_VERSION, TARGET_VERSION from DBA_REGISTRY_SQLPATCH; PATCH_ID ACTION STATUS ACTION_TIME SOURCE_VERSION TARGET_VERSION ---------- --------------- ---------- ------------------------- --------------- --------------- 29517242 APPLY SUCCESS 19/08/24 14:38:46.385562 19.1.0.0.0 19.3.0.0.0 29834717 APPLY SUCCESS 19/08/26 11:42:17.845203 19.3.0.0.0 19.4.0.0.0 29774421 APPLY SUCCESS 19/08/26 14:47:07.762419 19.4.0.0.0 19.4.0.0.0 SQL> col TIME form a25 SQL> col NAME form a10 SQL> col CAUSE form a10 SQL> col MESSAGE form a150 SQL> select TIME, NAME, CAUSE, STATUS, MESSAGE from PDB_PLUG_IN_VIOLATIONS; TIME NAME CAUSE STATUS MESSAGE ------------------------- ---------- ---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------------------ 19/08/24 15:01:56.279107 PDB$SEED SQL Patch RESOLVED '19.3.0.0.0 Release_Update 1904101227' is installed in the CDB but no release updates are installed in the PDB 19/08/26 13:56:15.520959 PDB SQL Patch RESOLVED '19.4.0.0.0 Release_Update 1906261711' is installed in the CDB but '19.3.0.0.0 Release_Update 1904101227' is installed in the PDB SQL> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.4.0.0.0
6. 최종 패치 결과 확인
A) Grid 패치 결과
$GI_HOME/OPatch/opatch lsinventory -oh $GI_HOME
B) Database 패치 결과
$DB_HOME/OPatch/opatch lsinventory -oh $DB_HOME
{}