Introduction
Oracle Database Appliance has a global patch available each quarter, so all the components can be patched together on a regular basis. Most of the time, applying the patch on your ODA will be OK, but sometimes you will struggle for multiple reasons. If you don’t apply patch frequently for example. Or if your ODA is heavily tuned. Or if your configuration is partially done manually. For those being not able anymore to correctly apply the patch, the only way of patching was to do a complete reimaging of the ODA, but it’s time consuming as all databases need to be restored.
19.15 brought a new feature called “Data Preserving Reprovisioning”: like patching, it does not need a restore of all your databases, and like reimaging, your system is reistalled from scratch. This sounds like the best option for most of us.
Limits
Data Preserving Reprovisioning (DPR) is limited to very old versions: 12.1.2.12, 12.2.1.4, 18.3, 18.5, 18.7, and 18.8. It may get increased compatibility in future versions.
How does it work?
Reimaging normally implies to wipe out the data disks before, but this is not more mandatory. You can keep your databases on disk, extract the metadata of your ODA setup, reimage your appliance and then remap the databases to your fresh install. This is a kind of unplug/plug of your ODA configuration.
My test environment
I’m lucky to have an X8-2M I can play with. And the first thing I did is a reimaging to 18.8. X8 came along 19c, but also supports 18.8.
For sure, I had to do a cleanup deploy before reimaging (this ODA was already using 19.15), and I struggled with reimaging because partition map prevent reimaging at first tries (probably because those partitions were created for Linux 7, and I put back a Linux 6 so the partition manager called by Anaconda didn’t recognize them). I solved the problem by starting a normal Linux 7 setup (with an Oracle Linux ISO not dedicated to ODA) and removing all partitions from the disks.
On this 18.8 environment, I deployed 2 DB homes, 18.8 and 12.1. I created 3 databases on it.
odacli describe-component
System Version
---------------
18.8.0.0.0
Component Installed Version Available Version
---------------------------------------- -------------------- --------------------
OAK 18.8.0.0.0 up-to-date
DB {
[ OraDB18000_home1 ] 18.8.0.0.191015 up-to-date
[ OraDB12102_home1 ] 12.1.0.2.191015 up-to-date
}
DCSAGENT 18.8.0.0.0 up-to-date
ILOM 5.0.2.24.r141466 4.0.4.38.a.r132148
BIOS 52050300 52020500
OS 6.10 up-to-date
FIRMWARECONTROLLER VDV1RL04 vdv1rl02
FIRMWAREDISK 1132 1102
odacli list-databases
ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID
---------------------------------------- ---------- -------- -------------------- ---------- -------- -------- ---------- ------------ ----------------------------------------
0681df5a-498e-4bb3-8b1e-a5464e891a56 TSTNOC18 Si 18.8.0.0.191015 false Oltp Odb6 Acfs Configured 3eac70f5-6510-4c7c-bf5b-ed938dc60aa1
59ada2fe-cf7d-4fe6-b34b-496f611ab13e TSTC18 Si 18.8.0.0.191015 true Oltp Odb2 Asm Configured 3eac70f5-6510-4c7c-bf5b-ed938dc60aa1
cc44fae8-e508-4b6d-87ee-257b4c48bed8 TSTNOC12 Si 12.1.0.2.191015 false Oltp Odb4 Acfs Configured 8dbba7de-4348-4c61-a171-f7413d30bc14
I didn’t do further changes on this system.
DPR from 18.8 to 19.15: detach the node
First step is to detach your configuration, this is like unplugging a PDB. You will need this additional tool from MOS:
Patch 33594115: DATA PRESERVING REPROVISIONING: UPLOAD ODA UPGRADE UTILITY ZIP TO ARU
Unzip the files and run the precheck:
cd /opt/dbi/
unzip p33594115_1915000_Linux-x86-64.zip
unzip -d /opt/oracle odaupgradeutil_220530.zip
cd /opt/oracle/odaupgradeutil/
./odaupgradeutil run-prechecks
Initializing...
########################## ODAUPGRADEUTIL - INIT - BEGIN ##########################
Please check /opt/oracle/oak/restore/log/odaupgradeutil_init_22-07-2022_11:06:55.log for details.
Get System Version...BEGIN
System Version is: 18.8.0.0.0
Get System Version...DONE
Get Hardware Info...BEGIN
Hardware Model: X8-2, Hardware Platform: M
Get Hardware Info...DONE
Get Grid home...BEGIN
Grid Home is: /u01/app/18.0.0.0/grid
Get Grid home...DONE
Get system configuration details...BEGIN
Grid user is: grid
Oracle user is: oracle
Get system configuration details...DONE
########################## ODAUPGRADEUTIL - INIT - END ##########################
*********
IMPORTANT
*********
odaupgradeutil 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.
*********
IMPORTANT
*********
########################## ODAUPGRADEUTIL - PRECHECKS - BEGIN ##########################
Please check /opt/oracle/oak/restore/log/odaupgradeutil_prechecks_22-07-2022_11:07:15.log for details.
System version precheck...BEGIN
System version precheck...PASSED
System config precheck...BEGIN
System config precheck...PASSED
Required Files precheck...BEGIN
Required Files precheck...PASSED
Need to discover DB homes
Get Database homes...BEGIN
Get Database homes...SUCCESS
Disk space precheck...BEGIN
Get Quorum Disks...BEGIN
Get Quorum Disks...SUCCESS
Disk space precheck...PASSED
DCS Agent status precheck...BEGIN
DCS Agent status precheck...PASSED
OAK precheck...BEGIN
OAK precheck...PASSED
ASM precheck...BEGIN
ASM precheck...PASSED
Database precheck...BEGIN
Get databases...BEGIN
Database Name: TSTNOC18
Oracle Home: /u01/app/oracle/product/18.0.0.0/dbhome_1
Database Name: TSTC18
Oracle Home: /u01/app/oracle/product/18.0.0.0/dbhome_1
Database Name: TSTNOC12
Oracle Home: /u01/app/oracle/product/12.1.0.2/dbhome_1
Get databases...SUCCESS
Database precheck...PASSED
Audit Files precheck...BEGIN
Audit Files precheck...WARNING
Custom RPMs precheck...BEGIN
Custom RPMs precheck...PASSED
########################## ODAUPGRADEUTIL - PRECHECKS - END ##########################
Use 'odaupgradeutil describe-precheck-report [-j]' to view the precheck report.
If something is wrong, you can probably try to solve the problem and do a precheck again.
Once precheck is OK, you can detach:
./odaupgradeutil detach-node
*********
IMPORTANT
*********
odaupgradeutil 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.
*********
IMPORTANT
*********
Do you want to continue? [y/n]: y
########################## ODAUPGRADEUTIL - SAVECONF - BEGIN ##########################
Please check /opt/oracle/oak/restore/log/odaupgradeutil_saveconf_22-07-2022_11:13:47.log for details.
Backup files to /opt/oracle/oak/restore/bkp...BEGIN
Backup files to /opt/oracle/oak/restore/bkp...SUCCESS
Get provision instance...BEGIN
Get provision instance...SUCCESS
Get network configuration...BEGIN
Get network configuration...SUCCESS
Get databases...BEGIN
Database Name: TSTNOC18
Oracle Home: /u01/app/oracle/product/18.0.0.0/dbhome_1
Database Name: TSTC18
Oracle Home: /u01/app/oracle/product/18.0.0.0/dbhome_1
Database Name: TSTNOC12
Oracle Home: /u01/app/oracle/product/12.1.0.2/dbhome_1
Get databases...SUCCESS
Get Database homes...BEGIN
Checking Unified Auditing for dbhome '/u01/app/oracle/product/18.0.0.0/dbhome_1'
Unified Auditing is set to TRUE
Checking Unified Auditing for dbhome '/u01/app/oracle/product/12.1.0.2/dbhome_1'
Unified Auditing is set to TRUE
Get Database homes...SUCCESS
Get Database storages...BEGIN
Database Name: TSTNOC18
DATA destination: /u02/app/oracle/oradata/TSTNOC18/
RECO destination: /u03/app/oracle/fast_recovery_area/
REDO destination: /u04/app/oracle/redo/TSTNOC18/
Flash Cache destination:
Database Name: TSTC18
DATA destination: +DATA
RECO destination: +RECO
REDO destination: +RECO
Flash Cache destination:
Database Name: TSTNOC12
DATA destination: /u02/app/oracle/oradata/TSTNOC12
RECO destination: /u03/app/oracle/fast_recovery_area/
REDO destination: /u04/app/oracle/redo/TSTNOC12/
Flash Cache destination:
Get Database storages...SUCCESS
Get Volumes...BEGIN
Get Volumes...SUCCESS
Get Filesystems...BEGIN
Get Filesystems...SUCCESS
Get Quorum Disks...BEGIN
Get Quorum Disks...SUCCESS
SAVECONF: SUCCESS
########################## ODAUPGRADEUTIL - SAVECONF - END ##########################
########################## ODAUPGRADEUTIL - DETACHNODE - BEGIN ##########################
Please check /opt/oracle/oak/restore/log/odaupgradeutil_detachnode_22-07-2022_11:15:01.log for details.
Deconfigure databases...BEGIN
Database Name: TSTNOC18
Local Instance: TSTNOC18
Local Instance Status: RUNNING
Stopping database 'TSTNOC18'...
Removing database 'TSTNOC18' from CRS...
Database Name: TSTC18
Local Instance: TSTC18
Local Instance Status: RUNNING
Stopping database 'TSTC18'...
Removing database 'TSTC18' from CRS...
Database Name: TSTNOC12
Local Instance: TSTNOC12
Local Instance Status: RUNNING
Stopping database 'TSTNOC12'...
Removing database 'TSTNOC12' from CRS...
Deconfigure databases...SUCCESS
Get DB backup metadata...BEGIN
No backupconfigs found
No backupreports found
Quorum Disks were found
Quorum disk '/dev/SSD_QRMDSK_p1' is 1024 MB in size, no resizing needed
Quorum disk '/dev/SSD_QRMDSK_p2' is 1024 MB in size, no resizing needed
Deconfigure Grid Infrastructure...BEGIN
Deconfigure Grid Infrastructure...SUCCESS
Backup quorum disks...
Backing up quorum disk '/dev/SSD_QRMDSK_p1'
Backing up quorum disk '/dev/SSD_QRMDSK_p2'
Create serverarchives...BEGIN
Serverarchive '/opt/oracle/oak/restore/out/serverarchive_dbi-oda-x8.zip' created
Size = 365741 bytes
SHA256 checksum = a272187c6dfd248d4c03a6e793154e3d0ba3a2b002430e9ad0b7adf4b2c19598
Create serverarchives...DONE
DETACHNODE: SUCCESS
[CRITICAL] Server data archive file(s) generated at /opt/oracle/oak/restore/out . Please ensure the file(s) are copied outside the ODA system and preserved.
########################## ODAUPGRADEUTIL - DETACHNODE - END ##########################
Backup the generated files on a secure place outside the appliance. Basically there is 1 file for a lite ODA, 3 files for an HA ODA.
ls -lrt /opt/oracle/oak/restore/out/
total 368
-rw------- 1 root root 65 Jul 22 11:21 serverarchive_dbi-oda-x8.zip.sha256
-rw-r--r-- 1 root root 365741 Jul 22 11:21 serverarchive_dbi-oda-x8.zip
cp /opt/oracle/oak/restore/out/serverarchive* /backup/oda-dpr
DPR from 18.8 to 19.15: reimage the node
You won’t do a cleanup.pl prior reimaging as for normal reimaging.
Reimaging is very easy, first you need to connect the 19.15 ISO from the ILOM console, then choose CDROM for next boot, then do a power cycle. You will need to do that on each node for an HA ODA.
Reimaging takes about 50 minutes to complete.
Once done, your ODA is no more reachable on the network, because no network configuration exists on your system.
DPR from 18.8 to 19.15: configure firstnet
After reimaging is finished, you can connect through ILOM console with root/welcome1. First step after a normal reimaging is the configure firstnet, this is the same here. If you don’t remember your network settings, you can find them in the backup files:
unzip serverarchive_dbi-oda-x8.zip
cd restore/
ls
bkp configure-firstnet.rsp init.params log metadata prechecks
cat configure-firstnet.rsp
# To be used for configure-firstnet post reimage
HOSTNAME=dbi-oda-x8
INTERFACE_NAME=btbond1
VLAN=NO
IP_ADDR=10.36.0.241
SUBNET_MASK=255.255.255.0
GATEWAY=10.36.0.1

