프린트 하기

OS 환경 : Oracle Linux 8.4 (64bit)

 

DB 환경 : Oracle Database 19.24.0.0

 

방법 : Oracle 19c Single DB RU(Release Update) 패치 가이드

본문에서는 19c 싱글 db에서 ru(19.24) 패치를 하는 방법을 설명함

본문 내용은 참고용으로만 보고 실제 작업시에는 공식 문서 및 README 를 꼭 읽어보고 진행해야함

 

 

19c 설치는 아래 게시글 참고
참고 : Oracle Linux 8.4에 Oracle 19c 설치 가이드 ( https://positivemh.tistory.com/1144 )

 

 

mos에서 패치 파일 다운로드 및 업로드(나의 경우 ojvm 이 포함된 파일을 사용함)
p36522439_190000_Linux-x86-64.zip

 

 

opatch 최신 파일 다운로드 및 업로드
p6880880_190000_Linux-x86-64.zip

 

 

사전 설정

업로드 후 권한 부여

1
2
3
4
5
6
7
8
# chown oracle:dba p36522439_190000_Linux-x86-64.zip p6880880_190000_Linux-x86-64.zip
# mv p36522439_190000_Linux-x86-64.zip p6880880_190000_Linux-x86-64.zip /app/media/
# ls -al /app/media/
total 3642316
drwxr-xr-x. 3 oracle oinstall        126 Aug 15 23:44 .
drwxrwxr-x. 6 oracle dba              68 Aug 15 07:47 ..
-rw-r--r--. 1 oracle dba      3592768948 Aug 15 23:38 p36522439_190000_Linux-x86-64.zip
-rw-r--r--. 1 oracle dba       134471443 Aug 15 23:37 p6880880_190000_Linux-x86-64.zip

/app/media 에 정상적으로 패치파일과 OPatch 파일이 업로드됨

 

 

.bash_profile 의 PATH에 OPatch 경로 없는 경우 추가

1
2
3
# su - oracle
$ vi .bash_profile
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

 

 

적용

1
$ . ./.bash_profile

 

 

opatch 기존 버전 확인

1
2
3
4
$ opatch version
OPatch Version: 12.2.0.1.17
 
OPatch succeeded.

현재 12.2.0.1.17 임

 

 

opatch 업데이트
참고로 Patch 36582781 README 문서의 2.1 OPatch Utility 부분을 보면 OPatch 버전이 12.2.0.1.42 이상이어야 한다고 나와 있음

1
2
3
$ cd $ORACLE_HOME
$ mv OPatch/ OPatchold_202408
$ unzip /app/media/p6880880_190000_Linux-x86-64.zip

 

 

opatch 버전 확인

1
2
3
4
$ opatch version
OPatch Version: 12.2.0.1.43
 
OPatch succeeded.

정상적으로 12.2.0.1.43 로 업데이트됨

 

 

패치

패치 전 db 및 리스너 모두 종료

1
2
SQL> shutdown immediate
$ lsnrctl stop

 

 

미디어 경로로 이동 후 패치파일 압축 해제

1
2
$ cd /app/media
$ unzip p36522439_190000_Linux-x86-64.zip

 

 

db 패치는 36582781 이기 때문에 해당 경로로 이동

1
$ cd 36522439/36582629/36582781/

 

 

패치 전 사전 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.43
Copyright (c) 2024, Oracle Corporation.  All rights reserved.
 
PREREQ session
 
Oracle Home       : /app/oracle/product/19c
Central Inventory : /app/oraInventory
   from           : /app/oracle/product/19c/oraInst.loc
OPatch version    : 12.2.0.1.43
OUI version       : 12.2.0.7.0
Log file location : /app/oracle/product/19c/cfgtoollogs/opatch/opatch2024-08-15_23-52-52PM_1.log
 
Invoking prereq "checkconflictagainstohwithdetail"
 
Prereq "checkConflictAgainstOHWithDetail" passed.
 
OPatch succeeded.

정상적으로 패치가 가능함

 

 

패치 수행

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
$ opatch apply
Oracle Interim Patch Installer version 12.2.0.1.43
Copyright (c) 2024, Oracle Corporation.  All rights reserved.
 
 
Oracle Home       : /app/oracle/product/19c
Central Inventory : /app/oraInventory
   from           : /app/oracle/product/19c/oraInst.loc
OPatch version    : 12.2.0.1.43
OUI version       : 12.2.0.7.0
Log file location : /app/oracle/product/19c/cfgtoollogs/opatch/opatch2024-08-16_00-04-02AM_1.log
 
Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   36582781
 
Do you want to proceed? [y|n]
y   <<-- [y 입력]
User Responded with: Y
All checks passed.
 
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/app/oracle/product/19c')
 
 
Is the local system ready for patching? [y|n]
y   <<-- [y 입력]
User Responded with: Y
Backing up files...
Applying interim patch '36582781' to OH '/app/oracle/product/19c'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.crypto.rsf, 19.0.0.0.0 ] , [ oracle.pg4appc, 19.0.0.0.0 ] , [ oracle.pg4mq, 19.0.0.0.0 ] , [ oracle.precomp.companion, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.sdo.companion, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ]  not present in the Oracle Home or a higher version is found.
 
