Introduction

Since patch version 19.21 (current one is 19.23), ODA (Oracle Database Appliance) X7, X8 and X9 will require the use of Data Preserving Reprovisioning (DPR) to get the patch. Unlike traditional patching, DPR erases the system disks but keeps data on ASM/ACFS disks. Data includes databases, ACFS volumes, DB homes, vDisks for DB Systems and VMs. But it doesn’t keep your system settings: specific OS configurations, additional tools, monitoring, users and groups, aso. The reason for not being able to use classic patching method: the embedded OS upgrade from Linux 7 to Linux 8. Actually, it’s much easier to setup a brand new system than applying a major patch onto an existing one. But what about your old (and unsupported) Oracle database releases? Let’s find out for 12cR1 databases.

ODA’s hardware and software support

According to MOS note Doc ID 2757884.1, only ODAs X7, X8, X9 and X10 series are currently supported. The support is valid if you run at least patch version 19.19. The only database versions supported are 19c in bare metal, and 21c and 19c as DB Systems.

There is no more support for older releases, like 12cR1 for example. But it doesn’t mean that 12cR1 will stop working as soon as you’re deploying patch 19.19 or higher. With classic patching, your old databases will still be OK. Patching with DPR is another story. As old releases are no more supported, you may struggle to plug in back your old databases to the new Linux system. One could advice to upgrade all your databases to 19c prior using DPR, but it’s not so easy for a lot of my clients. Many old databases are legacy and must run for another couple of years. And 12cR1 is the main release that must survive through patching.

Environment and context

I worked on this following example 2 weeks ago:

  • an ODA X8-2M running patch 19.18
  • patching is done once a year, and this time I need to update to version 19.22 and I must use DPR
  • most of the databases are running 19.18
  • 4 databases are still running 12cR1 from initial version (19.15)
  • these 12cR1 databases were not patched during last year’s update from 19.15 to 19.18 as no more patch existed for 12cR1 in 19.18

There is no reason 12cR1 would stop working after this OS upgrade: 12cR1 is supported (so to say) on Linux 8, as mentioned in the certification matrix on MOS.

DPR preupgrade

DPR means reimaging the ODA, but before reimaging, you will need to register the 19.22 patch and update the DCS components. The adequate preupgrade and detach-node operations resides within the patch.

odacli update-repository -f /backup/patch/19_22/oda-sm-19.22.0.0.0-240306-server.zip
sleep 60 ; odacli describe-job -i "16596d34-9b93-4c7d-b502-4ad27804fa69"
...

odacli update-dcsadmin -v 19.22.0.0.0
sleep 120 ; odacli describe-job -i "aed1c8ef-713b-43c2-9355-cb364387dcd0"
...

odacli update-dcscomponents -v 19.22.0.0.0
...
 
odacli update-dcsagent -v 19.22.0.0.0
sleep 180 ; odacli describe-job -i 1a10900c-2fc7-4535-8f9b-879a43243e66
...

Once your ODA has the knowledge of what’s needed for DPR to 19.22, let’s do the preupgrade operation:

odacli create-preupgradereport -bm 

Preupgrade will check a lot of prerequisites, but let’s focus on 12cR1:

odacli describe-preupgradereport -i b1f6dddb-c531-45d5-842f-bf3cf10231fe
Upgrade pre-check report
------------------------------------------------------------------------
                 Job ID:  b1f6dddb-c531-45d5-842f-bf3cf10231fe
            Description:  Run pre-upgrade checks for Bare Metal
                 Status:  FAILED
                Created:  April 15, 2024 1:47:17 PM CEST
                 Result:  One or more pre-checks failed for [DB]

...

Validate Database Version      Failed   Version '12.1.0.2.220419' for          Please update the database to the
                                        database 'BRCLATST' is lower than      minimum supported version or higher
                                        minimum supported version
                                        '12.1.0.2.220719'
...
Validate Database Version      Failed   Version '12.1.0.2.220419' for          Please update the database to the
                                        database 'BRSLTST' is lower than       minimum supported version or higher
                                        minimum supported version
                                        '12.1.0.2.220719'
