프린트 하기

OS 환경 : Oracle Linux 9.6 (64bit)

 

DB 환경 : Oracle AI Database 19.27, 23.26.1.0.0 ai

 

에러 : autoupgrade.jar UPG-1400 UPGRADE FAILED [ORA19DBFS]

오라클 19c에서 26ai로 autoupgrade를 이용해 업그레이드 하던 도중 발생한 에러
참고 : 오라클 19c to 26ai Autoupgrade Refreshable Pluggable Database 이용 업그레이드 ( https://positivemh.tistory.com/1336 )

 

 

autoupgrade 배포 수행(타겟 db에서 수행)

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
$ cd /home/oracle
$ java -jar autoupgrade.jar -config ORA19DBFS.cfg -mode deploy
upg> Copying remote database 'ORA19DBF' as 'MIGPDB' for job 100
...
upg> proceed -job 100
New start time for job 100 is scheduled 0 minute(s) from now, at 03/01/2026 09:50:40
upg> lsh -a 30
Unrecognized cmd: lsh -a 30
upg> lsj -a 30
upg> +----+---------+----------+---------+-------+----------+-------+-------------------+
|Job#|  DB_NAME|     STAGE|OPERATION| STATUS|START_TIME|UPDATED|            MESSAGE|
+----+---------+----------+---------+-------+----------+-------+-------------------+
| 100|ORA19DBFS|REFRESHPDB|EXECUTING|RUNNING|  09:50:40| 0s ago|Starts in 0 minutes|
+----+---------+----------+---------+-------+----------+-------+-------------------+
Total jobs 1
 
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+---------+---------+---------+-------+----------+-------+-------+
|Job#|  DB_NAME|    STAGE|OPERATION| STATUS|START_TIME|UPDATED|MESSAGE|
+----+---------+---------+---------+-------+----------+-------+-------+
| 100|ORA19DBFS|DBUPGRADE|EXECUTING|RUNNING|  09:50:40| 0s ago|Running|
+----+---------+---------+---------+-------+----------+-------+-------+
Total jobs 1
 
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
 
-------------------------------------------------
Errors in database [ORA19DBFS]
Stage     [DBUPGRADE]
Operation [STOPPED]
Status    [ERROR]
Info    [
Error: UPG-1400
UPGRADE FAILED [ORA19DBFS]
Cause: Database job failed with errors
For further details, see the log file located at /home/oracle/autoupgrade/log/ORA19DBFS/100/autoupgrade_20260201_user.log]
 
-------------------------------------------------
Logs: [/home/oracle/autoupgrade/log/ORA19DBFS/100/autoupgrade_20260201_user.log]
-------------------------------------------------+----+---------+---------+---------+------+----------+-------+--------+
|Job#|  DB_NAME|    STAGE|OPERATION|STATUS|START_TIME|UPDATED| MESSAGE|
+----+---------+---------+---------+------+----------+-------+--------+
| 100|ORA19DBFS|DBUPGRADE|  STOPPED| ERROR|  09:50:40|       |UPG-1400|
+----+---------+---------+---------+------+----------+-------+--------+
Total jobs 1
 
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT

에러 발생하며 실패함

 

 

업그레이드 로그 확인

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
$ vi /home/oracle/autoupgrade/log/ORA19DBFS/100/autoupgrade_20301230.log
2026-02-01 09:51:00.138 INFO [107] [F740E3] Starting - ExecuteProcess.destroyProcess#968
2026-02-01 09:51:00.138 INFO [107] [F740E3] BeginExiting process - ExecuteProcess.destroyProcess#971
2026-02-01 09:51:00.138 INFO [107] [F740E3] EndExiting process - ExecuteProcess.destroyProcess#973
2026-02-01 09:51:00.139 INFO [107] [F740E3] Finished - ExecuteProcess.destroyProcess#975
2026-02-01 09:51:00.139 INFO [107] [F740E3] Finished - ExecuteProcess.doCmds#957
...
2026-02-01 09:51:00.143 INFO [107] The status of the JobStageAction [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteDbUpgrade] was [false] - JobStage.executeStage#86
2026-02-01 09:51:00.143 INFO [107] Stopping background threads for [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteDbUpgrade] - JobStage.stopThreads#169
2026-02-01 09:51:00.144 INFO [107] Completed stopping background threads for [oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteDbUpgrade] - JobStage.stopThreads#171
2026-02-01 09:51:00.145 INFO [107] Stopping background threads for Job - JobDefinition.stopJobThreads#132
2026-02-01 09:51:00.145 INFO [107] [0] threads have been stopped by JobDefinition - JobDefinition.stopJobThreads#134
2026-02-01 09:51:00.145 INFO [107] Dispatcher finished for 100 - RunJobDefinition.runJob#177
2026-02-01 09:51:00.145 INFO [107] End - RunJobDefinition.runJob#178
2026-02-01 09:51:00.146 ERROR [107] Dispatcher failed: UPGRADE FAILED [ORA19DBFS] - AutoUpgDispatcher.run_#270
oracle.upgrade.autoupgrade.utils.errors.UPG1400: UPGRADE FAILED [ORA19DBFS]
        at oracle.upgrade.autoupgrade.dbupgrade.DbUpgrade.upgradeDriver(DbUpgrade.java:506)
        at oracle.upgrade.autoupgrade.dbupgrade.DbUpgrade.upgradeStartUp(DbUpgrade.java:349)
        at oracle.upgrade.autoupgrade.dbupgrade.AutoUpgrade.runDBUpgrade(AutoUpgrade.java:150)
        at oracle.upgrade.autoupgrade.dispatcher.facade.subsystems.ExecuteDbUpgrade.executeStage(ExecuteDbUpgrade.java:100)
        at oracle.commons.dispatcher.JobStage.executeStage(JobStage.java:80)
        at oracle.commons.dispatcher.RunJobDefinition.runJob(RunJobDefinition.java:144)
        at oracle.upgrade.autoupgrade.dispatcher.v2.def.RunAutoUpgradeJob.executeDispatcher(RunAutoUpgradeJob.java:65)
        at oracle.upgrade.autoupgrade.dispatcher.AutoUpgDispatcher.run_(AutoUpgDispatcher.java:262)
        at oracle.upgrade.autoupgrade.dispatcher.AutoUpgDispatcher.run(AutoUpgDispatcher.java:245)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)