Patching component oracle.rdbms, 19.0.0.0.0...
 
Patching component oracle.rdbms.util, 19.0.0.0.0...
 
Patching component oracle.rdbms.rsf, 19.0.0.0.0...
 
Patching component oracle.assistants.acf, 19.0.0.0.0...
 
Patching component oracle.assistants.deconfig, 19.0.0.0.0...
 
Patching component oracle.assistants.server, 19.0.0.0.0...
 
Patching component oracle.blaslapack, 19.0.0.0.0...
 
Patching component oracle.buildtools.rsf, 19.0.0.0.0...
 
Patching component oracle.ctx, 19.0.0.0.0...
 
Patching component oracle.dbdev, 19.0.0.0.0...
 
Patching component oracle.dbjava.ic, 19.0.0.0.0...
 
Patching component oracle.dbjava.jdbc, 19.0.0.0.0...
 
Patching component oracle.dbjava.ucp, 19.0.0.0.0...
 
Patching component oracle.duma, 19.0.0.0.0...
 
Patching component oracle.javavm.client, 19.0.0.0.0...
 
Patching component oracle.ldap.owm, 19.0.0.0.0...
 
Patching component oracle.ldap.rsf, 19.0.0.0.0...
 
Patching component oracle.ldap.security.osdt, 19.0.0.0.0...
 
Patching component oracle.marvel, 19.0.0.0.0...
 
Patching component oracle.network.rsf, 19.0.0.0.0...
 
Patching component oracle.odbc.ic, 19.0.0.0.0...
 
Patching component oracle.ons, 19.0.0.0.0...
 
Patching component oracle.ons.ic, 19.0.0.0.0...
 
Patching component oracle.oracore.rsf, 19.0.0.0.0...
 
Patching component oracle.perlint, 5.28.1.0.0...
 
Patching component oracle.precomp.common.core, 19.0.0.0.0...
 
Patching component oracle.nlsrtl.rsf.core, 19.0.0.0.0...
 
Patching component oracle.nlsrtl.rsf.ic, 19.0.0.0.0...
 
Patching component oracle.precomp.rsf, 19.0.0.0.0...
 
Patching component oracle.rdbms.crs, 19.0.0.0.0...
 
Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
 
Patching component oracle.rdbms.deconfig, 19.0.0.0.0...
 
Patching component oracle.rdbms.oci, 19.0.0.0.0...
 
Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...
 
Patching component oracle.rdbms.scheduler, 19.0.0.0.0...
 
Patching component oracle.rhp.db, 19.0.0.0.0...
 
Patching component oracle.rsf, 19.0.0.0.0...
 
Patching component oracle.sdo, 19.0.0.0.0...
 
Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...
 
Patching component oracle.sqlplus, 19.0.0.0.0...
 
Patching component oracle.sqlplus.ic, 19.0.0.0.0...
 
Patching component oracle.wwg.plsql, 19.0.0.0.0...
 