...
Validate Database Version      Failed   Version '12.1.0.2.220419' for          Please update the database to the
                                        database 'BRRTST' is lower than        minimum supported version or higher
                                        minimum supported version
                                        '12.1.0.2.220719'

...
Validate Database Version      Failed   Version '12.1.0.2.220419' for          Please update the database to the
                                        database 'BRFTST' is lower than        minimum supported version or higher
                                        minimum supported version
                                        '12.1.0.2.220719'
...

Hopefully, my 4 databases are not declared unsupported or not compatible with 19.22. But they are using patch 12.1.0.2.220419 as deployed with ODA version 19.15, and I will need to upgrade them to 12.1.0.2.220719. This is the latest version embedded in the latest ODA patch that supports 12cR1: 19.16. It should be quite easy to apply.

Registering the DB home and apply the patch?

I thought I could simply download the DB clone, register it in the repository, and apply the patch, but applying the patch on a DB home will also need the system patch. Because the target version for updating a DB home is an ODA patch number, and metadata inside the system patch makes the link to the associated DB home. No problem to register this old patch, even if you currently run a higher version:

odacli update-repository -f /backup/patch/19_22/odacli-dcs-19.16.0.0.0-220805-DB-12.1.0.2.zip
sleep 60 ; odacli describe-job -i "304762d3-948b-419b-9954-0d402da8304d"
...

odacli update-repository -f /backup/patch/19_22/oda-sm-19.16.0.0.0-220809-server.zip
sleep 60 ; odacli describe-job -i "4e75492b-60d4-4351-9966-80fdec97b312"
...

odacli list-dbhomes
ID                                       Name                 DB Version           DB Edition Home Location                                            Status
---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
1cbe3f74-2746-4ab0-81f9-2d1b9f5c3d56     OraDB12102_home1     12.1.0.2.220419      EE         /u01/app/odaorahome/oracle/product/12.1.0.2/dbhome_1     CONFIGURED
94aba6b1-850b-45d5-b123-c9eade003fa8     OraDB19000_home2     19.18.0.0.230117     EE         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_2     CONFIGURED
odacli create-prepatchreport -d -i 1cbe3f74-2746-4ab0-81f9-2d1b9f5c3d56 -v 19.16.0.0
sleep 180 ; odacli describe-prepatchreport -i 55a5e235-096d-4d26-b922-4194c361b16f
...
odacli update-dbhome -i 1cbe3f74-2746-4ab0-81f9-2d1b9f5c3d56 -v 19.16.0.0.0 -f
...

Once the update is finished, the old DB home can be safely removed:

odacli list-dbhomes
ID                                       Name                 DB Version           DB Edition Home Location                                            Status
---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
1cbe3f74-2746-4ab0-81f9-2d1b9f5c3d56     OraDB12102_home1     12.1.0.2.220419      EE         /u01/app/odaorahome/oracle/product/12.1.0.2/dbhome_1     CONFIGURED
94aba6b1-850b-45d5-b123-c9eade003fa8     OraDB19000_home2     19.18.0.0.230117     EE         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_2     CONFIGURED
f715ab11-12a7-4fef-940a-19b71500a93d     OraDB12102_home3     12.1.0.2.220719      EE         /u01/app/odaorahome/oracle/product/12.1.0.2/dbhome_3     CONFIGURED

odacli delete-dbhome -i 1cbe3f74-2746-4ab0-81f9-2d1b9f5c3d56
 
odacli describe-job -i 1b1162a5-38d8-439b-af93-aa7246e69ff9
...

Running again the preupgrade

Let’s retry the preupgrade:

odacli create-preupgradereport -bm 

Status is now OK:

odacli describe-preupgradereport -i a2cc67c4-fb43-4556-9e3c-a02b9e53736d
Upgrade pre-check report
------------------------------------------------------------------------
				 Job ID:  a2cc67c4-fb43-4556-9e3c-a02b9e53736d
			Description:  Run pre-upgrade checks for Bare Metal
				 Status:  SUCCESS
				Created:  May 27, 2024 2:02:41 PM CEST
				 Result:  All pre-checks succeeded
...

Detach the configuration

Now let’s do the detach to prepare our ODA for reimaging:

odacli detach-node -all
********************************************************************************
								  IMPORTANT