2026-02-01 09:51:00.178 ERROR [107] Error running dispatcher for job 100
Cause: Database job failed with errors - AutoUpgDispatcher.errorHandling#309
2026-02-01 09:51:00.179 ERROR [107] Dispatcher failed:
Error: UPG-1400
UPGRADE FAILED [ORA19DBFS]
Cause: Database job failed with errors
For further details, see the log file located at /home/oracle/autoupgrade/log/ORA19DBFS/100/autoupgrade_20260201_user.log; stopping job 100 for database ORA19DBFS - AutoUpgDispatcher.errorHandling#345
2026-02-01 09:51:00.185 ERROR [107] UPGRADE FAILED [ORA19DBFS] - AutoUpgDispatcher.updateStatusReport#406
2026-02-01 09:51:00.195 INFO [107] ----------------------Stages  Summary------------------------ - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     SETUP             <1 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     PREUPGRADE        <1 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     DRAIN             <1 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     CLONEPDB          <1 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     REFRESHPDB        22 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     DISPATCH          <1 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     DISPATCH          <1 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107]     DBUPGRADE         <1 min                                  - Utilities.writeStageSummary#1149
2026-02-01 09:51:00.195 INFO [107] End of dispatcher instance for ORA19DBFS - CommonBackBone.finalJobLogging#436

 

 