Patching component oracle.xdk.rsf, 19.0.0.0.0...
 
Patching component oracle.ovm, 19.0.0.0.0...
 
Patching component oracle.rdbms.drdaas, 19.0.0.0.0...
 
Patching component oracle.oraolap, 19.0.0.0.0...
 
Patching component oracle.rdbms.dv, 19.0.0.0.0...
 
Patching component oracle.nlsrtl.rsf.lbuilder, 19.0.0.0.0...
 
Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...
 
Patching component oracle.rdbms.hs_common, 19.0.0.0.0...
 
Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...
 
Patching component oracle.install.deinstalltool, 19.0.0.0.0...
 
Patching component oracle.oraolap.api, 19.0.0.0.0...
 
Patching component oracle.xdk.parser.java, 19.0.0.0.0...
 
Patching component oracle.mgw.common, 19.0.0.0.0...
 
Patching component oracle.network.listener, 19.0.0.0.0...
 
Patching component oracle.xdk.xquery, 19.0.0.0.0...
 
Patching component oracle.ldap.ssl, 19.0.0.0.0...
 
Patching component oracle.rdbms.rman, 19.0.0.0.0...
 
Patching component oracle.odbc, 19.0.0.0.0...
 
Patching component oracle.sdo.locator, 19.0.0.0.0...
 
Patching component oracle.ldap.client, 19.0.0.0.0...
 
Patching component oracle.rdbms.install.common, 19.0.0.0.0...
 
Patching component oracle.ctx.atg, 19.0.0.0.0...
 
Patching component oracle.rdbms.dm, 19.0.0.0.0...
 
Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...
 
Patching component oracle.xdk, 19.0.0.0.0...
 
Patching component oracle.javavm.server, 19.0.0.0.0...
 
Patching component oracle.dbtoolslistener, 19.0.0.0.0...
 
Patching component oracle.rdbms.locator, 19.0.0.0.0...
 
Patching component oracle.ctx.rsf, 19.0.0.0.0...
 
Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...
 
Patching component oracle.network.client, 19.0.0.0.0...
 
Patching component oracle.rdbms.rat, 19.0.0.0.0...
 
Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...
 
Patching component oracle.rdbms.lbac, 19.0.0.0.0...
 
Patching component oracle.precomp.common, 19.0.0.0.0...
 
Patching component oracle.precomp.lang, 19.0.0.0.0...
 
Patching component oracle.jdk, 1.8.0.201.0...
Patch 36582781 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [36582781].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /app/oracle/product/19c/cfgtoollogs/opatch/opatch2024-08-16_00-04-02AM_1.log
 
OPatch succeeded.

패치 완료됨

 

 

패치 후 작업

이제 패치된(수정된) sql 파일을 db에 로드해야함

 

 

db 기동

1
2
3
4
5
6
7
8
9
10
11
$ sqlplus / as sysdba
SQL> startup
ORACLE instance started.
 
Total System Global Area 1375729608 bytes
Fixed Size                  8939464 bytes
Variable Size             352321536 bytes
Database Buffers         1006632960 bytes
Redo Buffers                7835648 bytes
Database mounted.
Database opened.

 

 

opatch 경로로 이동 후 datapatch sanity_checks 명령 수행(선택)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
$ cd $ORACLE_HOME/OPatch
$ ./datapatch -sanity_checks
SQL Patching sanity checks version 19.24.0.0.0 on Fri 16 Aug 2024 12:22:16 AM KST
Copyright (c) 2021, 2024, Oracle.  All rights reserved.
 
Log file for this invocation: /app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20240816_002216_7253/sanity_checks_20240816_002216_7253.log
 
Running checks
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 942.
Use of uninitialized value $pdb in hash element at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 946.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
Use of uninitialized value $pdb in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 932.
JSON report generated in /app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20240816_002216_7253/sqlpatch_sanity_checks_summary.json file
Checks completed. Printing report:
 