********************************************************************************
'odacli detach-node' will bring down the databases and grid services on the
system. The files that belong to the databases, which are stored on ASM or ACFS,
are left intact on the storage. The databases will be started up back after
re-imaging the ODA system using 'odacli restore-node' commands. As a good
precautionary measure, please backup all the databases on the system before you
start this process. Do not store the backup on this ODA machine since the local
file system will be wiped out as part of the re-image.
********************************************************************************

Do you want to continue (yes/no)[no] : yes

odacli describe-job -i "37cbd5df-708f-4631-872d-f574dd1279e0"
Job details
----------------------------------------------------------------
                     ID:  37cbd5df-708f-4631-872d-f574dd1279e0
            Description:  Detach node service creation for upgrade
                 Status:  Success
                Created:  May 27, 2024 2:35:38 PM CEST
                Message:  On successful job completion, the server archive file will be generated at /opt/oracle/oak/restore/out. Please copy the server archive file outside of the ODA system before re-image
...

Detach is OK. You must now copy the content of /opt/oracle/oak/restore/out outside the ODA, for example on a NFS share and/or your local computer. YOU MUST DO THIS BACKUP BEFORE REIMAGING unless you will not be able to use your data anymore. These files are mandatory for attaching again your data to the new system version.

Reimaging

Reimaging is done through the ILOM as described in the ODA documentation. Just connect the 19.22 ISO under the storage menu of the remote console of the server, define CDROM as the next boot device, and do a power cycle.

Reimaging is an automated process and it takes less than 1 hour to complete.

Firstnet configuration

Our system is now “brand new”, and you will need to connect with default credentials (root/welcome1) on the remote console to do the firstnet configuration:

configure-firstnet

You can find parameters for this initial network configuration inside the detach zipfile:

cat serverarchive_oratest04/restore/configure-firstnet.rsp
# ------------------------------------------------------------
# This file was generated by the ODA detach-node code flow.
# Don't modify this file
# 
# Created On: 2024-05-27 14:35:38
# Version: 19.22.0.0.0
# Feature: Data Preserving
# Re-provisioning
# 
# To be used for configure-firstnet post
# reimage
# ------------------------------------------------------------

HOSTNAME=oratest04
INTERFACE_NAME=btbond1
VLAN=NO
IP_ADDR=10.10.32.126
SUBNET_MASK=255.255.255.0
GATEWAY=10.10.32.1

Now the server is back online in your network, and you may connect your NFS shares, for example the one where the patchfiles reside:

echo "10.10.32.100:/data/vol_data_490/ODA_backups /backup nfs defaults  0 0" >> /etc/fstab
systemctl daemon-reload
mkdir /backup
mount -a

Update the microcodes

Reimaging never updates the firmwares (BIOS, ILOM, etc), you’ll have to update them right now:

odacli describe-component
System Version
---------------
19.22.0.0.0

System node Name
---------------
oak

Local System Version
---------------
19.22.0.0.0

Component                                Installed Version    Available Version
---------------------------------------- -------------------- --------------------
OAK
						  19.22.0.0.0           up-to-date
DCSCONTROLLER
						  19.22.0.0.0           up-to-date
DCSCLI
						  19.22.0.0.0           up-to-date
DCSAGENT
						  19.22.0.0.0           up-to-date
DCSADMIN
						  19.22.0.0.0           up-to-date
OS
						  8.9                   up-to-date
ILOM
						  5.1.0.23.r146986      5.1.3.20.r153596
BIOS
						  52080100              52110200
LOCAL CONTROLLER FIRMWARE
						  8000C470              8000D9AB
SHARED CONTROLLER FIRMWARE
						  VDV1RL05              VDV1RL06
LOCAL DISK FIRMWARE
						  D3MU001               up-to-date
HMP
						  2.4.9.2.600           up-to-date


odacli update-repository -f /backup/patch/19_22/Server/oda-sm-19.22.0.0.0-240306-server.zip

sleep 60 ; odacli describe-job -i "b341b9cd-0294-4112-a080-24466a3a13e7"
...

odacli create-prepatchreport -s -v 19.22.0.0.0