alert log 확인

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
$ vi /app/oracle/diag/rdbms/oracle26/ORACLE26/trace/alert_ORACLE26.log
****************************************************************
Post plug operations are now complete.
Pluggable database MIGPDB with pdb id - 4 is now marked as NEW.
****************************************************************
MIGPDB(4):Pluggable database MIGPDB dictionary check beginning
MIGPDB(4):Pluggable Database MIGPDB Dictionary check complete
MIGPDB(4):Resource Manager disabled during database migration: plan '''' not set
MIGPDB(4):--ATTENTION--
MIGPDB(4):Daylight Saving Time (DST) feature is disabled due to missing primary time zone version file: /app/oracle/product/26ai/oracore/zoneinfo/timezlrg_44.dat
2026-02-01T09:50:48.047166+09:00
MIGPDB(4):Opening pdb with Resource Manager plan: ''
MIGPDB(4):--ATTENTION--
MIGPDB(4):The Resource Manager plan "''" specified by parameter RESOURCE_MANAGER_PLAN does not exist.
MIGPDB(4):Due to ORA-7452, INTERNAL_PLAN enabled instead
MIGPDB(4):joxcsys_required_dirobj_exists: directory object exists with wrong path /app/oracle/product/19c/javavm/admin/, required path is /app/oracle/product/26ai/javavm/admin/, pid 65247 cid 4
MIGPDB(4):joxcsys_ensure_directory_object: created directory object with path /app/oracle/product/26ai/javavm/admin/, pid 65247 cid 4
Completed: Pluggable database MIGPDB opened in upgrade mode
Completed: alter pluggable database "MIGPDB"  open upgrade
2026-02-01T09:50:49.727759+09:00
alter pluggable database "MIGPDB" close immediate instances=all
MIGPDB(4):JIT: pid 65269 requesting stop
2026-02-01T09:50:50.873791+09:00
MIGPDB(4):Buffer Cache flush started: 4
MIGPDB(4):Buffer Cache flush finished: 4
2026-02-01T09:50:50.964224+09:00
Completed: Pluggable database MIGPDB closed services=None
Completed: alter pluggable database "MIGPDB" close immediate instances=all

RESOURCE_MANAGER_PLAN does not exist 메세지가 발생했음

 

 

다른 로그도 확인

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
$ vi /home/oracle/autoupgrade/log/ORA19DBFS/100/dbupgrade/catupgrd20260201092809migpdb0.log
Elapsed: 00:00:00.00
10:17:42 SQL>
10:17:42 SQL>
10:17:42 SQL> DOC
10:17:42 DOC>#######################################################################
10:17:42 DOC>#######################################################################
10:17:42 DOC>   The following statement will cause an ORA-62430 and terminate the
10:17:42 DOC>   db upgrade for check "MUST_PATCH_TIMEZONE_FILE_VERSION_ON_NEW_ORACLE_HOME"
10:17:42 DOC>   IF:
10:17:42 DOC>    (1) the old release uses a time zone file version newer than the
10:17:42 DOC>        one shipped with the new oracle release
10:17:42 DOC>    and
10:17:42 DOC>    (2) the new oracle home has not been patched yet
10:17:42 DOC>
10:17:42 DOC>     o Action:
10:17:42 DOC>       Shutdown database (do "alter system checkpoint" first).
10:17:42 DOC>       Patch new ORACLE_HOME to the same time zone file version as used
10:17:42 DOC>       in the old ORACLE_HOME.
10:17:42 DOC>
10:17:42 DOC>#######################################################################
10:17:42 DOC>#######################################################################
10:17:42 DOC>#
10:17:42 SQL>
10:17:42 SQL> Rem Check if time zone file version used by the database exists in new home
10:17:42 SQL> SELECT
10:17:42   2   SYS_OP_DBUPGRADE_CHECK('MUST_PATCH_TIMEZONE_FILE_VERSION_ON_NEW_ORACLE_HOME')
10:17:42   3  FROM sys.props$
10:17:42   4  WHERE
10:17:42   5    (
10:17:42   6     (name = 'DST_PRIMARY_TT_VERSION' AND TO_NUMBER(value$) > &C_LTZ_CONTENT_VER)
10:17:42   7     AND
10:17:42   8     (0 = (select count(*) from sys.v$timezone_file))
10:17:42   9    );
old   6:    (name = 'DST_PRIMARY_TT_VERSION' AND TO_NUMBER(value$) > &C_LTZ_CONTENT_VER)
new   6:    (name = 'DST_PRIMARY_TT_VERSION' AND TO_NUMBER(value$) > 43)
ERROR:
ORA-62430: DB upgrade terminating due to check
"MUST_PATCH_TIMEZONE_FILE_VERSION_ON_NEW_ORACLE_HOME" not having been addressed
before upgrading
Help: https://docs.oracle.com/error-help/db/ora-62430/
 
 
Disconnected from Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production
Version 23.26.1.0.0
 
Start of Trace Message
------------------------------------------------------
 
 
Unexpected error encountered in catctlMain; Error Stack Below; exiting
Died at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 10134.
 at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 10134.
        main::catctlDie("\x{a}Unexpected error encountered in catconExec; exiting\x{a} No such"...) called at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 6524
        main::catctlExecutePhaseFiles(0, 1, "MIGPDB", "", undef) called at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 2774
        main::catctlRunPhase(0, 1, "MIGPDB", "", undef) called at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 2920
        main::catctlRunPhases(0, 108, 108, "MIGPDB", "", undef) called at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 3553
        main::catctlRunMainPhases() called at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 1679
        main::catctlMain() called at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 1580
        eval {...} called at /app/oracle/product/26ai/rdbms/admin/catctl.pl line 1578

타임존 업그레이드 체크중 문제가 발생한듯함

 

 

일단 업그레이드 중지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
upg> exit
There is 1 job in progress. if you exit it will stop
Are you sure you wish to leave? [y|N] y
------------------- Final Summary --------------------
Number of databases            [ 1 ]
 
Jobs finished                  [0]
Jobs failed                    [1]
Jobs restored                  [0]
Jobs pending                   [0]
-------------------- JOBS FAILED ---------------------
Job 100 for ORA19DBFS
 
Please check the summary report at:
/home/oracle/autoupgrade/log/cfgtoollogs/upgrade/auto/status/status.html
/home/oracle/autoupgrade/log/cfgtoollogs/upgrade/auto/status/status.log
Create a zip file of log files by using the following command. Zipped up log files are required for filing a service request.
java -jar autoupgrade.jar -config /home/oracle/ORA19DBFS.cfg -zip
Exiting

종료됨

 

 

타임존 버전 확인(소스 db에서 수행)

1
2
3
4
5
SQL> select * from v$timezone_file;
 
FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_43.dat              44          0

 

 

타임존 버전 확인(타겟 db에서 수행)

1
2
3
4
5
SQL> select * from v$timezone_file;
 
FILENAME                VERSION     CON_ID
-------------------- ---------- ----------
timezlrg_43.dat              43          0

타겟db는 타임존 버전이 43인데 소스db가 44임

 

 

해결 : 26ai의 타임존 업그레이드 수행 후 autoupgrade 수행

먼저 타겟db 타임존 버전을 업그레이드 해줘야함
스캐줄러 로그 정리(타겟 db에서 수행)

1
2
3
SQL> exec dbms_scheduler.purge_log;
 
PL/SQL procedure successfully completed.

 

 

37537949 타임존 DST 44 패치 다운로드
https://support.oracle.com/support/?patchId=37537949

 

 

37537949 패치파일 압축 해제

1
2
$ cd /app/oracle/media/
$ unzip -q p37537949_230000_Linux-x86-64.zip

 

 

db 및 리스너 종료

1
2
SQL> shutdown immediate
$ lsnrctl stop

 

 

37537949 패치 적용

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
$ cd 37537949/
$ $ORACLE_HOME/OPatch/opatch apply -local
Oracle Interim Patch Installer version 12.2.0.1.48
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.48
OUI version       : 12.2.0.9.0
Log file location : /app/oracle/product/26ai/cfgtoollogs/opatch/opatch2026-02-24_20-57-36PM_1.log
 
Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   37537949
 
Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Backing up files...
Applying interim patch '37537949' to OH '/app/oracle/product/26ai'
 
Patching component oracle.oracore.rsf, 23.0.0.0.0...
Patch 37537949 successfully applied.
Log file location: /app/oracle/product/26ai/cfgtoollogs/opatch/opatch2026-02-24_20-57-36PM_1.log
 
OPatch succeeded.

 

 

db 기동

1
SQL> startup

 

 

타임존 업그레이드
스캐줄러 로그 삭제

1
2
3
SQL> exec dbms_scheduler.purge_log;
 
PL/SQL procedure successfully completed.

 

 

통계정보 로그 확인

1
2
3
4
5
6
7
8
9
10
11
SQL> select count(*) from SYS.WRI$_OPTSTAT_HISTGRM_HISTORY;
 
  COUNT(*)
----------
     38716
 
SQL> select count(*) from SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY;
 
  COUNT(*)
----------
     44558

 

 

통계 보관 기간 확인

1
2
3
4
5
SQL> select systimestamp - dbms_stats.get_stats_history_availability from dual;
 
SYSTIMESTAMP-DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY
---------------------------------------------------------------------------
+000000000 04:38:02.969810000

 

 

통계 보관기간 0으로 변경

1
2
3
SQL> exec dbms_stats.alter_stats_history_retention(0);
 
PL/SQL procedure successfully completed.

 

 

systimestamp 모든 통계 제거

1
2
3
SQL> exec DBMS_STATS.PURGE_STATS(systimestamp);
 
PL/SQL procedure successfully completed.

 

 

통계정보 로그 확인

1
2
3
4
5
6
7
8
9
10
11
SQL> select count(*) from SYS.WRI$_OPTSTAT_HISTGRM_HISTORY;
 
  COUNT(*)
----------
         0
 
SQL> select count(*) from SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY;
 
  COUNT(*)
----------
         0

모두 0이됨

 

 

타임존 업그레이드 전 확인

1
2
3
4
5
6
7
8
SQL> 
SET SERVEROUTPUT ON;
exec DBMS_DST.BEGIN_PREPARE(44);
exec DBMS_DST.FIND_AFFECTED_TABLES;
select * from SYS.DST$AFFECTED_TABLES;
select * from SYS.DST$ERROR_TABLE;
select * from SYS.DST$TRIGGER_TABLE;
exec DBMS_DST.END_PREPARE;

 

 

PDB가 기동중이라면 종료

1
2
3
SQL> alter pluggable database all close
 
Pluggable database altered.

 

 

온라인 타임존 업그레이드 파라미터 활성화

1
2
3
SQL> alter system set timezone_version_upgrade_online=true;
 
System altered.

 

 

타임존 업그레이드 BEGIN_UPGRADE 수행

1
2
3
SQL> EXEC DBMS_DST.BEGIN_UPGRADE(44);
 
PL/SQL procedure successfully completed.

 

 

database_properties 뷰 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> 
col PROPERTY_NAME for a30
col PROPERTY_VALUE for a20
select property_name, property_value
from database_properties
where property_name like 'DST_%'
order by property_name;
 
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         44
DST_SECONDARY_TT_VERSION       43
DST_UPGRADE_STATE              NEEDRESTART

현재 재기동이 필요함

 

 

db 재기동

1
2
3
SQL> 
shutdown immediate
startup

 

 

타임존 업그레이드 UPGRADE_DATABASE 수행

1
2
3
4
5
6
7
8
9
SQL> 
SET SERVEROUTPUT ON;
DECLARE
  failed_num PLS_INTEGER;
BEGIN
  DBMS_DST.UPGRADE_DATABASE(failed_num);
  DBMS_OUTPUT.PUT_LINE('DBMS_DST.UPGRADE_DATABASE : ' || failed_num);
END;
/

 

 

타임존 업그레이드 END_UPGRADE 수행

1
2
3
4
5
6
7
8
9
SQL>
SET SERVEROUTPUT ON;
DECLARE
  failed_num PLS_INTEGER;
BEGIN
  DBMS_DST.END_UPGRADE(failed_num);
  DBMS_OUTPUT.PUT_LINE('DBMS_DST.END_UPGRADE : ' || failed_num);
END;
/

 

 

database_properties 뷰 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> 
col PROPERTY_NAME for a30
col PROPERTY_VALUE for a20
select property_name, property_value
from database_properties
where property_name like 'DST_%'
order by property_name;
 
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DST_PRIMARY_TT_VERSION         44
DST_SECONDARY_TT_VERSION       0
DST_UPGRADE_STATE              NONE

44로 업그레이드됨

 

 

타임존 업글 후 통계 보관기간 원복

1
2
3
SQL> exec dbms_stats.alter_stats_history_retention(31);
 
PL/SQL procedure successfully completed.

 

 

다시 autoupgrade 시도

1
2
3
4
5
6
7
8
9
10
$ java -jar autoupgrade.jar -config ORA19DBFS.cfg -mode deploy
AutoUpgrade 25.6.251016 launched with default internal options
Processing config file ...
Creating new AutoUpgrade keystore
AutoUpgrade keystore was successfully created
 
There were conditions found preventing AutoUpgrade from successfully running
 
*Target CDB availability
Database ORACLE26 already contains a pdb named MIGPDB, which is defined by the target_pdb_name parameter for database ORA19DBFS

migdb가 이미 존재한다고 제거가 안됨

 

 

migdb 제거

1
2
3
SQL> drop pluggable database migpdb including datafiles;
 
Pluggable database dropped.

 

 

다시 autoupgrade 재시도

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
$ java -jar autoupgrade.jar -config ORA19DBFS.cfg -mode deploy
AutoUpgrade 25.6.251016 launched with default internal options
Processing config file ...
Creating new AutoUpgrade keystore
AutoUpgrade keystore was successfully created
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 Non-CDB(s) will be processed
Type 'help' to list console commands
upg> Copying remote database 'ORA19DBF' as 'MIGPDB' for job 100
 
upg> lsj -a 30
upg> +----+---------+--------+---------+-------+----------+-------+---------------------------+
|Job#|  DB_NAME|   STAGE|OPERATION| STATUS|START_TIME|UPDATED|                    MESSAGE|
+----+---------+--------+---------+-------+----------+-------+---------------------------+
| 100|ORA19DBFS|CLONEPDB|EXECUTING|RUNNING|  00:00:00| 2s ago|Creating pluggable database|
+----+---------+--------+---------+-------+----------+-------+---------------------------+
Total jobs 1
 
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
Remote database 'ORA19DBF' created as PDB 'MIGPDB' for job 100
+----+---------+----------+---------+-------+----------+-------+-------+
|Job#|  DB_NAME|     STAGE|OPERATION| STATUS|START_TIME|UPDATED|MESSAGE|
+----+---------+----------+---------+-------+----------+-------+-------+
| 100|ORA19DBFS|REFRESHPDB|EXECUTING|RUNNING|  00:00:00| 3s ago|       |
+----+---------+----------+---------+-------+----------+-------+-------+
Total jobs 1
 
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT

복제 완료됨

 

 

downtime 시작 업그레이드 수행(proceed 입력)

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
upg> proceed -job 100
New start time for job 100 is scheduled 0 minute(s) from now, at 03/02/2026 11:29:19
upg> lsj -a 30
upg> +----+---------+----------+---------+-------+----------+-------+-------------------+
|Job#|  DB_NAME|     STAGE|OPERATION| STATUS|START_TIME|UPDATED|            MESSAGE|
+----+---------+----------+---------+-------+----------+-------+-------------------+
| 100|ORA19DBFS|REFRESHPDB|EXECUTING|RUNNING|  11:29:19| 0s ago|Starts in 0 minutes|
+----+---------+----------+---------+-------+----------+-------+-------------------+
Total jobs 1
...
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
+----+---------+----------+---------+-------+----------+-------+----------------+
|Job#|  DB_NAME|     STAGE|OPERATION| STATUS|START_TIME|UPDATED|         MESSAGE|
+----+---------+----------+---------+-------+----------+-------+----------------+
| 100|ORA19DBFS|POSTFIXUPS|EXECUTING|RUNNING|  11:29:19|54s ago|Executing fixups|
+----+---------+----------+---------+-------+----------+-------+----------------+
Total jobs 1
The command lsj is running every 30 seconds. PRESS ENTER TO EXIT
 
upg> Job 100 completed
------------------- Final Summary --------------------
Number of databases            [ 1 ]
 
Jobs finished                  [1]
Jobs failed                    [0]
Jobs restored                  [0]
Jobs pending                   [0]
 
 
Please check the summary report at:
/home/oracle/autoupgrade/log/cfgtoollogs/upgrade/auto/status/status.html
/home/oracle/autoupgrade/log/cfgtoollogs/upgrade/auto/status/status.log

정상적으로 업그레이드가 완료됨

 

 

alert log 확인

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
$ vi /app/oracle/diag/rdbms/oracle26/ORACLE26/trace/alert_ORACLE26.log
2026-02-01T12:06:44.106095+09:00
Completed: Pluggable database MIGPDB closed services=None
MIGPDB(5):Completed: ALTER PLUGGABLE DATABASE close immediate instances=all
MIGPDB(5):ALTER PLUGGABLE DATABASE OPEN UPGRADE RESTRICTED
MIGPDB(5):Autotune of undo retention is turned on.
2026-02-01T12:06:45.292535+09:00
MIGPDB(5):Resource Manager disabled during database migration: plan '''' not set
2026-02-01T12:06:46.256461+09:00
MIGPDB(5):Opening pdb with Resource Manager plan: ''
MIGPDB(5):--ATTENTION--
MIGPDB(5):The Resource Manager plan "''" specified by parameter RESOURCE_MANAGER_PLAN does not exist.
2026-02-01T12:06:46.315652+09:00
MIGPDB(5):Due to ORA-7452, INTERNAL_PLAN enabled instead
MIGPDB(5):joxcsys_required_dirobj_exists: directory object does not exist, pid 73095 cid 5
MIGPDB(5):joxcsys_ensure_directory_object: created directory object with path /app/oracle/product/26ai/javavm/admin/, pid 73095 cid 5
Completed: Pluggable database MIGPDB opened in upgrade mode
MIGPDB(5):Completed: ALTER PLUGGABLE DATABASE OPEN UPGRADE RESTRICTED
MIGPDB(5):ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE
MIGPDB(5):JIT: pid 73095 requesting stop
2026-02-01T12:06:47.251683+09:00
MIGPDB(5):Buffer Cache flush started: 5
MIGPDB(5):Buffer Cache flush finished: 5
2026-02-01T12:06:48.189044+09:00
Completed: Pluggable database MIGPDB closed services=None
MIGPDB(5):Completed: ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE
2026-02-01T12:06:48.307602+09:00
MIGPDB(5):alter pluggable database "MIGPDB" open read write force
MIGPDB(5):Autotune of undo retention is turned on.
2026-02-01T12:06:53.060412+09:00
MIGPDB(5):Opening pdb with no Resource Manager plan active
Completed: Pluggable database MIGPDB opened read write
MIGPDB(5):Completed: alter pluggable database "MIGPDB" open read write force