Check: Database component status - OK
Check: PDB Violations - OK
Check: Invalid System Objects - OK
Check: Tablespace Status - OK
Check: Backup jobs - OK
Check: Temp file exists - OK
Check: Temp file online - OK
Check: Data Pump running - OK
Check: Container status - OK
Check: Oracle Database Keystore - OK
Check: Dictionary statistics gathering - OK
Check: Scheduled Jobs - WARNING
  Execution of scheduler jobs while database patching is running may lead to failures and/or performance issues.
  There are jobs currently running or scheduled to be executed during next hour.
  Consider patching the database when jobs are not running and will not be scheduled to run during patching.
  To check for jobs that are running or scheduled to run:
    SELECT owner as schema_name, job_name, state, next_run_date
    FROM sys.all_scheduler_jobs
    WHERE state = 'RUNNING'
    UNION
      SELECT owner as schema_name, job_name, state, next_run_date
      FROM sys.all_scheduler_jobs
      WHERE state = 'SCHEDULED'
      and cast(next_run_date as date) > sysdate
      and cast(next_run_date as date) < sysdate + 1/24;
Use of uninitialized value in subroutine entry at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 3252.
Use of uninitialized value in subtraction (-) at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 3286.
Use of uninitialized value $rowElem in concatenation (.) or string at /app/oracle/product/19c/sqlpatch/sqlpatch_sanity_checks.pm line 3287.
  :
    |         JOB_NAME         |            NEXT_RUN_DATE            | SCHEMA_NAME |   STATE   |
    |--------------------------+-------------------------------------+-------------+-----------|
    | CLEANUP_ONLINE_IND_BUILD | 16-AUG-24 12.27.25.937476 AM +09:00 |     SYS     | SCHEDULED |
    |--------------------------+-------------------------------------+-------------+-----------|
    |    CLEANUP_ONLINE_PMO    | 16-AUG-24 12.28.05.125962 AM +09:00 |     SYS     | SCHEDULED |
    |--------------------------+-------------------------------------+-------------+-----------|
    |   CLEANUP_TAB_IOT_PMO    | 16-AUG-24 12.27.35.015130 AM +09:00 |     SYS     | SCHEDULED |
    |--------------------------+-------------------------------------+-------------+-----------|
    |  CLEANUP_TRANSIENT_PKG   | 16-AUG-24 12.27.55.000000 AM +09:00 |     SYS     | SCHEDULED |
    |--------------------------+-------------------------------------+-------------+-----------|
    |    ORA$AT_OS_OPT_SY_1    |                                     |     SYS     |  RUNNING  |
    |--------------------------+-------------------------------------+-------------+-----------|
Check: GoldenGate triggers - OK
Check: Logminer DDL triggers - OK
Check: Check sys public grants - OK
Check: Statistics gathering running - OK
Check: Optim dictionary upgrade parameter - OK
Check: Symlinks on oracle home path - OK
Check: Central Inventory - OK
Check: Queryable Inventory dba directories - OK
Check: Queryable Inventory locks - OK
Check: Queryable Inventory package - ERROR
  Datapatch uses Queryable Inventory to get OPatch Inventory information and create a patching installation plan.
  The Queryable Inventory package is not able to retrieve OPatch Inventory information.
  Refer to MOS Note 1602089.1 for details on verifying the Queryable Inventory package before patching.
  oracle19:
    | RESULT  |
    |---------|
    | Failure |
    |---------|
Check: Queryable Inventory external table - SKIPPED (ERROR)
  Message: Skipped as previous check wasn't executed successfully.
Check: Imperva processes - OK
Check: Guardium processes - OK
Check: Locale - OK
 
Refer to MOS Note 2680521.1 and debug log
/app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20240816_002216_7253/sanity_checks_debug_20240816_002216_7253.log
 
SQL Patching sanity checks completed on Fri 16 Aug 2024 12:22:44 AM KST

sanity_checks 완료

 

 

opatch 경로로 이동 후 datapatch 명령 수행

datapatch 수행시 수정된 SQL 파일을 데이터베이스에 로드하기 위해 필요한 적용 스크립트를 실행함
이 작업 이후에 dba_registry_sqlpatch 뷰를 보면 패치 적용 내역이 표시됨

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ cd $ORACLE_HOME/OPatch
$ ./datapatch -verbose
SQL Patching tool version 19.24.0.0.0 Production on Fri Aug 16 00:23:11 2024
Copyright (c) 2012, 2024, Oracle.  All rights reserved.
 