sleep 180 ; odacli describe-prepatchreport -i afd38dae-69f7-46a2-abe6-cff15b31ad37
Patch pre-check report
------------------------------------------------------------------------
Job ID:  afd38dae-69f7-46a2-abe6-cff15b31ad37
Description:  Patch pre-checks for [OS, ILOM, SERVER]
Status:  SUCCESS
Created:  May 27, 2024 2:35:22 PM UTC
Result:  All pre-checks succeeded

...

odacli update-server -v 19.22.0.0.0

odacli describe-job -i "3bf82e72-eda6-4e03-b363-ee872b7ca8e8"
Job details
----------------------------------------------------------------
Job ID:  3bf82e72-eda6-4e03-b363-ee872b7ca8e8
Description:  Server Patching
Status:  Success
Created:  May 27, 2024 2:37:02 PM UTC
Message:

...

Server reboots at the end of this update. Note that you may need to wait several minutes after the reboot to see BIOS and ILOM updated.

odacli describe-component
System Version
---------------
19.22.0.0.0

System node Name
---------------
oak

Local System Version
---------------
19.22.0.0.0

Component                                Installed Version    Available Version
---------------------------------------- -------------------- --------------------
OAK
						  19.22.0.0.0           up-to-date
DCSCONTROLLER
						  19.22.0.0.0           up-to-date
DCSCLI
						  19.22.0.0.0           up-to-date
DCSAGENT
						  19.22.0.0.0           up-to-date
DCSADMIN
						  19.22.0.0.0           up-to-date
OS
						  8.9                   up-to-date
ILOM
						  5.1.3.20.r153596      up-to-date
BIOS
						  52110200              up-to-date
LOCAL CONTROLLER FIRMWARE
						  8000D9AB              up-to-date
SHARED CONTROLLER FIRMWARE
						  VDV1RL05              VDV1RL06
LOCAL DISK FIRMWARE
						  D3MU001               up-to-date
HMP
						  2.4.9.2.600           up-to-date

Now let’s patch the storage:

odacli update-storage -v 19.22.0.0.0

odacli describe-job -i f829abeb-5755-491c-9463-825b0eca5409
...

The server reboots again, then checking the version shows that everything is “up-to-date”:

odacli describe-component
System Version
---------------
19.22.0.0.0

System node Name
---------------
oak

Local System Version
---------------
19.22.0.0.0

Component                                Installed Version    Available Version
---------------------------------------- -------------------- --------------------
OAK
						  19.22.0.0.0           up-to-date
DCSCONTROLLER
						  19.22.0.0.0           up-to-date
DCSCLI
						  19.22.0.0.0           up-to-date
DCSAGENT
						  19.22.0.0.0           up-to-date
DCSADMIN
						  19.22.0.0.0           up-to-date
OS
						  8.9                   up-to-date
ILOM
						  5.1.3.20.r153596      up-to-date
BIOS
						  52110200              up-to-date
LOCAL CONTROLLER FIRMWARE
						  8000D9AB              up-to-date
SHARED CONTROLLER FIRMWARE
						  VDV1RL06              up-to-date
LOCAL DISK FIRMWARE
						  D3MU001               up-to-date
HMP
						  2.4.9.2.600           up-to-date

Restore node – GI part

Let’s register the GI clone version 19.22 as well as the detach files, then restore the ODA configuration:

odacli update-repository -f /backup/patch/19_22/Grid/odacli-dcs-19.22.0.0.0-240306-GI-19.22.0.0.zip

odacli describe-job -i "d8b33efb-9f66-461c-89ea-f0db33e22cba"
...

odacli update-repository -f /backup/patch/19_22/oratest04/root/oda_nodes/serverarchive_oratest04.zip

odacli describe-job -i "e0c5b0cf-86bb-4961-9861-1ef598b9d6d9"
...

odacli restore-node -g
Enter New system password: *************
Retype New system password: *************
Enter an initial password for Web Console account (oda-admin): *************
Retype the password for Web Console account (oda-admin): *************
User 'oda-admin' created successfully...

odacli describe-job -i 3f2aed36-b654-4df5-ab63-23a740adb5cc
...

Restore node takes 25+ minutes.

Restore node – databases

Now it’s time to restore our databases:

odacli restore-node -d