정상적으로 업그레이드가 되었을때도 RESOURCE_MANAGER_PLAN does not exist 메세지는 동일하게 발생함

 

 

업그레이드 완료 후 타임존 에러난 파일 확인

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
$ vi /home/oracle/autoupgrade/log/ORA19DBFS/100/dbupgrade/catupgrd20260202133720migpdb0.log
Elapsed: 00:00:00.00
13:40:16 SQL>
13:40:16 SQL>
13:40:16 SQL> DOC
13:40:16 DOC>#######################################################################
13:40:16 DOC>#######################################################################
13:40:16 DOC>   The following statement will cause an ORA-62430 and terminate the
13:40:16 DOC>   db upgrade for check "MUST_PATCH_TIMEZONE_FILE_VERSION_ON_NEW_ORACLE_HOME"
13:40:16 DOC>   IF:
13:40:16 DOC>    (1) the old release uses a time zone file version newer than the
13:40:16 DOC>        one shipped with the new oracle release
13:40:16 DOC>    and
13:40:16 DOC>    (2) the new oracle home has not been patched yet
13:40:16 DOC>
13:40:16 DOC>     o Action:
13:40:16 DOC>       Shutdown database (do "alter system checkpoint" first).
13:40:16 DOC>       Patch new ORACLE_HOME to the same time zone file version as used
13:40:16 DOC>       in the old ORACLE_HOME.
13:40:16 DOC>
13:40:16 DOC>#######################################################################
13:40:16 DOC>#######################################################################
13:40:16 DOC>#
13:40:16 SQL>
13:40:16 SQL> Rem Check if time zone file version used by the database exists in new home
13:40:16 SQL> SELECT
13:40:16   2   SYS_OP_DBUPGRADE_CHECK('MUST_PATCH_TIMEZONE_FILE_VERSION_ON_NEW_ORACLE_HOME')
13:40:16   3  FROM sys.props$
13:40:16   4  WHERE
13:40:16   5    (
13:40:16   6     (name = 'DST_PRIMARY_TT_VERSION' AND TO_NUMBER(value$) > &C_LTZ_CONTENT_VER)
13:40:16   7     AND
13:40:16   8     (0 = (select count(*) from sys.v$timezone_file))
13:40:16   9    );
old   6:    (name = 'DST_PRIMARY_TT_VERSION' AND TO_NUMBER(value$) > &C_LTZ_CONTENT_VER)
new   6:    (name = 'DST_PRIMARY_TT_VERSION' AND TO_NUMBER(value$) > 43)
 
