- Introduction:
| Hostname | oraeasy |
|---|---|
| OS | Windows 11 |
| Database Name | ORCL |
| Database Version | 19c(19.27) |
| Oracle Home | D:\app\oracle\product\19c\db_home1 |
| Datafile Location | D:\app\oracle\oradata\ORCL |
| Hostname | uat.oraeasy.com |
|---|---|
| OS | OL 8 |
| Database Version | 19c(19.27) |
| Oracle Home | /u01/app/oracle/product/19c/db_home |
| Datafile Location | /u01/app/oracle/oradata/orcl |
1. Take precheck at source.
First create a table with test user so that data can be validated post upgradation:
SQL> show user
USER is "TEST"
SQL> def
DEFINE _DATE = "04-SEP-25" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orclpdb" (CHAR)
DEFINE _USER = "TEST" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1927000000" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0" (CHAR)
DEFINE _O_RELEASE = "1927000000" (CHAR)
SQL>
SQL>
SQL> CREATE TABLE COMPANY (EMP_ID INT,NAME VARCHAR(255), COMPANY VARCHAR(255));
Table created.
SQL> INSERT INTO COMPANY VALUES (101,'Yash','WIPRO');
1 row created.
SQL> INSERT INTO COMPANY VALUES (102,'Vijay','AIRTEL');
1 row created.
SQL> INSERT INTO COMPANY VALUES (103,'Riya','TCS');
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from company;
COUNT(*)
----------
3
Now take Precheck like Database size, Patch , Invalid object count & Registery Components:
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
SQL> SELECT name,db_unique_name,database_role,log_mode from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE LOG_MODE
--------- ------------------------------ ---------------- ------------
ORCL orcl PRIMARY ARCHIVELOG
SQL>
SQL> SELECT
(SELECT SUM(bytes)/1024/1024/1024 FROM dba_data_files) +
(SELECT NVL(SUM(bytes),0)/1024/1024/1024 FROM dba_temp_files) +
(SELECT SUM(bytes)/1024/1024/1024 FROM sys.v_$log) +
(SELECT SUM(block_size*file_size_blks)/1024/1024/1024 FROM v$controlfile) "Size in GB"
FROM dual;
Size in GB
----------
1.86004639
SQL> COLUMN action_time FORMAT A20
SQL> COLUMN action FORMAT A10
SQL> COLUMN status FORMAT A10
SQL> COLUMN description FORMAT A60
SQL> SELECT patch_uid, patch_id, source_version, target_version,
action, status, action_time, description
FROM dba_registry_sqlpatch;
PATCH_UID PATCH_ID SOURCE_VERSION TARGET_VERSION ACTION STATUS ACTION_TIME DESCRIPTION
---------- ---------- --------------- --------------- ---------- ---------- -------------------- ------------------------------------------------------------
26102912 37532350 19.1.0.0.0 19.27.0.0.0 APPLY SUCCESS 03-SEP-25 04.54.27.5 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
83000 PM
SQL> COLUMN comp_id FORMAT A10
SQL> COLUMN version FORMAT A11
SQL> COLUMN status FORMAT A10
SQL> COLUMN comp_name FORMAT A37
SQL> SELECT comp_id, comp_name, version, status FROM dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ------------------------------------- ----------- ----------
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
JAVAVM JServer JAVA Virtual Machine 19.0.0.0.0 VALID
XML Oracle XDK 19.0.0.0.0 VALID
CATJAVA Oracle Database Java Packages 19.0.0.0.0 VALID
APS OLAP Analytic Workspace 19.0.0.0.0 VALID
XDB Oracle XML Database 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
CONTEXT Oracle Text 19.0.0.0.0 VALID
ORDIM Oracle Multimedia 19.0.0.0.0 VALID
SDO Spatial 19.0.0.0.0 VALID
XOQ Oracle OLAP API 19.0.0.0.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
SQL> select count(*) from dba_objects where status='INVALID';
COUNT(*)
----------
0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
SQL> alter session set container=ORCLPDB;
Session altered.
SQL> SELECT comp_id, comp_name, version, status FROM dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ------------------------------------- ----------- ----------
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
JAVAVM JServer JAVA Virtual Machine 19.0.0.0.0 VALID
XML Oracle XDK 19.0.0.0.0 VALID
CATJAVA Oracle Database Java Packages 19.0.0.0.0 VALID
APS OLAP Analytic Workspace 19.0.0.0.0 VALID
XDB Oracle XML Database 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
CONTEXT Oracle Text 19.0.0.0.0 VALID
ORDIM Oracle Multimedia 19.0.0.0.0 VALID
SDO Spatial 19.0.0.0.0 VALID
XOQ Oracle OLAP API 19.0.0.0.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
SQL> select count(*) from dba_objects where status='INVALID';
COUNT(*)
----------
0
2. Now take full database backup using RMAN
C:\Users\oraeasy>rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Thu Sep 4 12:03:42 2025
Version 19.27.0.0.0
Copyright (c) 1982, 2025, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1738304883)
RMAN> report schema;
report schema;
using target database control file instead of recovery catalog
Report of database schema for database with db_unique_name ORCL
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 1100 SYSTEM YES D:\APP\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
3 790 SYSAUX NO D:\APP\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
4 445 UNDOTBS1 YES D:\APP\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
5 440 PDB$SEED:SYSTEM NO D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF
6 390 PDB$SEED:SYSAUX NO D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF
7 5 USERS NO D:\APP\ORACLE\ORADATA\ORCL\USERS01.DBF
8 180 PDB$SEED:UNDOTBS1 NO D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\UNDOTBS01.DBF
9 450 ORCLPDB:SYSTEM YES D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSTEM01.DBF
10 460 ORCLPDB:SYSAUX NO D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSAUX01.DBF
11 190 ORCLPDB:UNDOTBS1 YES D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\UNDOTBS01.DBF
12 5 ORCLPDB:USERS NO D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\USERS01.DBF
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 206 TEMP 32767 D:\APP\ORACLE\ORADATA\ORCL\TEMP01.DBF
2 206 PDB$SEED:TEMP 32767 D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\TEMP012025-08-30_16-44-47-581-PM.DBF
3 174 ORCLPDB:TEMP 32767 D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\TEMP01.DBF
RMAN> run
{
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup as compressed backupset database format 'E:\RMAN\Fullback_%T_%U';
backup as compressed backupset archivelog all format 'E:\RMAN\Archive_%T_%U';
backup current controlfile format 'E:\RMAN\Controlback_%T_%U';
release channel ch1;
}
run
2> {
3> allocate channel ch1 device type disk;
4> allocate channel ch2 device type disk;
5> backup as compressed backupset database format 'E:\RMAN\Fullback_%T_%U';
6> backup as compressed backupset archivelog all format 'E:\RMAN\Archive_%T_%U';
7> backup current controlfile format 'E:\RMAN\Controlback_%T_%U';
8> release channel ch1;
9> release channel ch2;
10> }
using target database control file instead of recovery catalog
allocated channel: ch1
channel ch1: SID=273 device type=DISK
allocated channel: ch2
channel ch2: SID=23 device type=DISK
Starting backup at 08-SEP-25
channel ch1: starting compressed full datafile backup set
channel ch1: specifying datafile(s) in backup set
input datafile file number=00001 name=D:\APP\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
input datafile file number=00004 name=D:\APP\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
channel ch1: starting piece 1 at 08-SEP-25
channel ch2: starting compressed full datafile backup set
channel ch2: specifying datafile(s) in backup set
input datafile file number=00003 name=D:\APP\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
input datafile file number=00007 name=D:\APP\ORACLE\ORADATA\ORCL\USERS01.DBF
channel ch2: starting piece 1 at 08-SEP-25
channel ch2: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\FULLBACK_20250908_0L435ECP_1_1 tag=TAG20250908T114425 comment=NONE
channel ch2: backup set complete, elapsed time: 00:00:45
channel ch2: starting compressed full datafile backup set
channel ch2: specifying datafile(s) in backup set
input datafile file number=00010 name=D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSAUX01.DBF
input datafile file number=00011 name=D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\UNDOTBS01.DBF
channel ch2: starting piece 1 at 08-SEP-25
channel ch2: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\FULLBACK_20250908_0M435EE6_1_1 tag=TAG20250908T114425 comment=NONE
channel ch2: backup set complete, elapsed time: 00:00:25
channel ch2: starting compressed full datafile backup set
channel ch2: specifying datafile(s) in backup set
input datafile file number=00006 name=D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF
input datafile file number=00008 name=D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\UNDOTBS01.DBF
channel ch2: starting piece 1 at 08-SEP-25
channel ch2: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\FULLBACK_20250908_0N435EF1_1_1 tag=TAG20250908T114425 comment=NONE
channel ch2: backup set complete, elapsed time: 00:00:25
channel ch2: starting compressed full datafile backup set
channel ch2: specifying datafile(s) in backup set
input datafile file number=00009 name=D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSTEM01.DBF
input datafile file number=00012 name=D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\USERS01.DBF
channel ch2: starting piece 1 at 08-SEP-25
channel ch1: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\FULLBACK_20250908_0K435ECP_1_1 tag=TAG20250908T114425 comment=NONE
channel ch1: backup set complete, elapsed time: 00:01:38
channel ch1: starting compressed full datafile backup set
channel ch1: specifying datafile(s) in backup set
input datafile file number=00005 name=D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF
channel ch1: starting piece 1 at 08-SEP-25
channel ch1: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\FULLBACK_20250908_0P435EFS_1_1 tag=TAG20250908T114425 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:45
channel ch2: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\FULLBACK_20250908_0O435EFR_1_1 tag=TAG20250908T114425 comment=NONE
channel ch2: backup set complete, elapsed time: 00:00:47
Finished backup at 08-SEP-25
Starting backup at 08-SEP-25
current log archived
channel ch1: starting compressed archived log backup set
channel ch1: specifying archived log(s) in backup set
input archived log thread=1 sequence=33 RECID=33 STAMP=1211281954
channel ch1: starting piece 1 at 08-SEP-25
channel ch2: starting compressed archived log backup set
channel ch2: specifying archived log(s) in backup set
input archived log thread=1 sequence=34 RECID=32 STAMP=1211281954
input archived log thread=1 sequence=35 RECID=34 STAMP=1211281955
input archived log thread=1 sequence=36 RECID=35 STAMP=1211282143
input archived log thread=1 sequence=37 RECID=36 STAMP=1211283452
channel ch2: starting piece 1 at 08-SEP-25
channel ch1: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\ARCHIVE_20250908_0Q435EHD_1_1 tag=TAG20250908T114653 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:08
channel ch1: starting compressed archived log backup set
channel ch1: specifying archived log(s) in backup set
input archived log thread=1 sequence=38 RECID=37 STAMP=1211283454
input archived log thread=1 sequence=39 RECID=38 STAMP=1211284013
channel ch1: starting piece 1 at 08-SEP-25
channel ch2: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\ARCHIVE_20250908_0R435EHD_1_1 tag=TAG20250908T114653 comment=NONE
channel ch2: backup set complete, elapsed time: 00:00:08
channel ch1: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\ARCHIVE_20250908_0S435EHL_1_1 tag=TAG20250908T114653 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:01
Finished backup at 08-SEP-25
Starting backup at 08-SEP-25
channel ch1: starting full datafile backup set
channel ch1: specifying datafile(s) in backup set
including current control file in backup set
channel ch1: starting piece 1 at 08-SEP-25
channel ch1: finished piece 1 at 08-SEP-25
piece handle=E:\RMAN\CONTROLBACK_20250908_0T435EHO_1_1 tag=TAG20250908T114704 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:04
Finished backup at 08-SEP-25
Starting Control File and SPFILE Autobackup at 08-SEP-25
piece handle=D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\AUTOBACKUP\2025_09_08\O1_MF_S_1211284036_NCWX7JJ9_.BKP comment=NONE
Finished Control File and SPFILE Autobackup at 08-SEP-25
released channel: ch1
released channel: ch2
RMAN> exit
3. Now create a pfile.
SQL> create pfile='E:\RMAN\WINPFILE.ORA' from spfile;
File created.
4. Now transfer the backup to Linux machine.
E:\RMAN>dir
Volume in drive E is Personal
Volume Serial Number is 340F-6A45
Directory of E:\RMAN
08-09-2025 11:47 .
08-09-2025 11:46 21,840,384 ARCHIVE_20250908_0Q435EHD_1_1
08-09-2025 11:46 7,870,976 ARCHIVE_20250908_0R435EHD_1_1
08-09-2025 11:47 1,790,976 ARCHIVE_20250908_0S435EHL_1_1
08-09-2025 11:47 18,907,136 CONTROLBACK_20250908_0T435EHO_1_1
08-09-2025 11:46 428,711,936 FULLBACK_20250908_0K435ECP_1_1
08-09-2025 11:45 91,234,304 FULLBACK_20250908_0L435ECP_1_1
08-09-2025 11:45 52,060,160 FULLBACK_20250908_0M435EE6_1_1
08-09-2025 11:45 97,861,632 FULLBACK_20250908_0N435EF1_1_1
08-09-2025 11:46 240,009,216 FULLBACK_20250908_0O435EFR_1_1
08-09-2025 11:46 238,952,448 FULLBACK_20250908_0P435EFS_1_1
05-09-2025 16:26 1,180 WINPFILE.ORA
11 File(s) 1,199,240,348 bytes
1 Dir(s) 133,782,732,800 bytes free
E:\RMAN>
E:\RMAN>scp * oracle@192.168.1.30:/tmp/rman
oracle@192.168.1.30's password:
ARCHIVE_20250908_0Q435EHD_1_1 100% 21MB 34.5MB/s 00:00
ARCHIVE_20250908_0R435EHD_1_1 100% 7687KB 18.2MB/s 00:00
ARCHIVE_20250908_0S435EHL_1_1 100% 1749KB 21.6MB/s 00:00
CONTROLBACK_20250908_0T435EHO_1_1 100% 18MB 32.5MB/s 00:00
FULLBACK_20250908_0K435ECP_1_1 100% 409MB 20.1MB/s 00:20
FULLBACK_20250908_0L435ECP_1_1 100% 87MB 26.8MB/s 00:03
FULLBACK_20250908_0M435EE6_1_1 100% 50MB 29.5MB/s 00:01
FULLBACK_20250908_0N435EF1_1_1 100% 93MB 30.7MB/s 00:03
FULLBACK_20250908_0O435EFR_1_1 100% 229MB 27.2MB/s 00:08
FULLBACK_20250908_0P435EFS_1_1 100% 228MB 25.6MB/s 00:08
WINPFILE.ORA 100% 1180 576.1KB/s 00:00
5. Now modify the pfile according to Linux and create required directories.
[oracle@uat rman]$ pwd
/tmp/rman
[oracle@uat rman]$ ls -lrth
total 1.2G
-rwxrwxr-x. 1 oracle oinstall 1.2K Sep 5 12:48 WINPFILE.ORA
-rwxrwxr-x. 1 oracle oinstall 15M Sep 5 16:28 ARCHIVE_20250905_0H42U1I6_1_1
-rwxrwxr-x. 1 oracle oinstall 19M Sep 5 16:28 CONTROLBACK_20250905_0I42U1IF_1_1
-rwxrwxr-x. 1 oracle oinstall 496M Sep 5 16:28 FULLBACK_20250905_0E42U1AU_1_1
-rwxrwxr-x. 1 oracle oinstall 280M Sep 5 16:29 FULLBACK_20250905_0F42U1DT_1_1
-rwxrwxr-x. 1 oracle oinstall 322M Sep 5 16:29 FULLBACK_20250905_0G42U1G0_1_1
[oracle@uat rman]$ cat WINPFILE.ORA
orcl.__data_transfer_cache_size=0
orcl.__db_cache_size=3791650816
orcl.__inmemory_ext_roarea=0
orcl.__inmemory_ext_rwarea=0
orcl.__java_pool_size=184549376
orcl.__large_pool_size=16777216
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=1711276032
orcl.__sga_target=5100273664
orcl.__shared_io_pool_size=134217728
orcl.__shared_pool_size=956301312
orcl.__streams_pool_size=0
orcl.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/fast_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area/orcl'
*.db_recovery_file_dest_size=12732m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.enable_pluggable_database=true
*.log_archive_format='%t_%s_%r.dbf'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1617m
*.processes=320
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=4849m
*.undo_tablespace='UNDOTBS1'
[oracle@uat rman]$
[oracle@uat ~]$ mkdir -p /u01/app/oracle/admin/orcl/adump
[oracle@uat ~]$ mkdir -p /u01/app/oracle/oradata/orcl
[oracle@uat ~]$ mkdir -p /u01/app/oracle/fast_recovery_area/orcl
[oracle@uat ~]$ mkdir -p /u01/app/oracle/oradata/orcl/PDBSEED
[oracle@uat ~]$ mkdir -p /u01/app/oracle/oradata/orcl/ORCLPDB
6. Set the environment and start the database in nomount mode.
[oracle@uat ~]$ . oraenv
ORACLE_SID = [devdb] ? orcl
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/19c/db_home
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@uat ~]$
[oracle@uat ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 4 14:07:26 2025
Version 19.27.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
SQL> def
DEFINE _DATE = "04-SEP-25" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1925000000" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "" (CHAR)
DEFINE _O_RELEASE = "" (CHAR)
SQL>
SQL> startup nomount pfile='/tmp/rman/WINPFILE.ORA';
ORACLE instance started.
Total System Global Area 3221225296 bytes
Fixed Size 9183056 bytes
Variable Size 654311424 bytes
Database Buffers 2550136832 bytes
Redo Buffers 7593984 bytes
SQL> exit
7. Restore the controlfile and mount the database.
[oracle@uat ~]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Sep 5 12:48:55 2025
Version 19.27.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (not mounted)
RMAN> restore controlfile from '/tmp/rman/CONTROLBACK_20250908_0T435EHO_1_1';
restore controlfile from '/tmp/rman/CONTROLBACK_20250908_0T435EHO_1_1';
Starting restore at 08-SEP-25
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output file name=/u01/app/oracle/oradata/orcl/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl
Finished restore at 08-SEP-25
RMAN>
RMAN> alter database mount;
alter database mount;
released channel: ORA_DISK_1
Statement processed
RMAN> report schema;
report schema;
RMAN-06139: warning: control file is not current for REPORT SCHEMA
Report of database schema for database with db_unique_name ORCL
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 0 SYSTEM *** D:\APP\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
3 0 SYSAUX *** D:\APP\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
4 0 UNDOTBS1 *** D:\APP\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
5 0 PDB$SEED:SYSTEM *** D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF
6 0 PDB$SEED:SYSAUX *** D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF
7 0 USERS *** D:\APP\ORACLE\ORADATA\ORCL\USERS01.DBF
8 0 PDB$SEED:UNDOTBS1 *** D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\UNDOTBS01.DBF
9 0 ORCLPDB:SYSTEM *** D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSTEM01.DBF
10 0 ORCLPDB:SYSAUX *** D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSAUX01.DBF
11 0 ORCLPDB:UNDOTBS1 *** D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\UNDOTBS01.DBF
12 0 ORCLPDB:USERS *** D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\USERS01.DBF
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 20 TEMP 32767 D:\APP\ORACLE\ORADATA\ORCL\TEMP01.DBF
2 36 PDB$SEED:TEMP 32767 D:\APP\ORACLE\ORADATA\ORCL\PDBSEED\TEMP012025-08-30_16-44-47-581-PM.DBF
3 36 ORCLPDB:TEMP 32767 D:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\TEMP01.DBF
RMAN>
8. Catalog the backup files.
RMAN> catalog start with '/tmp/rman';
catalog start with '/tmp/rman';
Starting implicit crosscheck backup at 08-SEP-25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
Crosschecked 9 objects
Finished implicit crosscheck backup at 08-SEP-25
Starting implicit crosscheck copy at 08-SEP-25
using channel ORA_DISK_1
Finished implicit crosscheck copy at 08-SEP-25
searching for all files in the recovery area
cataloging files...
no files cataloged
searching for all files that match the pattern /tmp/rman
List of Files Unknown to the Database
=====================================
File Name: /tmp/rman/ARCHIVE_20250908_0Q435EHD_1_1
File Name: /tmp/rman/ARCHIVE_20250908_0R435EHD_1_1
File Name: /tmp/rman/ARCHIVE_20250908_0S435EHL_1_1
File Name: /tmp/rman/CONTROLBACK_20250908_0T435EHO_1_1
File Name: /tmp/rman/FULLBACK_20250908_0K435ECP_1_1
File Name: /tmp/rman/FULLBACK_20250908_0L435ECP_1_1
File Name: /tmp/rman/FULLBACK_20250908_0M435EE6_1_1
File Name: /tmp/rman/FULLBACK_20250908_0N435EF1_1_1
File Name: /tmp/rman/FULLBACK_20250908_0O435EFR_1_1
File Name: /tmp/rman/FULLBACK_20250908_0P435EFS_1_1
File Name: /tmp/rman/WINPFILE.ORA
Do you really want to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /tmp/rman/ARCHIVE_20250908_0Q435EHD_1_1
File Name: /tmp/rman/ARCHIVE_20250908_0R435EHD_1_1
File Name: /tmp/rman/ARCHIVE_20250908_0S435EHL_1_1
File Name: /tmp/rman/CONTROLBACK_20250908_0T435EHO_1_1
File Name: /tmp/rman/FULLBACK_20250908_0K435ECP_1_1
File Name: /tmp/rman/FULLBACK_20250908_0L435ECP_1_1
File Name: /tmp/rman/FULLBACK_20250908_0M435EE6_1_1
File Name: /tmp/rman/FULLBACK_20250908_0N435EF1_1_1
File Name: /tmp/rman/FULLBACK_20250908_0O435EFR_1_1
File Name: /tmp/rman/FULLBACK_20250908_0P435EFS_1_1
List of Files Which Were Not Cataloged
=======================================
File Name: /tmp/rman/WINPFILE.ORA
RMAN-07517: Reason: The file header is corrupted
RMAN>
9.Now execute the restoration script.
RMAN> RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
ALLOCATE CHANNEL c2 DEVICE TYPE disk;
set newname for datafile 1 to '/u01/app/oracle/oradata/orcl/SYSTEM01.DBF';
set newname for datafile 3 to '/u01/app/oracle/oradata/orcl/SYSAUX01.DBF';
set newname for datafile 4 to '/u01/app/oracle/oradata/orcl/UNDOTBS01.DBF';
set newname for datafile 5 to '/u01/app/oracle/oradata/orcl/PDBSEED/SYSTEM01.DBF';
set newname for datafile 6 to '/u01/app/oracle/oradata/orcl/PDBSEED/SYSAUX01.DBF';
set newname for datafile 7 to '/u01/app/oracle/oradata/orcl/USERS01.DBF';
set newname for datafile 8 to '/u01/app/oracle/oradata/orcl/PDBSEED/UNDOTBS01.DBF';
set newname for datafile 9 to '/u01/app/oracle/oradata/orcl/ORCLPDB/SYSTEM01.DBF';
set newname for datafile 10 to '/u01/app/oracle/oradata/orcl/ORCLPDB/SYSAUX01.DBF';
set newname for datafile 11 to '/u01/app/oracle/oradata/orcl/ORCLPDB/UNDOTBS01.DBF';
set newname for datafile 12 to '/u01/app/oracle/oradata/orcl/ORCLPDB/USERS01.DBF';
set newname for tempfile 1 to '/u01/app/oracle/oradata/orcl/TEMP01.DBF';
set newname for tempfile 2 to '/u01/app/oracle/oradata/orcl/PDBSEED/TEMP01.DBF';
set newname for tempfile 3 to '/u01/app/oracle/oradata/orcl/ORCLPDB/TEMP01.DBF';
restore database;
switch datafile all;
switch tempfile all;
recover database;
release channel c1;
release channel c2;
}
RMAN> RUN
2> {
3> ALLOCATE CHANNEL c1 DEVICE TYPE disk;
4> ALLOCATE CHANNEL c2 DEVICE TYPE disk;
5> set newname for datafile 1 to '/u01/app/oracle/oradata/orcl/SYSTEM01.DBF';
6> set newname for datafile 3 to '/u01/app/oracle/oradata/orcl/SYSAUX01.DBF';
7> set newname for datafile 4 to '/u01/app/oracle/oradata/orcl/UNDOTBS01.DBF';
8> set newname for datafile 5 to '/u01/app/oracle/oradata/orcl/PDBSEED/SYSTEM01.DBF';
9> set newname for datafile 6 to '/u01/app/oracle/oradata/orcl/PDBSEED/SYSAUX01.DBF';
10> set newname for datafile 7 to '/u01/app/oracle/oradata/orcl/USERS01.DBF';
11> set newname for datafile 8 to '/u01/app/oracle/oradata/orcl/PDBSEED/UNDOTBS01.DBF';
12> set newname for datafile 9 to '/u01/app/oracle/oradata/orcl/ORCLPDB/SYSTEM01.DBF';
13> set newname for datafile 10 to '/u01/app/oracle/oradata/orcl/ORCLPDB/SYSAUX01.DBF';
14> set newname for datafile 11 to '/u01/app/oracle/oradata/orcl/ORCLPDB/UNDOTBS01.DBF';
15> set newname for datafile 12 to '/u01/app/oracle/oradata/orcl/ORCLPDB/USERS01.DBF';
16> set newname for tempfile 1 to '/u01/app/oracle/oradata/orcl/TEMP01.DBF';
17> set newname for tempfile 2 to '/u01/app/oracle/oradata/orcl/PDBSEED/TEMP01.DBF';
18> set newname for tempfile 3 to '/u01/app/oracle/oradata/orcl/ORCLPDB/TEMP01.DBF';
19> restore database;
20> switch datafile all;
21> switch tempfile all;
22> recover database;
23> release channel c1;
24> release channel c2;
25> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=252 device type=DISK
allocated channel: c2
channel c2: SID=17 device type=DISK
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 08-SEP-25
channel c1: starting datafile backup set restore
channel c1: specifying datafile(s) to restore from backup set
channel c1: restoring datafile 00003 to /u01/app/oracle/oradata/orcl/SYSAUX01.DBF
channel c1: restoring datafile 00007 to /u01/app/oracle/oradata/orcl/USERS01.DBF
channel c1: reading from backup piece /tmp/rman/FULLBACK_20250908_0L435ECP_1_1
channel c2: starting datafile backup set restore
channel c2: specifying datafile(s) to restore from backup set
channel c2: restoring datafile 00010 to /u01/app/oracle/oradata/orcl/ORCLPDB/SYSAUX01.DBF
channel c2: restoring datafile 00011 to /u01/app/oracle/oradata/orcl/ORCLPDB/UNDOTBS01.DBF
channel c2: reading from backup piece /tmp/rman/FULLBACK_20250908_0M435EE6_1_1
channel c2: piece handle=/tmp/rman/FULLBACK_20250908_0M435EE6_1_1 tag=TAG20250908T114425
channel c2: restored backup piece 1
channel c2: restore complete, elapsed time: 00:01:26
channel c2: starting datafile backup set restore
channel c2: specifying datafile(s) to restore from backup set
channel c2: restoring datafile 00006 to /u01/app/oracle/oradata/orcl/PDBSEED/SYSAUX01.DBF
channel c2: restoring datafile 00008 to /u01/app/oracle/oradata/orcl/PDBSEED/UNDOTBS01.DBF
channel c2: reading from backup piece /tmp/rman/FULLBACK_20250908_0N435EF1_1_1
channel c1: piece handle=/tmp/rman/FULLBACK_20250908_0L435ECP_1_1 tag=TAG20250908T114425
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:01:34
channel c1: starting datafile backup set restore
channel c1: specifying datafile(s) to restore from backup set
channel c1: restoring datafile 00001 to /u01/app/oracle/oradata/orcl/SYSTEM01.DBF
channel c1: restoring datafile 00004 to /u01/app/oracle/oradata/orcl/UNDOTBS01.DBF
channel c1: reading from backup piece /tmp/rman/FULLBACK_20250908_0K435ECP_1_1
channel c2: piece handle=/tmp/rman/FULLBACK_20250908_0N435EF1_1_1 tag=TAG20250908T114425
channel c2: restored backup piece 1
channel c2: restore complete, elapsed time: 00:01:08
channel c2: starting datafile backup set restore
channel c2: specifying datafile(s) to restore from backup set
channel c2: restoring datafile 00005 to /u01/app/oracle/oradata/orcl/PDBSEED/SYSTEM01.DBF
channel c2: reading from backup piece /tmp/rman/FULLBACK_20250908_0P435EFS_1_1
channel c2: piece handle=/tmp/rman/FULLBACK_20250908_0P435EFS_1_1 tag=TAG20250908T114425
channel c2: restored backup piece 1
channel c2: restore complete, elapsed time: 00:01:17
channel c2: starting datafile backup set restore
channel c2: specifying datafile(s) to restore from backup set
channel c2: restoring datafile 00009 to /u01/app/oracle/oradata/orcl/ORCLPDB/SYSTEM01.DBF
channel c2: restoring datafile 00012 to /u01/app/oracle/oradata/orcl/ORCLPDB/USERS01.DBF
channel c2: reading from backup piece /tmp/rman/FULLBACK_20250908_0O435EFR_1_1
channel c1: piece handle=/tmp/rman/FULLBACK_20250908_0K435ECP_1_1 tag=TAG20250908T114425
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:02:26
channel c2: piece handle=/tmp/rman/FULLBACK_20250908_0O435EFR_1_1 tag=TAG20250908T114425
channel c2: restored backup piece 1
channel c2: restore complete, elapsed time: 00:00:56
Finished restore at 08-SEP-25
datafile 1 switched to datafile copy
input datafile copy RECID=15 STAMP=1211294119 file name=/u01/app/oracle/oradata/orcl/SYSTEM01.DBF
datafile 3 switched to datafile copy
input datafile copy RECID=16 STAMP=1211294121 file name=/u01/app/oracle/oradata/orcl/SYSAUX01.DBF
datafile 4 switched to datafile copy
input datafile copy RECID=17 STAMP=1211294122 file name=/u01/app/oracle/oradata/orcl/UNDOTBS01.DBF
datafile 5 switched to datafile copy
input datafile copy RECID=18 STAMP=1211294123 file name=/u01/app/oracle/oradata/orcl/PDBSEED/SYSTEM01.DBF
datafile 6 switched to datafile copy
input datafile copy RECID=19 STAMP=1211294124 file name=/u01/app/oracle/oradata/orcl/PDBSEED/SYSAUX01.DBF
datafile 7 switched to datafile copy
input datafile copy RECID=20 STAMP=1211294124 file name=/u01/app/oracle/oradata/orcl/USERS01.DBF
datafile 8 switched to datafile copy
input datafile copy RECID=21 STAMP=1211294124 file name=/u01/app/oracle/oradata/orcl/PDBSEED/UNDOTBS01.DBF
datafile 9 switched to datafile copy
input datafile copy RECID=22 STAMP=1211294125 file name=/u01/app/oracle/oradata/orcl/ORCLPDB/SYSTEM01.DBF
datafile 10 switched to datafile copy
input datafile copy RECID=23 STAMP=1211294125 file name=/u01/app/oracle/oradata/orcl/ORCLPDB/SYSAUX01.DBF
datafile 11 switched to datafile copy
input datafile copy RECID=24 STAMP=1211294125 file name=/u01/app/oracle/oradata/orcl/ORCLPDB/UNDOTBS01.DBF
datafile 12 switched to datafile copy
input datafile copy RECID=25 STAMP=1211294126 file name=/u01/app/oracle/oradata/orcl/ORCLPDB/USERS01.DBF
renamed tempfile 1 to /u01/app/oracle/oradata/orcl/TEMP01.DBF in control file
renamed tempfile 2 to /u01/app/oracle/oradata/orcl/PDBSEED/TEMP01.DBF in control file
renamed tempfile 3 to /u01/app/oracle/oradata/orcl/ORCLPDB/TEMP01.DBF in control file
Starting recover at 08-SEP-25
starting media recovery
channel c1: starting archived log restore to default destination
channel c1: restoring archived log
archived log thread=1 sequence=39
channel c1: reading from backup piece /tmp/rman/ARCHIVE_20250908_0S435EHL_1_1
channel c1: piece handle=/tmp/rman/ARCHIVE_20250908_0S435EHL_1_1 tag=TAG20250908T114653
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:00:01
archived log file name=/u01/app/oracle/fast_recovery_area/orcl/ORCL/archivelog/2025_09_08/o1_mf_1_39_ncx72v67_.arc thread=1 sequence=39
channel default: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/orcl/ORCL/archivelog/2025_09_08/o1_mf_1_39_ncx72v67_.arc RECID=39 STAMP=1211294131
unable to find archived log
archived log thread=1 sequence=40
RMAN Command Id : 2025-09-08T14:30:09
RMAN Command Id : 2025-09-08T14:30:09
RMAN Command Id : 2025-09-08T14:30:09
released channel: c1
released channel: c2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 09/08/2025 14:35:33
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 40 and starting SCN of 2632626
RMAN Client Diagnostic Trace file : /u01/app/oracle/diag/clients/user_oracle/RMAN_3062585620_110/trace/ora_rman_13475_0.trc
RMAN Server Diagnostic Trace file : /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_13488.trc
RMAN> exit;
10. Now open the database and create spfile.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open RESETLOGS;
Database altered.
SQL> SELECT name,db_unique_name,database_role,log_mode from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE LOG_MODE
--------- ------------------------------ ---------------- ------------
ORCL orcl PRIMARY ARCHIVELOG
SQL> create spfile from '/tmp/rman/WINPFILE.ORA';
File created.
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1174402832 bytes
Fixed Size 9312016 bytes
Variable Size 905969664 bytes
Database Buffers 251658240 bytes
Redo Buffers 7462912 bytes
Database mounted.
Database opened.
SQL> SELECT name,db_unique_name,database_role,log_mode from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE LOG_MODE
--------- ------------------------------ ---------------- ------------
ORCL orcl PRIMARY ARCHIVELOG
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 ORCLPDB READ WRITE YES
Now as we see from above output that PDB$SEED & ORCLPDB are in restircted state. This is due to patch conflict, so let's proceed to reolve this.11. First run the datapatch verbose.
[oracle@uat ~]$ cd $ORACLE_HOME/OPatch
[oracle@uat OPatch]$ ./datapatch -verbose
SQL Patching tool version 19.27.0.0.0 Production on Mon Sep 8 15:41:56 2025
Copyright (c) 2012, 2025, Oracle. All rights reserved.
Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_17214_2025_09_08_15_41_56/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.27.0.0.0 Release_Update 250406131139: Installed
PDB CDB$ROOT:
Applied 19.27.0.0.0 Release_Update 250422102456 successfully on 03-SEP-25 04.54.27.583000 PM
PDB ORCLPDB:
Applied 19.27.0.0.0 Release_Update 250422102456 successfully on 03-SEP-25 05.06.05.000000 PM
PDB PDB$SEED:
Applied 19.27.0.0.0 Release_Update 250422102456 successfully on 03-SEP-25 05.07.24.064000 PM
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB
No interim patches need to be rolled back
Patch 37532350 (Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)):
Rollback from 19.27.0.0.0 Release_Update 250422102456 to 19.27.0.0.0 Release_Update 250406131139
No interim patches need to be applied
Installing patches...
Patch installation complete. Total patches installed: 3
Validating logfiles...done
Patch 37532350 rollback (pdb CDB$ROOT): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_CDBROOT_2025Sep08_15_50_56.log (errors)
-> Error at line 23558: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Patch 37532350 rollback (pdb PDB$SEED): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_PDBSEED_2025Sep08_16_00_08.log (errors)
-> Error at line 23558: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Patch 37532350 rollback (pdb ORCLPDB): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_ORCLPDB_2025Sep08_16_00_08.log (errors)
-> Error at line 23558: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Adding patches to retry installation queue...done
Retry installation queue:
For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB
No interim patches need to be rolled back
Patch 37532350 (Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)):
Rollback from 19.27.0.0.0 Release_Update 250422102456 to 19.27.0.0.0 Release_Update 250406131139
No interim patches need to be applied
Installing patches...
Patch installation complete. Total patches installed: 3
Validating logfiles...done
Patch 37532350 rollback (pdb CDB$ROOT): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_CDBROOT_2025Sep08_16_14_28.log (errors)
-> Error at line 22572: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Patch 37532350 rollback (pdb PDB$SEED): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_PDBSEED_2025Sep08_16_22_41.log (errors)
-> Error at line 22572: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Patch 37532350 rollback (pdb ORCLPDB): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_ORCLPDB_2025Sep08_16_22_42.log (errors)
-> Error at line 22572: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Please refer to MOS Note 1609718.1 and/or the invocation log
/u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_17214_2025_09_08_15_41_56/sqlpatch_invocation.log
for information on how to resolve the above errors.
SQL Patching tool complete on Mon Sep 8 16:35:26 2025
Now we got the ORA-29548 error due to Java System mismatch. So we need to execute "update_javavm_db.sql" to fix this.12. Execute the "update_javavm_db.sql".
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 ORCLPDB READ WRITE YES
==> For CDB.
SQL> @?/javavm/install/update_javavm_db.sql
SQL> SET FEEDBACK 1
SQL> SET NUMWIDTH 10
SQL> SET LINESIZE 80
SQL> SET TRIMSPOOL ON
SQL> SET TAB OFF
SQL> SET PAGESIZE 100
SQL>
SQL> alter session set "_ORACLE_SCRIPT"=true;
Session altered.
SQL>
SQL> -- If Java is installed, do CJS.
SQL>
SQL> -- If CJS can deal with the SROs inconsistent with the new JDK,
SQL> -- the drop_sros() call here can be removed.
SQL> call initjvmaux.drop_sros();
Call completed.
SQL>
SQL> create or replace java system;
2 /
Java created.
SQL>
SQL> update dependency$
2 set p_timestamp=(select stime from obj$ where obj#=p_obj#)
3 where (select stime from obj$ where obj#=p_obj#)!=p_timestamp and
4 (select type# from obj$ where obj#=p_obj#)=29 and
5 (select owner# from obj$ where obj#=p_obj#)=0;
0 rows updated.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> alter session set "_ORACLE_SCRIPT"=false;
Session altered.
SQL>
==> For PDB.
SQL> alter session set container=ORCLPDB;
Session altered.
SQL>
SQL> @?/javavm/install/update_javavm_db.sql
SQL> Rem
SQL> Rem $Header: javavm/install/update_javavm_db.sql /main/6 2017/07/03 21:56:55 stanaya Exp $
SQL> Rem
SQL> Rem update_javavm_db.sql
SQL> Rem
SQL> Rem Copyright (c) 2011, 2017, Oracle and/or its affiliates.
SQL> Rem All rights reserved.
SQL> Rem
SQL> Rem NAME
SQL> Rem update_javavm_db.sql - update JDK in the database
SQL> Rem
SQL> Rem DESCRIPTION
SQL> Rem
SQL> Rem NOTES
SQL> Rem To be run as SYS.
SQL> Rem
SQL> Rem BEGIN SQL_FILE_METADATA
SQL> Rem SQL_SOURCE_FILE: javavm/install/update_javavm_db.sql
SQL> Rem SQL_SHIPPED_FILE: javavm/install/update_javavm_db.sql
SQL> Rem SQL_PHASE: UTILITY
SQL> Rem SQL_STARTUP_MODE: NORMAL
SQL> Rem SQL_IGNORABLE_ERRORS: NONE
SQL> Rem END SQL_FILE_METADATA
SQL> Rem
SQL> Rem MODIFIED (MM/DD/YY)
SQL> Rem nneeluru 01/22/14 - Fix ORA-65023; Also set/unset _ORACLE_SCRIPT
SQL> Rem nneeluru 09/13/12 - Fix timestamps
SQL> Rem nneeluru 07/04/12 - Drop SROs
SQL> Rem nneeluru 10/03/11 - Script to be run in the database to switch JDK
SQL> Rem nneeluru 10/03/11 - Created
SQL> Rem
SQL>
SQL> SET ECHO ON
SQL> SET FEEDBACK 1
SQL> SET NUMWIDTH 10
SQL> SET LINESIZE 80
SQL> SET TRIMSPOOL ON
SQL> SET TAB OFF
SQL> SET PAGESIZE 100
SQL>
SQL> alter session set "_ORACLE_SCRIPT"=true;
Session altered.
SQL>
SQL> -- If Java is installed, do CJS.
SQL>
SQL> -- If CJS can deal with the SROs inconsistent with the new JDK,
SQL> -- the drop_sros() call here can be removed.
SQL> call initjvmaux.drop_sros();
Call completed.
SQL>
SQL> create or replace java system;
2 /
Java created.
SQL>
SQL> update dependency$
2 set p_timestamp=(select stime from obj$ where obj#=p_obj#)
3 where (select stime from obj$ where obj#=p_obj#)!=p_timestamp and
4 (select type# from obj$ where obj#=p_obj#)=29 and
5 (select owner# from obj$ where obj#=p_obj#)=0;
0 rows updated.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> alter session set "_ORACLE_SCRIPT"=false;
Session altered.
SQL>
13. Now again execute the datapatch verbose.
[oracle@uat ~]$ cd $ORACLE_HOME/OPatch
[oracle@uat OPatch]$ ./datapatch -verbose
SQL Patching tool version 19.27.0.0.0 Production on Mon Sep 8 17:31:23 2025
Copyright (c) 2012, 2025, Oracle. All rights reserved.
Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_25518_2025_09_08_17_31_23/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.27.0.0.0 Release_Update 250406131139: Installed
PDB CDB$ROOT:
Rolled back to 19.27.0.0.0 Release_Update 250406131139 with errors on 08-SEP-25 04.21.39.438219 PM
PDB ORCLPDB:
Rolled back to 19.27.0.0.0 Release_Update 250406131139 with errors on 08-SEP-25 04.32.48.219390 PM
PDB PDB$SEED:
Rolled back to 19.27.0.0.0 Release_Update 250406131139 with errors on 08-SEP-25 04.32.48.178275 PM
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB
No interim patches need to be rolled back
Patch 37532350 (Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)):
Rollback from 19.27.0.0.0 Release_Update 250422102456 to 19.27.0.0.0 Release_Update 250406131139
No interim patches need to be applied
Installing patches...
Patch installation complete. Total patches installed: 3
Validating logfiles...done
Patch 37532350 rollback (pdb CDB$ROOT): SUCCESS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_CDBROOT_2025Sep08_17_37_27.log (no errors)
Patch 37532350 rollback (pdb PDB$SEED): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_PDBSEED_2025Sep08_17_48_55.log (errors)
-> Error at line 22572: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Patch 37532350 rollback (pdb ORCLPDB): SUCCESS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_ORCLPDB_2025Sep08_17_48_59.log (no errors)
Adding patches to retry installation queue...done
Retry installation queue:
For the following PDBs: PDB$SEED
No interim patches need to be rolled back
Patch 37532350 (Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)):
Rollback from 19.27.0.0.0 Release_Update 250422102456 to 19.27.0.0.0 Release_Update 250406131139
No interim patches need to be applied
Installing patches...
Patch installation complete. Total patches installed: 1
Validating logfiles...done
Patch 37532350 rollback (pdb PDB$SEED): WITH ERRORS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37532350/26102912/37120618_rollback_ORCL_PDBSEED_2025Sep08_18_02_01.log (errors)
-> Error at line 22572: script md/admin/catsem.sql
- ORA-29548: Java system class reported: release of Java system classes in the
- database (19.3.0.0.0 1.8) does not match that of the oracle executable
- (19.0.0.0.0 1.8)
- ORA-06512: at "SYS.DBMS_JAVA", line 587
- ORA-06512: at line 1
Please refer to MOS Note 1609718.1 and/or the invocation log
/u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_25518_2025_09_08_17_31_23/sqlpatch_invocation.log
for information on how to resolve the above errors.
SQL Patching tool complete on Mon Sep 8 18:10:40 2025
14. Check the patch registery and bounce the database.
[oracle@uat rman]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Sep 8 18:11:03 2025
Version 19.27.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 ORCLPDB READ WRITE YES
SQL> COLUMN action_time FORMAT A20
SQL> COLUMN action FORMAT A10
SQL> COLUMN status FORMAT A10
SQL> COLUMN description FORMAT A60
SQL> SELECT patch_uid, patch_id, source_version, target_version,
action, status, action_time, description
FROM dba_registry_sqlpatch;
PATCH_UID PATCH_ID SOURCE_VERSION TARGET_VERSION ACTION STATUS ACTION_TIME DESCRIPTION
---------- ---------- --------------- --------------- ---------- ---------- -------------------- ------------------------------------------------------------
26102912 37532350 19.1.0.0.0 19.27.0.0.0 APPLY SUCCESS 03-SEP-25 04.54.27.5 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
83000 PM
26102912 37532350 19.27.0.0.0 19.27.0.0.0 ROLLBACK WITH ERRORS 08-SEP-25 03.59.21.0 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
46109 PM
26102912 37532350 19.27.0.0.0 19.27.0.0.0 ROLLBACK WITH ERRORS 08-SEP-25 04.21.39.4 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
38219 PM
26102912 37532350 19.27.0.0.0 19.27.0.0.0 ROLLBACK SUCCESS 08-SEP-25 05.47.34.4 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
53190 PM
SQL> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 3221225296 bytes
Fixed Size 9183056 bytes
Variable Size 654311424 bytes
Database Buffers 2550136832 bytes
Redo Buffers 7593984 bytes
Database mounted.
Database opened.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 ORCLPDB READ WRITE NO
Now our main PDB is fine but PDB$SEED is in stil restricted and it will cause issue while creating new PDBs. So let's resolve this as well.15. Open the PDBSEED in Read/Write mode and then execute "update_javavm_db.qsl".
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY YES
3 ORCLPDB READ WRITE NO
SQL> alter session set container=ORCLPDB;
Session altered.
SQL> alter pluggable database pdb$seed close immediate instances=all;
Pluggable database altered.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED
SQL> alter pluggable database pdb$seed OPEN READ WRITE;
Warning: PDB altered with errors.
SQL> @?/javavm/install/update_javavm_db.sql
SQL> SET FEEDBACK 1
SQL> SET NUMWIDTH 10
SQL> SET LINESIZE 80
SQL> SET TRIMSPOOL ON
SQL> SET TAB OFF
SQL> SET PAGESIZE 100
SQL>
SQL> alter session set "_ORACLE_SCRIPT"=true;
Session altered.
SQL>
SQL> -- If Java is installed, do CJS.
SQL>
SQL> -- If CJS can deal with the SROs inconsistent with the new JDK,
SQL> -- the drop_sros() call here can be removed.
SQL> call initjvmaux.drop_sros();
Call completed.
SQL>
SQL> create or replace java system;
2 /
Java created.
SQL>
SQL> update dependency$
2 set p_timestamp=(select stime from obj$ where obj#=p_obj#)
3 where (select stime from obj$ where obj#=p_obj#)!=p_timestamp and
4 (select type# from obj$ where obj#=p_obj#)=29 and
5 (select owner# from obj$ where obj#=p_obj#)=0;
0 rows updated.
SQL>
SQL> commit;
Commit complete.
SQL>
SQL> alter session set "_ORACLE_SCRIPT"=false;
Session altered.
SQL>
16. Again execute the datapatch verbose.
[oracle@uat OPatch]$ ./datapatch -verbose
SQL Patching tool version 19.27.0.0.0 Production on Wed Sep 10 14:00:13 2025
Copyright (c) 2012, 2025, Oracle. All rights reserved.
Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_21048_2025_09_10_14_00_13/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.27.0.0.0 Release_Update 250406131139: Installed
PDB CDB$ROOT:
Rolled back to 19.27.0.0.0 Release_Update 250406131139 successfully on 08-SEP-25 05.47.34.453190 PM
PDB ORCLPDB:
Rolled back to 19.27.0.0.0 Release_Update 250406131139 successfully on 08-SEP-25 06.00.02.789889 PM
PDB PDB$SEED:
Applied 19.27.0.0.0 Release_Update 250406131139 with errors on 10-SEP-25 01.40.15.137387 PM
Adding patches to installation queue and performing prereq checks...done
Installation queue:
For the following PDBs: CDB$ROOT ORCLPDB
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$SEED
No interim patches need to be rolled back
Patch 37642901 (Database Release Update : 19.27.0.0.250415 (37642901)):
Apply from 19.1.0.0.0 Feature Release to 19.27.0.0.0 Release_Update 250406131139
No interim patches need to be applied
Installing patches...
Patch installation complete. Total patches installed: 1
Validating logfiles...done
Patch 37642901 apply (pdb PDB$SEED): SUCCESS
logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/37642901/27123174/37642901_apply_ORCL_PDBSEED_2025Sep10_14_02_52.log (no errors)
SQL Patching tool complete on Wed Sep 10 15:32:54 2025
17. Now take the bounce of the database.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ WRITE YES
3 ORCLPDB READ WRITE NO
SQL>
SQL>
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 3221225296 bytes
Fixed Size 9183056 bytes
Variable Size 1040187392 bytes
Database Buffers 2164260864 bytes
Redo Buffers 7593984 bytes
Database mounted.
Database opened.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
Now PDB$SEED is also fine and the issue has been resolved.18. Perform the post check.
SQL> SELECT name,db_unique_name,database_role,log_mode from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE LOG_MODE
--------- ------------------------------ ---------------- ------------
ORCL orcl PRIMARY ARCHIVELOG
SQL>
SQL> SELECT
(SELECT SUM(bytes)/1024/1024/1024 FROM dba_data_files) +
(SELECT NVL(SUM(bytes),0)/1024/1024/1024 FROM dba_temp_files) +
(SELECT SUM(bytes)/1024/1024/1024 FROM sys.v_$log) +
(SELECT SUM(block_size*file_size_blks)/1024/1024/1024 FROM v$controlfile) "Size in GB"
FROM dual;
Size in GB
----------
3.44421387
SQL> COLUMN action_time FORMAT A20
SQL> COLUMN action FORMAT A10
SQL> COLUMN status FORMAT A10
SQL> COLUMN description FORMAT A60
SQL> SELECT patch_uid, patch_id, source_version, target_version,
action, status, action_time, description
FROM dba_registry_sqlpatch;
PATCH_UID PATCH_ID SOURCE_VERSION TARGET_VERSION ACTION STATUS ACTION_TIME DESCRIPTION
---------- ---------- --------------- --------------- ---------- ---------- -------------------- ------------------------------------------------------------
26102912 37532350 19.1.0.0.0 19.27.0.0.0 APPLY SUCCESS 03-SEP-25 04.54.27.5 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
83000 PM
26102912 37532350 19.27.0.0.0 19.27.0.0.0 ROLLBACK WITH ERRORS 08-SEP-25 03.59.21.0 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
46109 PM
26102912 37532350 19.27.0.0.0 19.27.0.0.0 ROLLBACK WITH ERRORS 08-SEP-25 04.21.39.4 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
38219 PM
26102912 37532350 19.27.0.0.0 19.27.0.0.0 ROLLBACK SUCCESS 08-SEP-25 05.47.34.4 Windows Database Bundle Patch : 19.27.0.0.250415 (37532350)
53190 PM
SQL> COLUMN comp_id FORMAT A10
COLUMN version FORMAT A11
COLUMN status FORMAT A10
COLUMN comp_name FORMAT A37
SELECT comp_id, comp_name, version, status FROM dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ------------------------------------- ----------- ----------
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
JAVAVM JServer JAVA Virtual Machine 19.0.0.0.0 VALID
XML Oracle XDK 19.0.0.0.0 VALID
CATJAVA Oracle Database Java Packages 19.0.0.0.0 VALID
APS OLAP Analytic Workspace 19.0.0.0.0 VALID
XDB Oracle XML Database 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
CONTEXT Oracle Text 19.0.0.0.0 VALID
ORDIM Oracle Multimedia 19.0.0.0.0 VALID
SDO Spatial 19.0.0.0.0 VALID
XOQ Oracle OLAP API 19.0.0.0.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
SQL> select count(*) from dba_objects where status='INVALID';
COUNT(*)
----------
0
SQL> alter session set container=ORCLPDB;
Session altered.
SQL> SELECT comp_id, comp_name, version, status FROM dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ------------------------------------- ----------- ----------
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
JAVAVM JServer JAVA Virtual Machine 19.0.0.0.0 VALID
XML Oracle XDK 19.0.0.0.0 VALID
CATJAVA Oracle Database Java Packages 19.0.0.0.0 VALID
APS OLAP Analytic Workspace 19.0.0.0.0 VALID
XDB Oracle XML Database 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
CONTEXT Oracle Text 19.0.0.0.0 VALID
ORDIM Oracle Multimedia 19.0.0.0.0 VALID
SDO Spatial 19.0.0.0.0 VALID
XOQ Oracle OLAP API 19.0.0.0.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
SQL> select count(*) from dba_objects where status='INVALID';
COUNT(*)
----------
0
SQL> select count(*) from test.company;
COUNT(*)
----------
3
SQL>
So this way you can migrate the database from Windows to Linux using RMAN. Although you should perform complete testing prior to using this method for Production database.
Thank you for reading!
I hope this content has been helpful to you. Your feedback and suggestions are always welcome — feel free to leave a comment or reach out with any queries.
Abhishek Shrivastava

Comments
Post a Comment