odacli describe-job -i "0081ba7a-f987-40ef-95af-62654c18e354"
Job details
----------------------------------------------------------------
Job ID:  0081ba7a-f987-40ef-95af-62654c18e354
Description:  Restore node service - DB
Status:  Success
Created:  May 27, 2024 5:51:25 PM CEST
Message:

Task Name                                Start Time                               End Time                                 Status
---------------------------------------- ---------------------------------------- ---------------------------------------- -------	
Setting up SSH equivalence for 'oracle'  May 27, 2024 5:51:29 PM CEST             May 27, 2024 5:51:30 PM CEST             Success
Restore BM CPU Pools                     May 27, 2024 5:51:30 PM CEST             May 27, 2024 5:51:30 PM CEST             Success
Register DB home: OraDB19000_home2       May 27, 2024 5:51:30 PM CEST             May 27, 2024 5:51:33 PM CEST             Success
Register DB home: OraDB12102_home3       May 27, 2024 5:51:33 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Persist database storage locations       May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for MCHDEV                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for MCHREF                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for LV01DEV                May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for LV02DEV                May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for MCHTST                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for LV02TST                May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for MCHBAC                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for BRRTST                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for LV01TST                May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for DBTEST                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for KGED19TS               May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for BRFTST                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for BRSLTST                May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Save metadata for BRCLATST               May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Success
Persist database storages                May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:57 PM CEST             Skipped
Restore database: MCHDEV                 May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:53:03 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:51:57 PM CEST             May 27, 2024 5:51:59 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:51:59 PM CEST             May 27, 2024 5:51:59 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:51:59 PM CEST             May 27, 2024 5:52:33 PM CEST             Success
+-- Restore password file for database   May 27, 2024 5:52:33 PM CEST             May 27, 2024 5:52:33 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 5:52:33 PM CEST             May 27, 2024 5:52:49 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 5:52:49 PM CEST             May 27, 2024 5:52:49 PM CEST             Success
+-- Create adrci directory               May 27, 2024 5:52:49 PM CEST             May 27, 2024 5:52:49 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 5:52:49 PM CEST             May 27, 2024 5:53:03 PM CEST             Success
Restore database: MCHREF                 May 27, 2024 5:53:03 PM CEST             May 27, 2024 5:54:03 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:53:03 PM CEST             May 27, 2024 5:53:04 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:53:04 PM CEST             May 27, 2024 5:53:04 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:53:04 PM CEST             May 27, 2024 5:53:38 PM CEST             Success
+-- Restore password file for database   May 27, 2024 5:53:39 PM CEST             May 27, 2024 5:53:39 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 5:53:39 PM CEST             May 27, 2024 5:53:54 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 5:53:54 PM CEST             May 27, 2024 5:53:54 PM CEST             Success
+-- Create adrci directory               May 27, 2024 5:53:54 PM CEST             May 27, 2024 5:53:54 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 5:53:54 PM CEST             May 27, 2024 5:54:03 PM CEST             Success
Restore database: LV01DEV                May 27, 2024 5:54:03 PM CEST             May 27, 2024 5:55:15 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:54:03 PM CEST             May 27, 2024 5:54:05 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:54:05 PM CEST             May 27, 2024 5:54:05 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:54:05 PM CEST             May 27, 2024 5:54:40 PM CEST             Success
+-- Restore password file for database   May 27, 2024 5:54:40 PM CEST             May 27, 2024 5:54:40 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 5:54:40 PM CEST             May 27, 2024 5:54:55 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 5:54:55 PM CEST             May 27, 2024 5:54:55 PM CEST             Success
+-- Create adrci directory               May 27, 2024 5:54:55 PM CEST             May 27, 2024 5:54:56 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 5:54:56 PM CEST             May 27, 2024 5:55:15 PM CEST             Success
Restore database: LV02DEV                May 27, 2024 5:55:15 PM CEST             May 27, 2024 5:56:29 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:55:15 PM CEST             May 27, 2024 5:55:17 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:55:17 PM CEST             May 27, 2024 5:55:17 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:55:17 PM CEST             May 27, 2024 5:55:51 PM CEST             Success
+-- Restore password file for database   May 27, 2024 5:55:51 PM CEST             May 27, 2024 5:55:51 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 5:55:51 PM CEST             May 27, 2024 5:56:07 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 5:56:07 PM CEST             May 27, 2024 5:56:07 PM CEST             Success
+-- Create adrci directory               May 27, 2024 5:56:07 PM CEST             May 27, 2024 5:56:07 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 5:56:07 PM CEST             May 27, 2024 5:56:29 PM CEST             Success
Restore database: MCHTST                 May 27, 2024 5:56:29 PM CEST             May 27, 2024 5:57:30 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:56:29 PM CEST             May 27, 2024 5:56:30 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:56:30 PM CEST             May 27, 2024 5:56:30 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:56:30 PM CEST             May 27, 2024 5:57:05 PM CEST             Success
+-- Restore password file for database   May 27, 2024 5:57:05 PM CEST             May 27, 2024 5:57:05 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 5:57:05 PM CEST             May 27, 2024 5:57:20 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 5:57:20 PM CEST             May 27, 2024 5:57:20 PM CEST             Success
+-- Create adrci directory               May 27, 2024 5:57:20 PM CEST             May 27, 2024 5:57:21 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 5:57:21 PM CEST             May 27, 2024 5:57:30 PM CEST             Success
Restore database: LV02TST                May 27, 2024 5:57:30 PM CEST             May 27, 2024 5:58:30 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:57:30 PM CEST             May 27, 2024 5:57:32 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:57:32 PM CEST             May 27, 2024 5:57:32 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:57:32 PM CEST             May 27, 2024 5:58:06 PM CEST             Success
+-- Restore password file for database   May 27, 2024 5:58:06 PM CEST             May 27, 2024 5:58:06 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 5:58:06 PM CEST             May 27, 2024 5:58:22 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 5:58:22 PM CEST             May 27, 2024 5:58:22 PM CEST             Success
+-- Create adrci directory               May 27, 2024 5:58:22 PM CEST             May 27, 2024 5:58:22 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 5:58:22 PM CEST             May 27, 2024 5:58:30 PM CEST             Success
Restore database: MCHBAC                 May 27, 2024 5:58:30 PM CEST             May 27, 2024 5:59:41 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:58:30 PM CEST             May 27, 2024 5:58:32 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:58:32 PM CEST             May 27, 2024 5:58:32 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:58:32 PM CEST             May 27, 2024 5:59:07 PM CEST             Success
+-- Restore password file for database   May 27, 2024 5:59:07 PM CEST             May 27, 2024 5:59:07 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 5:59:07 PM CEST             May 27, 2024 5:59:23 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 5:59:23 PM CEST             May 27, 2024 5:59:23 PM CEST             Success
+-- Create adrci directory               May 27, 2024 5:59:24 PM CEST             May 27, 2024 5:59:24 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 5:59:24 PM CEST             May 27, 2024 5:59:41 PM CEST             Success
Restore database: BRRTST                 May 27, 2024 5:59:41 PM CEST             May 27, 2024 6:01:24 PM CEST             Success
+-- Adding database to GI                May 27, 2024 5:59:41 PM CEST             May 27, 2024 5:59:42 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 5:59:42 PM CEST             May 27, 2024 5:59:42 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 5:59:42 PM CEST             May 27, 2024 6:00:16 PM CEST             Success
+-- Restore password file for database   May 27, 2024 6:00:16 PM CEST             May 27, 2024 6:00:16 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 6:00:16 PM CEST             May 27, 2024 6:00:38 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 6:00:38 PM CEST             May 27, 2024 6:00:38 PM CEST             Success
+-- Create adrci directory               May 27, 2024 6:00:38 PM CEST             May 27, 2024 6:00:39 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 6:00:39 PM CEST             May 27, 2024 6:01:24 PM CEST             Success
Restore database: LV01TST                May 27, 2024 6:01:24 PM CEST             May 27, 2024 6:02:40 PM CEST             Success
+-- Adding database to GI                May 27, 2024 6:01:24 PM CEST             May 27, 2024 6:01:26 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 6:01:26 PM CEST             May 27, 2024 6:01:26 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 6:01:26 PM CEST             May 27, 2024 6:02:01 PM CEST             Success
+-- Restore password file for database   May 27, 2024 6:02:01 PM CEST             May 27, 2024 6:02:01 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 6:02:01 PM CEST             May 27, 2024 6:02:18 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 6:02:18 PM CEST             May 27, 2024 6:02:18 PM CEST             Success
+-- Create adrci directory               May 27, 2024 6:02:18 PM CEST             May 27, 2024 6:02:18 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 6:02:18 PM CEST             May 27, 2024 6:02:40 PM CEST             Success
Restore database: DBTEST                 May 27, 2024 6:02:40 PM CEST             May 27, 2024 6:03:59 PM CEST             Success
+-- Adding database to GI                May 27, 2024 6:02:40 PM CEST             May 27, 2024 6:02:42 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 6:02:42 PM CEST             May 27, 2024 6:02:42 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 6:02:42 PM CEST             May 27, 2024 6:03:17 PM CEST             Success
+-- Restore password file for database   May 27, 2024 6:03:17 PM CEST             May 27, 2024 6:03:17 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 6:03:17 PM CEST             May 27, 2024 6:03:34 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 6:03:34 PM CEST             May 27, 2024 6:03:34 PM CEST             Success
+-- Create adrci directory               May 27, 2024 6:03:35 PM CEST             May 27, 2024 6:03:35 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 6:03:35 PM CEST             May 27, 2024 6:03:59 PM CEST             Success
Restore database: KGED19TS               May 27, 2024 6:03:59 PM CEST             May 27, 2024 6:06:32 PM CEST             Success
+-- Adding database to GI                May 27, 2024 6:03:59 PM CEST             May 27, 2024 6:04:02 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 6:04:02 PM CEST             May 27, 2024 6:04:02 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 6:04:02 PM CEST             May 27, 2024 6:04:37 PM CEST             Success
+-- Restore password file for database   May 27, 2024 6:04:37 PM CEST             May 27, 2024 6:04:38 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 6:04:38 PM CEST             May 27, 2024 6:04:57 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 6:04:58 PM CEST             May 27, 2024 6:04:58 PM CEST             Success
+-- Create adrci directory               May 27, 2024 6:04:58 PM CEST             May 27, 2024 6:04:58 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 6:04:58 PM CEST             May 27, 2024 6:06:32 PM CEST             Success
Restore database: BRFTST                 May 27, 2024 6:06:32 PM CEST             May 27, 2024 6:08:28 PM CEST             Success
+-- Adding database to GI                May 27, 2024 6:06:32 PM CEST             May 27, 2024 6:06:34 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 6:06:34 PM CEST             May 27, 2024 6:06:34 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 6:06:35 PM CEST             May 27, 2024 6:07:09 PM CEST             Success
+-- Restore password file for database   May 27, 2024 6:07:09 PM CEST             May 27, 2024 6:07:09 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 6:07:09 PM CEST             May 27, 2024 6:07:33 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 6:07:33 PM CEST             May 27, 2024 6:07:33 PM CEST             Success
+-- Create adrci directory               May 27, 2024 6:07:33 PM CEST             May 27, 2024 6:07:33 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 6:07:33 PM CEST             May 27, 2024 6:08:28 PM CEST             Success
Restore database: BRSLTST                May 27, 2024 6:08:28 PM CEST             May 27, 2024 6:10:16 PM CEST             Success
+-- Adding database to GI                May 27, 2024 6:08:28 PM CEST             May 27, 2024 6:08:30 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 6:08:31 PM CEST             May 27, 2024 6:08:31 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 6:08:31 PM CEST             May 27, 2024 6:09:05 PM CEST             Success
+-- Restore password file for database   May 27, 2024 6:09:05 PM CEST             May 27, 2024 6:09:05 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 6:09:05 PM CEST             May 27, 2024 6:09:27 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 6:09:27 PM CEST             May 27, 2024 6:09:27 PM CEST             Success
+-- Create adrci directory               May 27, 2024 6:09:27 PM CEST             May 27, 2024 6:09:27 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 6:09:27 PM CEST             May 27, 2024 6:10:16 PM CEST             Success
Restore database: BRCLATST               May 27, 2024 6:10:16 PM CEST             May 27, 2024 6:12:13 PM CEST             Success
+-- Adding database to GI                May 27, 2024 6:10:17 PM CEST             May 27, 2024 6:10:18 PM CEST             Success
+-- Adding database instance(s) to GI    May 27, 2024 6:10:18 PM CEST             May 27, 2024 6:10:18 PM CEST             Success
+-- Modifying SPFILE for database        May 27, 2024 6:10:19 PM CEST             May 27, 2024 6:10:53 PM CEST             Success
+-- Restore password file for database   May 27, 2024 6:10:54 PM CEST             May 27, 2024 6:10:54 PM CEST             Skipped
+-- Start instance(s) for database       May 27, 2024 6:10:54 PM CEST             May 27, 2024 6:11:16 PM CEST             Success
+-- Persist metadata for database        May 27, 2024 6:11:16 PM CEST             May 27, 2024 6:11:16 PM CEST             Success
+-- Create adrci directory               May 27, 2024 6:11:16 PM CEST             May 27, 2024 6:11:16 PM CEST             Success
+-- Run SqlPatch                         May 27, 2024 6:11:16 PM CEST             May 27, 2024 6:12:13 PM CEST             Success
Restore Object Stores                    May 27, 2024 6:12:13 PM CEST             May 27, 2024 6:12:13 PM CEST             Success
Remount NFS backups                      May 27, 2024 6:12:13 PM CEST             May 27, 2024 6:12:13 PM CEST             Success
Restore BackupConfigs                    May 27, 2024 6:12:13 PM CEST             May 27, 2024 6:12:13 PM CEST             Success
Reattach backupconfigs to DBs            May 27, 2024 6:12:13 PM CEST             May 27, 2024 6:12:13 PM CEST             Success
Restore backup reports                   May 27, 2024 6:12:13 PM CEST             May 27, 2024 6:12:13 PM CEST             Success