no rows selected

에러 안나고 no rows로 표시되었음

 

 

원인 : 26ai의 기본 타임존 버전이 43으로 출시해서 발생한 문제

19c 최신 ru에 포함되어 있는 타임존 44버전이 포함되어야 하는데 43이 들어있어서 발생한 문제임
일반 로컬에서 autoupgrade를 이용해 26ai로 업그레이드 할때는 이 타임존이 달라도 본문 문제가 발생하지 않음
하지만 Autoupgrade Refreshable Pluggable Database를 이용해 26ai로 업그레이드 할때는 문제가 발생함

 

 

이 문제는 Oracle Product Manager인 Alex에게 제보하였으며 autoupgrade 추후 버전에서 개선될 예정이라고함
그리고 DB 23.26.2 버전에서 최신 타임존 버전(44)을 포함해서 나올 예정이라고함

 

 

참조 : 

https://positivemh.tistory.com/1336
https://dohdatabase.com/wp-content/uploads/2021/06/skills-first-and-first-when-things-go-south.pdf
https://mikedietrichde.com/2023/06/06/zero-downtime-upgrade-of-timezone-data-in-oracle-21c-and-23c/
https://alexzaballa.com/oracle-pdb-refreshable-clones-from-19-27dst-44-to-26ai-dst-43/