OS 환경 : Oracle Linux 9.6 (64bit)
DB 환경 : Oracle AI Database 23.26.2.0.0 ai
방법 : Oracle 26ai Single DB RU(Release Update) 패치 가이드
본문에서는 26ai(23.26.1) 싱글 db에서 ru(23.26.2) 패치를 하는 방법을 설명함
본문 내용은 참고용으로만 보고 실제 작업시에는 공식 문서 및 README 를 꼭 읽어보고 진행해야함
26ai 설치는 아래 게시글 참고
참고 : Oracle Linux 9.6에 Oracle 26ai 설치 가이드 ( https://positivemh.tistory.com/1329 )
mos에서 패치 파일 다운로드 및 업로드
p39093711_230000_Linux-x86-64.zip
다운로드 : https://support.oracle.com/support/?patchId=39093711
opatch 최신 파일 다운로드 및 업로드
p6880880_230000_Linux-x86-64.zip
다운로드 : https://updates.oracle.com/download/6880880.html
사전 설정
업로드 후 권한 부여
|
1
2
3
4
5
6
7
8
|
# chown oracle:dba p39093711_230000_Linux-x86-64.zip p6880880_230000_Linux-x86-64.zip
# mv p39093711_230000_Linux-x86-64.zip p6880880_230000_Linux-x86-64.zip /app/media/
# ls -al /app/media/
total 5283612
drwxr-xr-x. 3 oracle dba 4096 May 1 22:22 .
-rw-r--r--. 1 oracle dba 2406058543 Jan 29 21:52 LINUX.X64_2326100_db_home.zip
-rw-r--r-- 1 oracle dba 2978997487 May 1 22:15 p39093711_230000_Linux-x86-64.zip
-rw-r--r-- 1 oracle dba 25351666 May 1 22:15 p6880880_230000_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.48
OPatch succeeded.
|
현재 12.2.0.1.48 임
opatch 업데이트
참고로 Patch 39093711 README 문서의 2.1 OPatch Utility 부분을 보면 OPatch 버전이 12.2.0.1.49 이상이어야 한다고 나와 있음
|
1
2
3
|
$ cd $ORACLE_HOME
$ mv OPatch/ OPatchold_202605
$ unzip -q /app/media/p6880880_230000_Linux-x86-64.zip
|
opatch 버전 확인
|
1
2
3
4
|
$ opatch version
OPatch Version: 12.2.0.1.51
OPatch succeeded.
|
정상적으로 12.2.0.1.51 로 업데이트됨
패치
패치 전 cdb 및 리스너 모두 종료
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$ sqlplus / as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
$ lsnrctl stop
LSNRCTL for Linux: Version 23.26.1.0.0 - Production on 01-MAY-2026 22:28:14
Copyright (c) 1991, 2026, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora26)(PORT=1521)))
The command completed successfully
|
미디어 경로로 이동 후 패치파일 압축 해제
|
1
2
|
$ cd /app/media
$ unzip -q p39093711_230000_Linux-x86-64.zip
|
해당 경로로 이동
|
1
|
$ cd 39093711
|
패치 전 사전 확인
|
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.51
Copyright (c) 2026, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /app/oracle/product/26ai
Central Inventory : /app/oraInventory
from : /app/oracle/product/26ai/oraInst.loc
OPatch version : 12.2.0.1.51
OUI version : 12.2.0.9.0
Log file location : /app/oracle/product/26ai/cfgtoollogs/opatch/opatch2026-05-01_22-30-56PM_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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
|
$ opatch apply
Oracle Interim Patch Installer version 12.2.0.1.51
Copyright (c) 2026, Oracle Corporation. All rights reserved.
Oracle Home : /app/oracle/product/26ai
Central Inventory : /app/oraInventory
from : /app/oracle/product/26ai/oraInst.loc
OPatch version : 12.2.0.1.51
OUI version : 12.2.0.9.0
Log file location : /app/oracle/product/26ai/cfgtoollogs/opatch/opatch2026-05-01_22-32-02PM_1.log
Verifying environment and performing prerequisite checks...
--------------------------------------------------------------------------------
Start OOP by Prereq process.
Launch OOP...
Oracle Interim Patch Installer version 12.2.0.1.51
Copyright (c) 2026, Oracle Corporation. All rights reserved.
Oracle Home : /app/oracle/product/26ai
Central Inventory : /app/oraInventory
from : /app/oracle/product/26ai/oraInst.loc
OPatch version : 12.2.0.1.51
OUI version : 12.2.0.9.0
Log file location : /app/oracle/product/26ai/cfgtoollogs/opatch/opatch2026-05-01_22-32-46PM_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 39093711
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/26ai')
Is the local system ready for patching? [y|n]
y <<--- [y 입력]
User Responded with: Y
Backing up files...
Applying interim patch '39093711' to OH '/app/oracle/product/26ai'
ApplySession: Optional component(s) [ oracle.client, 23.0.0.0.0 ] , [ oracle.companionCD.db, 23.0.0.0.0 ] , [ oracle.dbjava.dev, 23.0.0.0.0 ] , [ oracle.dslm, 23.0.0.0.0 ] , [ oracle.has.client.cvu, 23.0.0.0.0 ] , [ oracle.has.gsm.cvu, 23.0.0.0.0 ] , [ oracle.ldap.companion, 23.0.0.0.0 ] , [ oracle.mgw.common.companion, 23.0.0.0.0 ] , [ oracle.network.cman, 23.0.0.0.0 ] , [ oracle.nlsrtl.companion, 23.0.0.0.0 ] , [ oracle.odbc.companion, 23.0.0.0.0 ] , [ oracle.oraolap.mgmt, 23.0.0.0.0 ] , [ oracle.perlint, 5.38.2.0.0 ] , [ oracle.pg4appc, 23.0.0.0.0 ] , [ oracle.pg4mq, 23.0.0.0.0 ] , [ oracle.precomp.companion, 23.0.0.0.0 ] , [ oracle.rdbms.companion, 23.0.0.0.0 ] , [ oracle.rdbms.ic, 23.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 23.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 23.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 23.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 23.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 23.0.0.0.0 ] , [ oracle.sdo.companion, 23.0.0.0.0 ] , [ oracle.sqlj, 23.0.0.0.0 ] , [ oracle.sqlj.companion, 23.0.0.0.0 ] , [ oracle.sqlplus.companion, 23.0.0.0.0 ] , [ oracle.tg, 23.0.0.0.0 ] , [ oracle.xdk.companion, 23.0.0.0.0 ] , [ oracle.jdk, 11.0.25.9.0 ] , [ oracle.python, 3.12.5.0.0 ] not present in the Oracle Home or a higher version is found.
Patching component oracle.assistants.acf, 23.0.0.0.0...
Patching component oracle.assistants.asm, 23.0.0.0.0...
Patching component oracle.assistants.deconfig, 23.0.0.0.0...
Patching component oracle.assistants.netca.client, 23.0.0.0.0...
Patching component oracle.assistants.server, 23.0.0.0.0...
Patching component oracle.bali.ewt, 12.2.1.0.0...
Patching component oracle.bali.ice, 6.1.3.2.0...
Patching component oracle.bali.jewt, 11.1.1.1.0...
Patching component oracle.bali.share, 12.2.1.0.0...
Patching component oracle.blaslapack, 23.0.0.0.0...
Patching component oracle.buildtools.common, 23.0.0.0.0...
Patching component oracle.buildtools.rsf, 23.0.0.0.0...
Patching component oracle.crypto.fips, 23.0.0.0.0...
Patching component oracle.crypto.ojmisc, 23.0.0.0.0...
Patching component oracle.crypto.pki, 23.0.0.0.0...
Patching component oracle.crypto.rsa, 23.0.0.0.0...
Patching component oracle.crypto.rsf, 23.0.0.0.0...
Patching component oracle.ctx, 23.0.0.0.0...
Patching component oracle.ctx.atg, 23.0.0.0.0...
Patching component oracle.ctx.companion, 23.0.0.0.0...
Patching component oracle.ctx.rsf, 23.0.0.0.0...
Patching component oracle.dbdev, 23.0.0.0.0...
Patching component oracle.dbjava.ic, 23.0.0.0.0...
Patching component oracle.dbjava.jdbc, 23.0.0.0.0...
Patching component oracle.dbjava.server, 23.0.0.0.0...
Patching component oracle.dbjava.ucp, 23.0.0.0.0...
Patching component oracle.dbtoolslistener, 23.0.0.0.0...
Patching component oracle.hadoopcore, 23.0.0.0.0...
Patching component oracle.has.common, 23.0.0.0.0...
Patching component oracle.has.common.cvu, 23.0.0.0.0...
Patching component oracle.has.db, 23.0.0.0.0...
Patching component oracle.has.db.cvu, 23.0.0.0.0...
Patching component oracle.has.rsf, 23.0.0.0.0...
Patching component oracle.help.ohj, 11.1.2.0.0...
Patching component oracle.help.share, 11.1.2.0.0...
Patching component oracle.install.deinstalltool, 23.0.0.0.0...
Patching component oracle.javavm.client, 23.0.0.0.0...
Patching component oracle.javavm.companion, 23.0.0.0.0...
Patching component oracle.javavm.server, 23.0.0.0.0...
Patching component oracle.javavm.server.core, 23.0.0.0.0...
Patching component oracle.jdk, 11.0.24.7.0...
Patching component oracle.ldap.admin, 23.0.0.0.0...
Patching component oracle.ldap.client, 23.0.0.0.0...
Patching component oracle.ldap.rsf, 23.0.0.0.0...
Patching component oracle.mgw.common, 23.0.0.0.0...
Patching component oracle.network, 23.0.0.0.0...
Patching component oracle.network.aso, 23.0.0.0.0...
Patching component oracle.network.client, 23.0.0.0.0...
Patching component oracle.network.gsm, 23.0.0.0.0...
Patching component oracle.network.listener, 23.0.0.0.0...
Patching component oracle.network.netmgr, 23.0.0.0.0...
Patching component oracle.network.rsf, 23.0.0.0.0...
Patching component oracle.nlsrtl.rsf, 23.0.0.0.0...
Patching component oracle.nlsrtl.rsf.core, 23.0.0.0.0...
Patching component oracle.nlsrtl.rsf.ic, 23.0.0.0.0...
Patching component oracle.nlsrtl.rsf.lbuilder, 23.0.0.0.0...
Patching component oracle.odbc, 23.0.0.0.0...
Patching component oracle.odbc.ic, 23.0.0.0.0...
Patching component oracle.onnx, 23.0.0.0.0...
Patching component oracle.ons, 23.0.0.0.0...
Patching component oracle.ons.core, 23.0.0.0.0...
Patching component oracle.ons.ic, 23.0.0.0.0...
Patching component oracle.options, 23.0.0.0.0...
Patching component oracle.oracler.server, 23.0.0.0.0...
Patching component oracle.oracore.rsf, 23.0.0.0.0...
Patching component oracle.oracore.rsf.core, 23.0.0.0.0...
Patching component oracle.oraml.server, 23.0.0.0.0...
Patching component oracle.oraolap, 23.0.0.0.0...
Patching component oracle.oraolap.api, 23.0.0.0.0...
Patching component oracle.oraolap.dbscripts, 23.0.0.0.0...
Patching component oracle.ordim.client, 23.0.0.0.0...
Patching component oracle.ordim.server, 23.0.0.0.0...
Patching component oracle.ovm, 23.0.0.0.0...
Patching component oracle.precomp.common, 23.0.0.0.0...
Patching component oracle.precomp.common.core, 23.0.0.0.0...
Patching component oracle.precomp.lang, 23.0.0.0.0...
Patching component oracle.precomp.rsf, 23.0.0.0.0...
Patching component oracle.python, 3.12.3.0.0...
Patching component oracle.rdbms, 23.0.0.0.0...
Patching component oracle.rdbms.crs, 23.0.0.0.0...
Patching component oracle.rdbms.db, 23.0.0.0.0...
Patching component oracle.rdbms.dbcur, 23.0.0.0.0...
Patching component oracle.rdbms.dbscripts, 23.0.0.0.0...
Patching component oracle.rdbms.deconfig, 23.0.0.0.0...
Patching component oracle.rdbms.dm, 23.0.0.0.0...
Patching component oracle.rdbms.dv, 23.0.0.0.0...
Patching component oracle.rdbms.hs_common, 23.0.0.0.0...
Patching component oracle.rdbms.hsodbc, 23.0.0.0.0...
Patching component oracle.rdbms.install.common, 23.0.0.0.0...
Patching component oracle.rdbms.install.plugins, 23.0.0.0.0...
Patching component oracle.rdbms.install.seeddb, 23.0.0.0.0...
Patching component oracle.rdbms.lbac, 23.0.0.0.0...
Patching component oracle.rdbms.locator, 23.0.0.0.0...
Patching component oracle.rdbms.oci, 23.0.0.0.0...
Patching component oracle.rdbms.olap, 23.0.0.0.0...
Patching component oracle.rdbms.plsql, 23.0.0.0.0...
Patching component oracle.rdbms.rat, 23.0.0.0.0...
Patching component oracle.rdbms.rman, 23.0.0.0.0...
Patching component oracle.rdbms.rsf, 23.0.0.0.0...
Patching component oracle.rdbms.rsf.ic, 23.0.0.0.0...
Patching component oracle.rdbms.scheduler, 23.0.0.0.0...
Patching component oracle.rdbms.util, 23.0.0.0.0...
Patching component oracle.rhp.common, 23.0.0.0.0...
Patching component oracle.rhp.db, 23.0.0.0.0...
Patching component oracle.rsf, 23.0.0.0.0...
Patching component oracle.sdo, 23.0.0.0.0...
Patching component oracle.sdo.locator, 23.0.0.0.0...
Patching component oracle.sdo.locator.jrf, 23.0.0.0.0...
Patching component oracle.server, 23.0.0.0.0...
Patching component oracle.slax.rsf, 23.0.0.0.0...
Patching component oracle.sqlj.sqljruntime, 23.0.0.0.0...
Patching component oracle.sqlplus, 23.0.0.0.0...
Patching component oracle.sqlplus.ic, 23.0.0.0.0...
Patching component oracle.sqlplus.rsf, 23.0.0.0.0...
Patching component oracle.tfa.db, 23.0.0.0.0...
Patching component oracle.usm.deconfig, 23.0.0.0.0...
Patching component oracle.wwg.plsql, 23.0.0.0.0...
Patching component oracle.xdk, 23.0.0.0.0...
Patching component oracle.xdk.parser.java, 23.0.0.0.0...
Patching component oracle.xdk.rsf, 23.0.0.0.0...
Patching component oracle.xdk.server, 23.0.0.0.0...
Patching component oracle.xdk.xquery, 23.0.0.0.0...
Patch 39093711 successfully applied.
Sub-set patch [38743669] has become inactive due to the application of a super-set patch [39093711].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /app/oracle/product/26ai/cfgtoollogs/opatch/opatch2026-05-01_22-32-46PM_1.log
OPatch succeeded.
|
패치 완료됨
22시 32분에 시작해서 23시 11분에 끝남(opatch apply에만 약 40분이 소요됨)
패치 후 작업
이제 패치된(수정된) sql 파일을 db에 로드해야함
cdb 및 pdb 기동
|
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
|
SQL> startup
ORACLE instance started.
Total System Global Area 1574163776 bytes
Fixed Size 5027136 bytes
Variable Size 704643072 bytes
Database Buffers 738197504 bytes
Redo Buffers 8855552 bytes
Vector Memory Area 117440512 bytes
Database mounted.
Database opened.
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>
set lines 200 pages 1000
col name for a20
select con_id, name, open_mode, dbid from v$containers;
CON_ID NAME OPEN_MODE DBID
---------- -------------------- ---------- ----------
1 CDB$ROOT READ WRITE 2077031747
2 PDB$SEED READ ONLY 1753431394
3 ORACLE26PDB1 MOUNTED 4055234625
SQL> alter pluggable database oracle26pdb1 open;
Pluggable database altered.
|
pdb가 여러개인 경우 alter pluggable database all open; 수행
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
100
101
102
103
104
105
106
107
108
109
110
111
112
|
$ ./datapatch -sanity_checks
SQL Patching sanity checks version 23.26.2.0.0 on Fri 01 May 2026 11:27:30 PM KST
Copyright (c) 2021, 2026, Oracle. All rights reserved.
Log file for this invocation: /app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260501_232730_522327/sanity_checks_20260501_232730_522327.log
Running checks
JSON report generated in /app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260501_232730_522327/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 - WARNING
Patching the database without recent data dictionary statistics gathered may lead to performance issues.
Data dictionary statistics are older than 7 days.
Run the following queries to start gathering the dictionary statistics:
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
EXEC DBMS_SYSTEM.GATHER_FIXED_OBJECTS_STATS;
Refer to MOS 457926.1 for more details.
CDB$ROOT:
| LATEST | OPERATION | STATUS |
|-----------------+-------------------------+-----------|
| 06-APR-26 12:08 | gather_dictionary_stats | COMPLETED |
|-----------------+-------------------------+-----------|
ORACLE26PDB1:
| LATEST | OPERATION | STATUS |
|-----------------+-------------------------+-----------|
| 06-APR-26 12:08 | gather_dictionary_stats | COMPLETED |
|-----------------+-------------------------+-----------|
PDB$SEED:
| LATEST | OPERATION | STATUS |
|-----------------+-------------------------+-----------|
| 06-APR-26 12:08 | gather_dictionary_stats | COMPLETED |
|-----------------+-------------------------+-----------|
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.
If you experience Datapatch errors caused by locking in the database, consider patching the database when jobs are not running or preventing jobs from starting.
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;
CDB$ROOT:
| SCHEMA_NAME | JOB_NAME | STATE | NEXT_RUN_DATE |
|-------------+--------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_NON_EXIST_OBJ | SCHEDULED | 02-MAY-26 12.10.51.779294 AM +09:00 |
|-------------+--------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_ONLINE_IND_BUILD | SCHEDULED | 01-MAY-26 11.27.43.316105 PM +09:00 |
|-------------+--------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_ONLINE_PMO | SCHEDULED | 01-MAY-26 11.28.23.273603 PM +09:00 |
|-------------+--------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_TAB_IOT_PMO | SCHEDULED | 01-MAY-26 11.27.53.273275 PM +09:00 |
|-------------+--------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_TRANSIENT_PKG | SCHEDULED | 01-MAY-26 11.28.13.000000 PM +09:00 |
|-------------+--------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_TRANSIENT_TYPE | SCHEDULED | 02-MAY-26 12.10.50.147288 AM +09:00 |
|-------------+--------------------------+-----------+-------------------------------------|
ORACLE26PDB1:
| SCHEMA_NAME | JOB_NAME | STATE | NEXT_RUN_DATE |
|-------------+-----------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_ONLINE_IND_BUILD | SCHEDULED | 01-MAY-26 11.54.43.277165 PM +09:00 |
|-------------+-----------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_ONLINE_PMO | SCHEDULED | 01-MAY-26 11.55.23.277338 PM +09:00 |
|-------------+-----------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_TAB_IOT_PMO | SCHEDULED | 01-MAY-26 11.54.53.301724 PM +09:00 |
|-------------+-----------------------------+-----------+-------------------------------------|
| SYS | CLEANUP_TRANSIENT_PKG | SCHEDULED | 01-MAY-26 11.55.13.000000 PM +09:00 |
|-------------+-----------------------------+-----------+-------------------------------------|
| SYS | OBJNUM_REUSE_MAINTAIN_JOB$$ | SCHEDULED | 01-MAY-26 11.52.46.278857 PM +09:00 |
|-------------+-----------------------------+-----------+-------------------------------------|
Check: GoldenGate triggers - OK
Check: GoldenGate Integrated Extract/Replicat - 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: Java Virtual Machine Enable - OK
Check: Oracle Database Vault Enabled - OK
Check: Duplicated ORACLE_HOME values - SKIPPED
Message: Skipped as Sanity Checks are running on a non-RAC environment.
Check: Recyclebin Empty - OK
Check: Central Inventory - OK
Check: Queryable Inventory locks - OK
Check: Queryable Inventory database directories - SKIPPED
Message: Skipped as Sanity Checks are running on a non-RAC environment.
Check: Queryable Inventory external table - SKIPPED
Message: Skipped as Sanity Checks are running on a non-RAC environment.
Check: Queryable Inventory package - SKIPPED
Message: Skipped as Sanity Checks are running on a non-RAC environment.
Check: Imperva processes - OK
Check: Guardium processes - OK
Check: Locale - OK
Refer to MOS Note 2975965.1 and debug log
/app/oracle/cfgtoollogs/sqlpatch/sanity_checks_20260501_232730_522327/sanity_checks_debug_20260501_232730_522327.log
SQL Patching sanity checks completed on Fri 01 May 2026 11:27:43 PM KST
|
sanity_checks 완료됨
dictionary 통계와 fixed objects 통계가 오래되어 datapatch시 느려질수 있다고 표시됨
수집하라고 나오지만 이번엔 하지 않음
opatch lspatches 확인
|
1
2
3
4
5
|
$ opatch lspatches
39093711;Database Release Update : 23.26.2.0.0 (39093711)
38743688;OCW RELEASE UPDATE 23.26.1.0.0 (GOLD IMAGE) (38743688) Gold Image
OPatch succeeded.
|
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
$ ./datapatch -verbose
SQL Patching tool version 23.26.2.0.0 Production on Fri May 1 23:30:18 2026
Copyright (c) 2012, 2026, Oracle. All rights reserved.
Log file for this invocation: /app/oracle/product/26ai/cfgtoollogs/sqlpatch/sqlpatch_sid_ORACLE26_ts_2026_05_01_23_30_18_pid_523387/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:
23.26.2.0.0 Release_Update 260428181725: Installed
PDB CDB$ROOT:
Applied 23.26.1.0.0 Release_Update 260117080636 successfully on 06-APR-26 12.08.38.747147 PM
PDB ORACLE26PDB1:
Applied 23.26.1.0.0 Release_Update 260117080636 successfully on 06-APR-26 12.08.38.867754 PM
PDB PDB$SEED:
Applied 23.26.1.0.0 Release_Update 260117080636 successfully on 06-APR-26 12.08.38.867754 PM
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: CDB$ROOT PDB$SEED ORACLE26PDB1
No interim patches need to be rolled back
Patch 39093711 (Database Release Update : 23.26.2.0.0 (39093711)):
Apply from 23.26.1.0.0 Release_Update 260117080636 to 23.26.2.0.0 Release_Update 260428181725
No interim patches need to be applied
Installing patches...
Patch installation complete. Total patches installed: 3
Validating logfiles...done
Patch 39093711 apply (pdb CDB$ROOT): SUCCESS
logfile: /app/oracle/product/26ai/cfgtoollogs/sqlpatch/sqlpatch_sid_ORACLE26_ts_2026_05_01_23_30_18_pid_523387/39093711_apply_ORACLE26_CDBROOT_2026May01_23_30_55.log (no errors)
Patch 39093711 apply (pdb PDB$SEED): SUCCESS
logfile: /app/oracle/product/26ai/cfgtoollogs/sqlpatch/sqlpatch_sid_ORACLE26_ts_2026_05_01_23_30_18_pid_523387/39093711_apply_ORACLE26_PDBSEED_2026May01_23_34_25.log (no errors)
Patch 39093711 apply (pdb ORACLE26PDB1): SUCCESS
logfile: /app/oracle/product/26ai/cfgtoollogs/sqlpatch/sqlpatch_sid_ORACLE26_ts_2026_05_01_23_30_18_pid_523387/39093711_apply_ORACLE26_ORACLE26PDB1_2026May01_23_34_25.log (no errors)
SQL Patching tool complete on Fri May 1 23:36:54 2026
|
cdb, pdb, pdbseed 모두 datapatch가 완료됨
23시 30분에 시작해서 23시 36분에 완료됨(6분 소요됨)
패치 내역 확인
|
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
|
$ sqlplus / as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter session set "_exclude_seed_cdb_view" = false;
Session altered.
SQL>
set lines 200 pages 1000
col con_name for a15
col action_time for a20
col action for a10
col status for a10
col description for a60
col version for a10
select (select name from v$containers where con_id = crs.con_id) con_name,
to_char(action_time, 'yyyy/mm/dd hh24:mi:ss') as action_time
,action ,status ,description ,source_version ,target_version ,patch_id
from cdb_registry_sqlpatch crs
order by action_time;
CON_NAME ACTION_TIME ACTION STATUS DESCRIPTION SOURCE_VERSION TARGET_VERSION PATCH_ID
--------------- -------------------- ---------- ---------- ------------------------------------------------------------ --------------- --------------- ----------
CDB$ROOT 2026/04/06 12:08:38 APPLY SUCCESS Database Release Update : 23.26.1.0.0 (38743669) Gold Image 23.26.1.0.0 23.26.1.0.0 38743669
PDB$SEED 2026/04/06 12:08:38 APPLY SUCCESS Database Release Update : 23.26.1.0.0 (38743669) Gold Image 23.26.1.0.0 23.26.1.0.0 38743669
ORACLE26PDB1 2026/04/06 12:08:38 APPLY SUCCESS Database Release Update : 23.26.1.0.0 (38743669) Gold Image 23.26.1.0.0 23.26.1.0.0 38743669
CDB$ROOT 2026/05/01 23:33:40 APPLY SUCCESS Database Release Update : 23.26.2.0.0 (39093711) 23.26.1.0.0 23.26.2.0.0 39093711
ORACLE26PDB1 2026/05/01 23:36:01 APPLY SUCCESS Database Release Update : 23.26.2.0.0 (39093711) 23.26.1.0.0 23.26.2.0.0 39093711
PDB$SEED 2026/05/01 23:36:01 APPLY SUCCESS Database Release Update : 23.26.2.0.0 (39093711) 23.26.1.0.0 23.26.2.0.0 39093711
6 rows selected.
|
cdb, pdb, pdbseed 모두 정상적으로 패치됨
리스너 기동 및 register(선택)
|
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
|
$ lsnrctl start
LSNRCTL for Linux: Version 23.26.2.0.0 - Production on 01-MAY-2026 23:50:50
Copyright (c) 1991, 2026, Oracle. All rights reserved.
Starting /app/oracle/product/26ai/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 23.26.2.0.0 - Production
System parameter file is /app/oracle/product/26ai/network/admin/listener.ora
Log messages written to /app/oracle/diag/tnslsnr/ora26/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora26)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora26)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 23.26.2.0.0 - Production
Start Date 01-MAY-2026 23:50:51
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/26ai/network/admin/listener.ora
Listener Log File /app/oracle/diag/tnslsnr/ora26/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora26)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
$ sqlplus / as sysdba
SQL> alter system register;
System altered.
|
리스너 재확인
|
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
|
$ lsnrctl status
LSNRCTL for Linux: Version 23.26.2.0.0 - Production on 01-MAY-2026 23:51:00
Copyright (c) 1991, 2026, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora26)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 23.26.2.0.0 - Production
Start Date 01-MAY-2026 23:50:51
Uptime 0 days 0 hr. 0 min. 9 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/26ai/network/admin/listener.ora
Listener Log File /app/oracle/diag/tnslsnr/ora26/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora26)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "50c255987c687663e063a565460adc76" has 1 instance(s).
Instance "ORACLE26", status READY, has 1 handler(s) for this service...
Service "ORACLE26" has 1 instance(s).
Instance "ORACLE26", status READY, has 1 handler(s) for this service...
Service "ORACLE26XDB" has 1 instance(s).
Instance "ORACLE26", status READY, has 1 handler(s) for this service...
Service "oracle26pdb1" has 1 instance(s).
Instance "ORACLE26", status READY, has 1 handler(s) for this service...
The command completed successfully
|
정상적으로 서비스가 붙음
rman 카탈로그를 사용하는 경우 카탈로그도 업데이트(나의 경우는 아님)
|
1
2
3
4
|
$ rman catalog username/password@alias
RMAN> upgrade catalog;
RMAN> upgrade catalog;
RMAN> exit;
|
이후 타임존 업그레이드를 수행해줘야함
롤백이 필요한 경우 아래 가이드를 참고하여 롤백 가능함
19c 버전 가이드이지만 크게 다른건 없음
참고 : Oracle 19c Single OPatch Release Update 롤백 가이드 ( https://positivemh.tistory.com/581 )
간편 가이드
|
1
2
3
4
5
6
7
8
9
10
11
|
1. cdb, pdb, 리스너 모두 종료
2. opatch rollback 수행
$ opatch rollback -id 39093711
3. db 전체 기동
SQL>
startup
alter pluggable database all open;
4. datapatch 수행
$ cd $ORACLE_HOME/OPatch
$ ./datapatch -verbose
5. cdb_registry_sqlpatch 뷰 확인
|
참조 :
오라클 패치 정보를 조회할 수 있는 뷰 DBA_REGISTRY_SQLPATCH ( https://positivemh.tistory.com/175 )
Oracle 19c Single OPatch Release Update 롤백 가이드 ( https://positivemh.tistory.com/581 )
Oracle Linux 9.6에 Oracle 26ai 설치 가이드 ( https://positivemh.tistory.com/1329 )
https://www.br8dba.com/apply-ru-on-database-12-2/#9
Multitenant - CDB/PDB - Upgrading DST using scripts - 12.2 and above - ( With Example Test Case - 19.11 )(KB120781)
'ORACLE > Install' 카테고리의 다른 글
| 오라클 19c 설치 시 gui 창 띄우는 방법 (0) | 2026.04.28 |
|---|---|
| VirtualBox에 Oracle 26ai Free 로드 가이드 (0) | 2026.04.06 |
| Oracle Linux 9.6에 Oracle 26ai Free RPM 설치 가이드 (0) | 2026.03.25 |
| Oracle Linux 9.6에 Oracle 26ai 설치 가이드 (2) | 2026.01.30 |
| 오라클 19c grid 골드 이미지 생성 및 배포 가이드 (0) | 2026.01.19 |