Log file for this invocation: /app/oracle/cfgtoollogs/sqlpatch/sqlpatch_7660_2024_08_16_00_23_11/sqlpatch_invocation.log
 
Connecting to database...OK
Gathering database info...done
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.24.0.0.0 Release_Update 240627235157: Installed
  SQL registry:
    Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 15-AUG-24 08.40.55.286766 AM
 
Adding patches to installation queue and performing prereq checks...done
Installation queue:
  No interim patches need to be rolled back
  Patch 36582781 (Database Release Update : 19.24.0.0.240716 (36582781)):
    Apply from 19.3.0.0.0 Release_Update 190410122720 to 19.24.0.0.0 Release_Update 240627235157
  No interim patches need to be applied
 
Installing patches...
Patch installation complete.  Total patches installed: 1
 
Validating logfiles...done
Patch 36582781 apply: SUCCESS
  logfile: /app/oracle/cfgtoollogs/sqlpatch/36582781/25751445/36582781_apply_ORACLE19_2024Aug16_00_24_39.log (no errors)
SQL Patching tool complete on Fri Aug 16 00:31:36 2024

 

 

패치 내역 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SQL>
SET LINESIZE 400
COLUMN ACTION_TIME FORMAT A20
COLUMN ACTION FORMAT A10
COLUMN STATUS FORMAT A10
COLUMN DESCRIPTION FORMAT A60
COLUMN VERSION FORMAT A10
SELECT TO_CHAR(ACTION_TIME, 'YYYYMMDD HH24:MI:SS') AS ACTION_TIME
,ACTION
,STATUS
,DESCRIPTION
,SOURCE_VERSION
,TARGET_VERSION
,PATCH_ID
FROM DBA_REGISTRY_SQLPATCH
ORDER BY ACTION_TIME
/
 
ACTION_TIME          ACTION     STATUS     DESCRIPTION                                                  SOURCE_VERSION  TARGET_VERSION    PATCH_ID
-------------------- ---------- ---------- ------------------------------------------------------------ --------------- --------------- ----------
20240815 08:40:55    APPLY      SUCCESS    Database Release Update : 19.3.0.0.190416 (29517242)         19.1.0.0.0      19.3.0.0.0        29517242
20240816 00:30:39    APPLY      SUCCESS    Database Release Update : 19.24.0.0.240716 (36582781)        19.3.0.0.0      19.24.0.0.0       36582781

정상적으로 패치됨

 

 

rman 카탈로그를 사용하는 경우 카탈로그도 업데이트(나의 경우는 아님)

1
2
3
4
$ rman catalog username/password@alias
RMAN> upgrade catalog;
RMAN> upgrade catalog;
RMAN> exit;

 

 

extjob 권한 업데이트(root 유저로 실행)
RU 패치시 업데이트할 라이브러리와 실행 파일을 다시 연결하는 작업이 포함되는데 이로 인해 권한이 변경되고 업데이트해야 할 수도 있음

1
2
3
4
5
6
7
# export ORACLE_HOME=/app/oracle/product/19c
# ls -al $ORACLE_HOME/bin/extjob
-rwxr-xr-x. 1 oracle oinstall 3038112 Aug 16 00:18 /app/oracle/product/19c/bin/extjob
# chown root $ORACLE_HOME/bin/extjob
# chmod 4750 $ORACLE_HOME/bin/extjob
# ls -al $ORACLE_HOME/bin/extjob
-rwsr-x---. 1 root oinstall 3038112 Aug 16 00:18 /app/oracle/product/19c/bin/extjob

 

 

롤백이 필요한 경우 아래 가이드를 참고하여 롤백 가능함
Oracle 19c Single OPatch Release Update 롤백 가이드 ( https://positivemh.tistory.com/581 )

 

 

참조 : 

https://positivemh.tistory.com/175
https://positivemh.tistory.com/581