Our 12cR1 databases are restored without any problem, as well as 19c ones.

Next steps when using DPR

Your 12.1 databases will never get another update, but it does not apply to 19c databases. Using DPR will not update your 19.18 databases to 19.22: you need to apply classic patching method to update them. Download the 19.22 DB clone, register this clone into the ODA repository and do the prepatch report on your first 19c DB home. Then patch the DB home to 19.22:

odacli update-repository -f /backup/patch/19_22/DB/odacli-dcs-19.22.0.0.0-240306-DB-19.22.0.0.zip
...

odacli create-prepatchreport -d -i 84cb4f9a-7c45-432b-9e4a-c58f2fe53ca0 -v 19.22.0.0.0
...

odacli describe-prepatchreport -i a9811a90-0f62-4648-86e5-c9a5adaf1be5
...

odacli update-dbhome -i 84cb4f9a-7c45-432b-9e4a-c58f2fe53ca0 -v 19.22.0.0.0 -f
...

As all databases from this 19.18 are now linked to a new 19.22 DB home, the old DB home is not needed anymore, let’s remove it:

odacli delete-dbhome -i 84cb4f9a-7c45-432b-9e4a-c58f2fe53ca0
 
odacli describe-job -i 814d1792-95a6-4592-90b5-42d0b271917b
...

odacli list-dbhomes
ID                                       Name                 DB Version           DB Edition Home Location                                            Status
---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
da2a5bef-9e79-49e2-b811-b7a8b9283bd9     OraDB12102_home3     12.1.0.2.220719      EE         /u01/app/odaorahome/oracle/product/12.1.0.2/dbhome_3     CONFIGURED
f221039f-1430-488e-b853-e3a3fc518020     OraDB19000_home3     19.22.0.0.240116     EE         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_3     CONFIGURED

If you have multiple 19c DB homes, you will need to repeat this update for each DB home.

If your ODA is also running VMs and/or DB Systems, you will need to do a restore-node -kvm then a restore-node -dbs.

Conclusion

Keeping 12cR1 is still possible when upgrading to 19.21 or later, but you should know that it’s because there is no reason for Oracle to remove your existing DB homes and databases. For a fresh setup without using DPR, I would recommend putting old DB homes and databases inside a VM. Unlike DB Systems, VM content is not managed by odacli, therefore you can use whatever OS and whatever Oracle release you need. Without any support of any kind, for sure.