DPR from 18.8 to 19.15: patch the microcodes
This is not my case in this particular example, but if you come from 18.8 or older versions, your microcodes are probably old and never had an update. Do the check, and if some microcodes need an update, you should apply the server and/or storage patch on top of your fresh reimaging. Download the 19.15 patch, register it and apply the patch on both server and storage:
Patch 34069644: ORACLE DATABASE APPLIANCE 19.15.0.0.0 SERVER PATCH FOR ALL ODACLI/DCS STACK
odacli describe-component | grep -v ^$
...
unzip p34069644_1915000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/oda-sm-19.15.0.0.0-220530-server.zip
odacli create-prepatchreport -v 19.15.0.0.0 -s
odacli update-server -v 19.15.0.0.0
odacli update-storage -v 19.15.0.0.0
odacli describe-component | grep -v ^$
...
DPR from 18.8 to 19.15: reprovision the appliance
Now the interesting part is coming. Put back the backup files and register them in the ODA repository, unzip and register the GI clone 19.15, and do a restore node with the -g (grid) option:
odacli update-repository -f /opt/dbi/serverarchive_dbi-oda-x8.zip
cd /opt/dbi
unzip p30403673_1915000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/odacli-dcs-19.15.0.0.0-220425-GI-19.15.0.0.zip
odacli list-jobs
ID Description Created Status
---------------------------------------- --------------------------------------------------------------------------- ----------------------------------- ----------
82782a81-d8a2-4266-9074-9160f3f1b7bb Repository Update July 22, 2022 12:00:43 PM UTC Success
8e60a4ef-04d2-4985-a69b-1ef768da16f9 Repository Update July 22, 2022 12:10:43 PM UTC Success
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...
{
"jobId" : "2f7a5cdc-9de7-412a-8107-552fd4980909",
"status" : "Created",
"message" : "The system will reboot, if required, to enable the licensed number of CPU cores",
"reports" : [ ],
"createTimestamp" : "July 22, 2022 12:14:19 PM UTC",
"resourceList" : [ ],
"description" : "Restore node service - GI",
"updatedTime" : "July 22, 2022 12:14:19 PM UTC"
}
odacli describe-job -i 2f7a5cdc-9de7-412a-8107-552fd4980909
Job details
----------------------------------------------------------------
ID: 2f7a5cdc-9de7-412a-8107-552fd4980909
Description: Restore node service - GI
Status: Success
Created: July 22, 2022 12:14:19 PM CEST
Message: The system will reboot, if required, to enable the licensed number of CPU cores
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Restore node service creation July 22, 2022 12:14:28 PM CEST July 22, 2022 12:38:26 PM CEST Success
Setting up Network July 22, 2022 12:14:29 PM CEST July 22, 2022 12:14:29 PM CEST Success
Setting up Vlan July 22, 2022 12:14:48 PM CEST July 22, 2022 12:14:48 PM CEST Success
Setting up Network July 22, 2022 12:15:08 PM CEST July 22, 2022 12:15:08 PM CEST Success
network update July 22, 2022 12:15:32 PM CEST July 22, 2022 12:15:51 PM CEST Success
updating network July 22, 2022 12:15:32 PM CEST July 22, 2022 12:15:51 PM CEST Success
Setting up Network July 22, 2022 12:15:32 PM CEST July 22, 2022 12:15:32 PM CEST Success
OS usergroup 'asmdba'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
OS usergroup 'asmoper'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
OS usergroup 'asmadmin'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
OS usergroup 'dba'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
OS usergroup 'dbaoper'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
OS usergroup 'oinstall'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
OS user 'grid'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
OS user 'oracle'creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
Default backup policy creation July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
Backup config metadata persist July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
Grant permission to RHP files July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
Add SYSNAME in Env July 22, 2022 12:15:52 PM CEST July 22, 2022 12:15:52 PM CEST Success
Install oracle-ahf July 22, 2022 12:15:52 PM CEST July 22, 2022 12:16:53 PM CEST Success
Stop DCS Admin July 22, 2022 12:16:55 PM CEST July 22, 2022 12:16:55 PM CEST Success
Generate mTLS certificates July 22, 2022 12:16:55 PM CEST July 22, 2022 12:16:56 PM CEST Success
Exporting Public Keys July 22, 2022 12:16:56 PM CEST July 22, 2022 12:16:58 PM CEST Success
Creating Trust Store July 22, 2022 12:16:58 PM CEST July 22, 2022 12:16:59 PM CEST Success
Update config files July 22, 2022 12:16:59 PM CEST July 22, 2022 12:17:00 PM CEST Success
Restart DCS Admin July 22, 2022 12:17:00 PM CEST July 22, 2022 12:17:20 PM CEST Success
Unzipping storage configuration files July 22, 2022 12:17:20 PM CEST July 22, 2022 12:17:20 PM CEST Success
Reloading multipath devices July 22, 2022 12:17:20 PM CEST July 22, 2022 12:17:20 PM CEST Success
restart oakd July 22, 2022 12:17:20 PM CEST July 22, 2022 12:17:31 PM CEST Success
Reloading multipath devices July 22, 2022 12:18:32 PM CEST July 22, 2022 12:18:32 PM CEST Success
restart oakd July 22, 2022 12:18:32 PM CEST July 22, 2022 12:18:42 PM CEST Success
Restore Quorum Disks July 22, 2022 12:18:42 PM CEST July 22, 2022 12:18:43 PM CEST Success
Creating GI home directories July 22, 2022 12:18:43 PM CEST July 22, 2022 12:18:43 PM CEST Success
Extract GI clone July 22, 2022 12:18:43 PM CEST July 22, 2022 12:20:15 PM CEST Success
Creating wallet for Root User July 22, 2022 12:20:15 PM CEST July 22, 2022 12:20:20 PM CEST Success
Creating wallet for ASM Client July 22, 2022 12:20:20 PM CEST July 22, 2022 12:20:23 PM CEST Success
Grid stack creation July 22, 2022 12:20:24 PM CEST July 22, 2022 12:31:53 PM CEST Success
GI Restore with RHP July 22, 2022 12:20:24 PM CEST July 22, 2022 12:28:32 PM CEST Success
Updating GIHome version July 22, 2022 12:28:33 PM CEST July 22, 2022 12:28:36 PM CEST Success
Post cluster OAKD configuration July 22, 2022 12:31:53 PM CEST July 22, 2022 12:34:16 PM CEST Success
Mounting disk group DATA July 22, 2022 12:34:16 PM CEST July 22, 2022 12:34:17 PM CEST Success
Mounting disk group RECO July 22, 2022 12:34:25 PM CEST July 22, 2022 12:34:33 PM CEST Success
Setting ACL for disk groups July 22, 2022 12:34:40 PM CEST July 22, 2022 12:34:44 PM CEST Success
Register Scan and Vips to Public Network July 22, 2022 12:34:44 PM CEST July 22, 2022 12:34:46 PM CEST Success
Configure export clones resource July 22, 2022 12:35:40 PM CEST July 22, 2022 12:35:41 PM CEST Success
Adding Volume COMMONSTORE to Clusterware July 22, 2022 12:35:43 PM CEST July 22, 2022 12:35:47 PM CEST Success
Adding Volume DATTSTNOC12 to Clusterware July 22, 2022 12:35:47 PM CEST July 22, 2022 12:35:50 PM CEST Success
Adding Volume DATTSTNOC18 to Clusterware July 22, 2022 12:35:50 PM CEST July 22, 2022 12:35:54 PM CEST Success
Adding Volume RDOTSTNOC12 to Clusterware July 22, 2022 12:35:54 PM CEST July 22, 2022 12:35:57 PM CEST Success
Adding Volume RDOTSTNOC18 to Clusterware July 22, 2022 12:35:57 PM CEST July 22, 2022 12:36:01 PM CEST Success
Adding Volume RECO to Clusterware July 22, 2022 12:36:01 PM CEST July 22, 2022 12:36:04 PM CEST Success
Enabling Volume(s) July 22, 2022 12:36:04 PM CEST July 22, 2022 12:37:16 PM CEST Success
Provisioning service creation July 22, 2022 12:38:25 PM CEST July 22, 2022 12:38:25 PM CEST Success
persist new agent state entry July 22, 2022 12:38:25 PM CEST July 22, 2022 12:38:25 PM CEST Success
persist new agent state entry July 22, 2022 12:38:25 PM CEST July 22, 2022 12:38:25 PM CEST Success
Restart Zookeeper and DCS Agent July 22, 2022 12:38:25 PM CEST July 22, 2022 12:38:26 PM CEST Success
df -h /dev/asm/*
Filesystem Size Used Avail Use% Mounted on
/dev/asm/acfsclone-207 150G 7.0G 144G 5% /opt/oracle/oak/pkgrepos/orapkgs/clones
/dev/asm/commonstore-207 5.0G 319M 4.7G 7% /opt/oracle/dcs/commonstore
/dev/asm/dattstnoc12-207 100G 2.2G 98G 3% /u02/app/oracle/oradata/TSTNOC12
/dev/asm/dattstnoc18-207 100G 2.1G 98G 3% /u02/app/oracle/oradata/TSTNOC18
/dev/asm/rdotstnoc12-158 14G 13G 1.7G 88% /u04/app/oracle/redo/TSTNOC12
/dev/asm/rdotstnoc18-158 29G 25G 4.7G 84% /u04/app/oracle/redo/TSTNOC18
/dev/asm/reco-158 297G 976M 297G 1% /u03/app/oracle
su - grid
asmcmd ls +data/TSTC18/datafile/*
SYSAUX.271.1110706283
SYSTEM.270.1110706247
UNDOTBS1.272.1110706299
USERS.283.1110707033
exit
My ACFS and ASM files are there.
DPR from 18.8 to 19.15: reprovision the DB homes and remap the databases
I now need the DB clones files to be deployed. If you remember, I had 2x 18.8 databases, and 1x 12.1 database. Required clone files can be found in a list:
cat /opt/oracle/oak/restore/metadata/dbVersions.list
# List of all db versions found, to be used for downloading required clones before DB restore
18.8.0.0.191015
12.1.0.2.191015
I will use DB clones coming from my 18.8.
I first need to create the dbhome storage:
odacli configure-dbhome-storage -dg DATA -s 80
And add the DB clones to the repository:
unzip p23494992_188000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/odacli-dcs-18.8.0.0.0-191226-DB-12.1.0.2.zip
unzip p27604558_188000_Linux-x86-64.zip
odacli update-repository -f /opt/dbi/odacli-dcs-18.8.0.0.0-191226-DB-18.0.0.0.zip
Now it’s possible to remap the database to the DB homes with the restore-node -d (database):
odacli restore-node -d
odacli describe-job -i 4b579397-2c93-420a-846b-5a2aebe71d32
Job details
----------------------------------------------------------------
ID: 4b579397-2c93-420a-846b-5a2aebe71d32
Description: Restore node service - Database
Status: Success
Created: July 22, 2022 4:36:29 PM CEST
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Setting up ssh equivalance July 22, 2022 4:36:49 PM CEST July 22, 2022 4:36:49 PM CEST Success
DB home creation: OraDB18000_home1 July 22, 2022 4:36:50 PM CEST July 22, 2022 4:39:31 PM CEST Success
Validating dbHome available space July 22, 2022 4:36:50 PM CEST July 22, 2022 4:36:50 PM CEST Success
Creating DbHome Directory July 22, 2022 4:36:50 PM CEST July 22, 2022 4:36:50 PM CEST Success
Create required directories July 22, 2022 4:36:50 PM CEST July 22, 2022 4:36:50 PM CEST Success
Extract DB clone July 22, 2022 4:36:50 PM CEST July 22, 2022 4:38:15 PM CEST Success
ProvDbHome by using RHP July 22, 2022 4:38:15 PM CEST July 22, 2022 4:39:12 PM CEST Success
Enable DB options July 22, 2022 4:39:13 PM CEST July 22, 2022 4:39:29 PM CEST Success
Creating wallet for DB Client July 22, 2022 4:39:31 PM CEST July 22, 2022 4:39:31 PM CEST Success
DB home creation: OraDB12102_home1 July 22, 2022 4:39:31 PM CEST July 22, 2022 4:42:47 PM CEST Success
Validating dbHome available space July 22, 2022 4:39:31 PM CEST July 22, 2022 4:39:31 PM CEST Success
Creating DbHome Directory July 22, 2022 4:39:31 PM CEST July 22, 2022 4:39:31 PM CEST Success
Create required directories July 22, 2022 4:39:31 PM CEST July 22, 2022 4:39:31 PM CEST Success
Extract DB clone July 22, 2022 4:39:31 PM CEST July 22, 2022 4:41:02 PM CEST Success
ProvDbHome by using RHP July 22, 2022 4:41:02 PM CEST July 22, 2022 4:42:30 PM CEST Success
Enable DB options July 22, 2022 4:42:30 PM CEST July 22, 2022 4:42:40 PM CEST Success
Creating wallet for DB Client July 22, 2022 4:42:46 PM CEST July 22, 2022 4:42:47 PM CEST Success
Persist database storage locations July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Save metadata for TSTNOC18 July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Save metadata for TSTC18 July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Save metadata for TSTNOC12 July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Persist database storages July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Save metadata for TSTNOC18 July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Save metadata for TSTC18 July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Save metadata for TSTNOC12 July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:47 PM CEST Success
Restore database: TSTNOC18 July 22, 2022 4:42:47 PM CEST July 22, 2022 4:44:11 PM CEST Success
Adding database TSTNOC18 to GI July 22, 2022 4:42:47 PM CEST July 22, 2022 4:42:49 PM CEST Success
Adding database instance(s) to GI July 22, 2022 4:42:49 PM CEST July 22, 2022 4:42:49 PM CEST Success
Modifying SPFILE for database July 22, 2022 4:42:49 PM CEST July 22, 2022 4:43:33 PM CEST Success
Restore password file for database July 22, 2022 4:43:33 PM CEST July 22, 2022 4:43:34 PM CEST Success
Start instance(s) for database July 22, 2022 4:43:34 PM CEST July 22, 2022 4:43:52 PM CEST Success
Persist metadata for database July 22, 2022 4:43:52 PM CEST July 22, 2022 4:43:52 PM CEST Success
Clear all listeners from Database July 22, 2022 4:43:52 PM CEST July 22, 2022 4:43:53 PM CEST Success
Run SqlPatch July 22, 2022 4:43:56 PM CEST July 22, 2022 4:44:11 PM CEST Success
Restore database: TSTC18 July 22, 2022 4:44:11 PM CEST July 22, 2022 4:46:05 PM CEST Success
Adding database TSTC18 to GI July 22, 2022 4:44:11 PM CEST July 22, 2022 4:44:13 PM CEST Success
Adding database instance(s) to GI July 22, 2022 4:44:13 PM CEST July 22, 2022 4:44:13 PM CEST Success
Modifying SPFILE for database July 22, 2022 4:44:13 PM CEST July 22, 2022 4:45:05 PM CEST Success
Restore password file for database July 22, 2022 4:45:05 PM CEST July 22, 2022 4:45:05 PM CEST Success
Start instance(s) for database July 22, 2022 4:45:05 PM CEST July 22, 2022 4:45:28 PM CEST Success
Persist metadata for database July 22, 2022 4:45:28 PM CEST July 22, 2022 4:45:28 PM CEST Success
Clear all listeners from Database July 22, 2022 4:45:28 PM CEST July 22, 2022 4:45:29 PM CEST Success
Run SqlPatch July 22, 2022 4:45:32 PM CEST July 22, 2022 4:46:05 PM CEST Success
Restore database: TSTNOC12 July 22, 2022 4:46:05 PM CEST July 22, 2022 4:47:38 PM CEST Success
Adding database TSTNOC12 to GI July 22, 2022 4:46:05 PM CEST July 22, 2022 4:46:07 PM CEST Success
Adding database instance(s) to GI July 22, 2022 4:46:07 PM CEST July 22, 2022 4:46:07 PM CEST Success
Modifying SPFILE for database July 22, 2022 4:46:07 PM CEST July 22, 2022 4:46:40 PM CEST Success
Restore password file for database July 22, 2022 4:46:40 PM CEST July 22, 2022 4:46:41 PM CEST Success
Start instance(s) for database July 22, 2022 4:46:41 PM CEST July 22, 2022 4:46:59 PM CEST Success
Persist metadata for database July 22, 2022 4:46:59 PM CEST July 22, 2022 4:46:59 PM CEST Success
Clear all listeners from Database July 22, 2022 4:46:59 PM CEST July 22, 2022 4:47:00 PM CEST Success
Run SqlPatch July 22, 2022 4:47:03 PM CEST July 22, 2022 4:47:38 PM CEST Success
Restore Object Stores July 22, 2022 4:47:38 PM CEST July 22, 2022 4:47:38 PM CEST Success
Remount NFS backups July 22, 2022 4:47:38 PM CEST July 22, 2022 4:47:38 PM CEST Success
Restore BackupConfigs July 22, 2022 4:47:38 PM CEST July 22, 2022 4:47:38 PM CEST Success
Reattach backupconfigs to DBs July 22, 2022 4:47:38 PM CEST July 22, 2022 4:47:39 PM CEST Success
Restore backup reports July 22, 2022 4:47:39 PM CEST July 22, 2022 4:47:39 PM CEST Success
Everything looks OK.
Let’s check databases and pmons:
odacli list-databases
ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID
---------------------------------------- ---------- -------- -------------------- ---------- -------- -------- ---------- ------------ ----------------------------------------
0a06b4a6-29a4-41e9-bd38-f1f2984f3590 TSTNOC18 SI 18.8.0.0.191015 false OLTP odb6 ACFS CONFIGURED 3514b78c-a1c8-42dd-a9b7-ff13d5a496fe
35895ff7-f485-43d9-8877-bdc0a872a4bf TSTC18 SI 18.8.0.0.191015 true OLTP odb2 ASM CONFIGURED 3514b78c-a1c8-42dd-a9b7-ff13d5a496fe
9c18400f-403c-4a6b-b0f7-7ec8bd7d4c87 TSTNOC12 SI 12.1.0.2.191015 false OLTP odb4 ACFS CONFIGURED 3b00a7ce-bdb4-4d4c-8153-9dac8dff6e61
ps -ef | grep pmon | grep -v grep
oracle 547 1 0 16:45 ? 00:00:00 ora_pmon_TSTC18
grid 6986 1 0 14:30 ? 00:00:00 asm_pmon_+ASM1
oracle 13404 1 0 16:46 ? 00:00:00 ora_pmon_TSTNOC12
grid 31490 1 0 14:35 ? 00:00:00 apx_pmon_+APX1
oracle 87126 1 0 16:43 ? 00:00:00 ora_pmon_TSTNOC18
Perfect!
I would recommend deploying newest DB homes and migrating your databases to get rid of these old versions.
Conclusion
This feature is really convenient, and it works. It’s definitely cleaner than patching, and faster than a complete reimaging. I just hope this will be possible for all starting version in the next releases. For now, I’ve no plan to use it because most of the ODAs I work on are now already using 19.x. Those using old versions are also running on old hardware.
Waheed
17.01.2024Is this procedure applicable to ODA OVM environment?