{"id":40229,"date":"2025-09-09T19:45:04","date_gmt":"2025-09-09T17:45:04","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=40229"},"modified":"2025-09-09T19:45:06","modified_gmt":"2025-09-09T17:45:06","slug":"reimage-your-oda-from-scratch","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/","title":{"rendered":"Reimage your ODA from scratch"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduction\">Introduction<\/h2>\n\n\n\n<p>Oracle Database Appliance is still very popular today. Provisioning is fast: from unboxing to a first running database is done in one day. And everything is standardized.<\/p>\n\n\n\n<p>Patching is not that straight forward. First, you can only apply the latest patch on top of the 4 previous ones, and if you come from an older release, you may have 2, 3 or more patches to apply to reach the current version. It could take hours, even days.<\/p>\n\n\n\n<p>The question one could ask is if it wouldn&#8217;t be more efficient to do a full ODA reimaging instead of patching. Let&#8217;s try to find out.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-environment-and-upgrade-plan\">Environment and upgrade plan<\/h2>\n\n\n\n<p>This is a &#8220;real&#8221; environment composed of 4x ODA X8-2M: 2x ODAs for production, 2x ODAs for test\/development. These servers have been provisioned in 2020 with the first 19c production available on ODA: 19.6. They were updated twice in the past years to reach 19.20 in 2024. These 2 upgrades were not that easy for some reasons, and systems are not that clean in my opinion.<\/p>\n\n\n\n<p>According to MOS note 2757884.1, these ODAs are supported until August 2027, meaning that the last patch for these servers will be provided at this time. My client wants to keep them for 2 more years at least. So it&#8217;s definitely worth it to apply the patch.<\/p>\n\n\n\n<p>I could have applied patch 19.24 then patch 19.27 on these ODAs, but as the first jump requires a Data Preserving Reprovisioning (meaning an OS reimaging) and as my ODAs are not that clean, I discussed with my client and we chose to reimage the servers from scratch.<\/p>\n\n\n\n<p>Note that the production ODAs we will focus on are running 15 Enterprise Edition databases, and that a Data Guard configuration exists for each of them.<\/p>\n\n\n\n<p>The plan is to switch all primaries to one ODA, reimage the other one, wait 2 weeks to see if everything is fine, do the switchover to the freshly reimaged ODA and reimage the other one the same way. As I don&#8217;t want to patch my databases now, I will deploy a 19.20 DB home and migrate to the latest version later.<\/p>\n\n\n\n<p>Note that when I started this reimaging, current patch was 19.27. In the meantime, 19.28 becomes available.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-before-starting-check-oda-s-health\">Before starting: check ODA&#8217;s health<\/h2>\n\n\n\n<p>Let&#8217;s first check if the ODA I planned to reimage is healthy. You should normally monitor the hardware alerts on your ODAs, and eventually configure Automatic Service Request (ASR) to address hardware issues as soon as possible.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odaadmcli show server | grep Problem\n\tOpen Problems            : 0\n\tOpen Problems Report     : System is healthy<\/code><\/pre>\n\n\n\n<p>No problem on this ODA. I wouldn&#8217;t do anything on an ODA that is not healthy: fix up hardware troubles before patching or reimaging an ODA.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-check-if-standby-databases-are-synced-and-disable-archive-transport\">Check if standby databases are synced and disable archive transport<\/h2>\n\n\n\n<p>Apart from DBTEST which is primary (I always have a standalone test database on my ODAs), every database must be a Physical Standby Database. Expected downtime for such a reimaging is several hours or days depending on the number of databases. So, checking if sync is OK is a good practice. I also disable transport to standby databases and step down Data Guard to Maximum Performance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vi check_role.sql\nconn \/ as sysdba\nset pages 0\nselect name||' is here '|| database_role from v$database;\nexit;\n\nfor a in `ps -ef | grep pmon  | grep -v grep | grep -v ASM | grep -v APX | cut -c 58- | sort`; do  . oraenv &lt;&lt;&lt; $a 1&gt; \/dev\/null ; sqlplus -s \/nolog @check_role; done\nBPAPRD is here PHYSICAL STANDBY\n\nDBTEST is here PRIMARY\n\nBMC3PRD is here PHYSICAL STANDBY\n\nMLOGAR is here PHYSICAL STANDBY\n\nNIMSHMP is here PHYSICAL STANDBY\n\nNOVOTEC is here PHYSICAL STANDBY\n\nNTRAMPRD is here PHYSICAL STANDBY\n\nNWTASKP is here PHYSICAL STANDBY\n\nOPERA is here PHYSICAL STANDBY\n\nPBYPRD is here PHYSICAL STANDBY\n\nPRAXPRD is here PHYSICAL STANDBY\n\nRCAT is here PHYSICAL STANDBY\n\nSMARTPRD is here PHYSICAL STANDBY\n\nSMKPRD is here PHYSICAL STANDBY\n\nSPORT1 is here PHYSICAL STANDBY\n\nSPORT2 is here PHYSICAL STANDBY\n\n\nfor a in `ps -ef | grep pmon  | grep -v grep | grep -v ASM | grep -v APX | grep -v DBTEST | cut -c 58- | sort`; do echo $a ; . oraenv &lt;&lt;&lt; $a 1&gt; \/dev\/null ; dgmgrl \/ \"show configuration lag\" | grep Lag; done\nBPAPRD\n             Transport Lag:\t 0 seconds (computed 1 second ago)\n             Apply Lag:          0 seconds (computed 1 second ago)\nBMC3PRD\n                  Transport Lag:      0 seconds (computed 0 seconds ago)\n                  Apply Lag:          0 seconds (computed 0 seconds ago)\nMLOGAR\n                   Transport Lag:      0 seconds (computed 1 second ago)\n                   Apply Lag:          0 seconds (computed 1 second ago)\nNIMSHMP\n                  Transport Lag:      0 seconds (computed 0 seconds ago)\n                  Apply Lag:          0 seconds (computed 0 seconds ago)\nNOVOTEC\n                  Transport Lag:      0 seconds (computed 0 seconds ago)\n                  Apply Lag:          0 seconds (computed 0 seconds ago)\nNTRAMPRD\n                    Transport Lag:\t0 seconds (computed 0 seconds ago)\n                    Apply Lag:          0 seconds (computed 0 seconds ago)\nNWTASKP\n                  Transport Lag:      0 seconds (computed 0 seconds ago)\n                  Apply Lag:          0 seconds (computed 0 seconds ago)\nOPERA\n             Transport Lag:\t 0 seconds (computed 0 seconds ago)\n             Apply Lag:          0 seconds (computed 0 seconds ago)\nPBYPRD\n                  Transport Lag:      0 seconds (computed 0 seconds ago)\n                  Apply Lag:          0 seconds (computed 0 seconds ago)\nPRAXPRD\n             Transport Lag:\t 0 seconds (computed 1 second ago)\n             Apply Lag:          0 seconds (computed 1 second ago)\nRCAT\n              Transport Lag:\t  0 seconds (computed 1 second ago)\n              Apply Lag:          0 seconds (computed 1 second ago)\n\u2003\nSMARTPRD\n             Transport Lag:\t 0 seconds (computed 0 seconds ago)\n             Apply Lag:          0 seconds (computed 0 seconds ago)\nSMKPRD\n             Transport Lag:\t 0 seconds (computed 1 second ago)\n             Apply Lag:          0 seconds (computed 1 second ago)\nSPORT1\n             Transport Lag:\t 0 seconds (computed 0 seconds ago)\n             Apply Lag:          0 seconds (computed 0 seconds ago)\nSPORT2\n             Transport Lag:\t 0 seconds (computed 0 seconds ago)\n             Apply Lag:          0 seconds (computed 0 seconds ago)\n\nfor a in `ps -ef | grep pmon  | grep -v grep | grep -v ASM | grep -v APX | cut -c 58- | sort`; do echo $a ; . oraenv &lt;&lt;&lt; $a 1&gt; \/dev\/null ; dgmgrl \/ \"edit configuration set protection mode as MaxPerformance;\" | grep Succeeded; dgmgrl \/ \"EDIT DATABASE ${a}_IN SET STATE='TRANSPORT-OFF';\" | grep Succeed ; done\nBPAPRD\nSucceeded.\nSucceeded.\nDBTEST\nBMC3PRD\nSucceeded.\nSucceeded.\nMLOGAR\nSucceeded.\nSucceeded\nNIMSHMP\nSucceeded.\nSucceeded.\nNOVOTEC\nSucceeded.\nSucceeded.\nNTRAMPRD\nSucceeded.\nSucceeded\nNWTASKP\nSucceeded.\nSucceeded.\nOPERA\nSucceeded.\nSucceeded.\nPBYPRD\nSucceeded.\nSucceeded.\nPRAXPRD\nSucceeded.\nSucceeded.\nRCAT\nSucceeded.\nSucceeded.\nSMARTPRD\nSucceeded.\nSucceeded.\nSMKPRD\nSucceeded.\nSucceeded.\nSPORT1\nSucceeded.\nSucceeded.\nSPORT2\nSucceeded.\nSucceeded.\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-backup-important-files\">Backup important files<\/h2>\n\n\n\n<p>As you will erase everything on this ODA, backup everything that needs to be backed up on a remote filesystem (\/backup here). Usually, I use this script:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/backup\/Patch19.27\/dbi_prepatch_backup.sh\n# Backup important files before patching\nexport BKPPATH=\/backup\/Patch19.27\/backup_ODA_`hostname`_`date +\"%Y%m%d_%H%M\"`\necho \"Backing up to \" $BKPPATH\nmkdir -p $BKPPATH\nodacli list-databases &gt; $BKPPATH\/list-databases.txt\nps -ef | grep pmon | grep -v ASM | grep -v APX | grep -v grep | cut -c 58- | sort &gt; $BKPPATH\/running-instances.txt\nodacli list-dbhomes &gt; $BKPPATH\/list-dbhomes.txt\nodacli list-dbsystems &gt; $BKPPATH\/list-dbsystems.txt\nodacli list-vms &gt; $BKPPATH\/list-vms.txt\ncrontab -u oracle -l  &gt; $BKPPATH\/crontab-oracle.txt\ncrontab -u grid -l  &gt; $BKPPATH\/crontab-grid.txt\ncrontab -l  &gt; $BKPPATH\/crontab-root.txt\n\ncat \/etc\/fstab &gt;  $BKPPATH\/fstab.txt\ncat \/etc\/oratab &gt;  $BKPPATH\/oratab.txt\ncat \/etc\/sysconfig\/network &gt;  $BKPPATH\/etc-sysconfig-network.txt\ncat \/etc\/hosts  &gt;  $BKPPATH\/hosts\ncat \/etc\/resolv.conf  &gt;  $BKPPATH\/resolv.conf\ncat \/etc\/sysctl.conf  &gt;  $BKPPATH\/\n\ncp \/etc\/krb5.conf  $BKPPATH\/\ncp \/etc\/krb5.keytab  $BKPPATH\/\nmkdir $BKPPATH\/network-scripts\ncp  \/etc\/sysconfig\/network-scripts\/ifcfg*  $BKPPATH\/network-scripts\/\nodacli describe-system &gt; $BKPPATH\/describe-system.txt\nodacli  describe-component &gt;  $BKPPATH\/describe-component.txt\nHISTFILE=~\/.bash_history\nset -o history\nhistory &gt; $BKPPATH\/history-root.txt\ncp \/home\/oracle\/.bash_history $BKPPATH\/history-oracle.txt\ndf -h &gt;  $BKPPATH\/filesystems-status.txt\n\nfor a in `odacli list-dbhomes -j | grep dbHomeLocation | awk -F '\"' '{print $4}' | sort` ; do mkdir -p $BKPPATH\/$a\/network\/admin\/ ; cp $a\/network\/admin\/tnsnames.ora $BKPPATH\/$a\/network\/admin\/; cp $a\/network\/admin\/sqlnet.ora $BKPPATH\/$a\/network\/admin\/; done\nfor a in `odacli list-dbhomes -j | grep dbHomeLocation | awk -F '\"' '{print $4}' | sort` ; do mkdir -p $BKPPATH\/$a\/owm\/ ; cp -r $a\/owm\/* $BKPPATH\/$a\/owm\/; done\ncp `ps -ef | grep -v grep | grep LISTENER | awk -F ' ' '{print $8}' | awk -F 'bin' '{print $1}'`network\/admin\/listener.ora $BKPPATH\/gridhome-listener.ora\ncp `ps -ef | grep -v grep | grep LISTENER | awk -F ' ' '{print $8}' | awk -F 'bin' '{print $1}'`\/network\/admin\/sqlnet.ora $BKPPATH\/gridhome-sqlnet.ora\n\ntar czf $BKPPATH\/u01-app-oracle-admin.tgz \/u01\/app\/oracle\/admin\/\ntar czf $BKPPATH\/u01-app-odaorabase-oracle-admin.tgz \/u01\/app\/odaorabase\/oracle\/admin\/\ntar czf $BKPPATH\/u01-app-oracle-local.tgz \/u01\/app\/oracle\/local\/\ntar czf $BKPPATH\/home.tgz \/home\/\ncp \/etc\/passwd $BKPPATH\/\ncp \/etc\/group $BKPPATH\/\n\necho \"End\"\necho \"Backup files size:\"\ndu -hs  $BKPPATH\necho \"Backup files content:\"\nls -lrt  $BKPPATH\n\nsh \/backup\/Patch19.27\/dbi_prepatch_backup.sh\n...<\/code><\/pre>\n\n\n\n<p>This backup script is probably not extensive: take some time to make a suitable one for your needs.<\/p>\n\n\n\n<p>Let&#8217;s also take a backup of the DB homes, in my case I only have one:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tar czf \/backup\/Patch19.27\/odaprdcr_dbhome.tgz \/u01\/app\/odaorahome\/oracle\/product\/19.0.0.0\/dbhome_4\n\nls -lrth \/backup\/Patch19.27\/odaprdcr_dbhome.tgz\n\n-rw-r--r-- 1 root root 5.9G Sep  3 10:50 \/backup\/Patch19.27\/odaprdcr_dbhome.tgz<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-backup-standby-spfiles-and-controlfiles\">Backup standby spfiles and controlfiles<\/h2>\n\n\n\n<p>As this ODA is only running standby databases, I don&#8217;t need to back them up. I can use the backup from primary assuming a reliable backup strategy has been deployed on production&#8217;s databases. 2 files differ between primary and standby databases: spfile and controlfile. So let&#8217;s backup these 2 files on all databases, it just needs a couple of minutes for all:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>su - oracle\n\nmkdir \/backup\/Patch19.27\/ctl_spf\n\ncat \/backup\/Patch19.27\/bck_ctl_spf.rcv\n\nbackup current controlfile format '\/backup\/Patch19.27\/ctl_spf\/ctl_%d_%T.bck';\nbackup spfile format '\/backup\/Patch19.27\/ctl_spf\/spf_%d_%T.bck';\nexit;\n\nfor a in `ps -ef | grep pmon  | grep -v grep | grep -v ASM | grep -v APX | grep -v DBTEST | cut -c 58- | sort`; do echo $a ; . oraenv &lt;&lt;&lt; $a 1&gt; \/dev\/null ; rman target \/ cmdfile=\"\/backup\/Patch19.27\/bck_ctl_spf.rcv\" | grep Succeeded; done\n\nls -lrt \/backup\/Patch19.27\/ctl_spf\n\ntotal 33592\n-rw-r----- 1 oracle asmadmin 46104576 Sep  3 10:33 ctl_BPAPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:33 spf_BPAPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin 21233664 Sep  3 10:33 ctl_BMC3PRD_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:33 spf_BMC3PRD_20250903.bck\n-rw-r----- 1 oracle asmadmin 27656192 Sep  3 10:33 ctl_MLOGAR_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:34 spf_MLOGAR_20250903.bck\n-rw-r----- 1 oracle asmadmin 30965760 Sep  3 10:34 ctl_NIMSHMP_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:34 spf_NIMSHMP_20250903.bck\n-rw-r----- 1 oracle asmadmin 27394048 Sep  3 10:34 ctl_NOVOTEC_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:34 spf_NOVOTEC_20250903.bck\n-rw-r----- 1 oracle asmadmin 77955072 Sep  3 10:34 ctl_NTRAMPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:34 spf_NTRAMPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin 29294592 Sep  3 10:34 ctl_NWTASKP_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:34 spf_NWTASKP_20250903.bck\n-rw-r----- 1 oracle asmadmin 66387968 Sep  3 10:35 ctl_OPERA_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:35 spf_OPERA_20250903.bck\n-rw-r----- 1 oracle asmadmin 20905984 Sep  3 10:35 ctl_PBYPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:35 spf_PBYPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin 28868608 Sep  3 10:35 ctl_PRAXPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:35 spf_PRAXPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin 14352384 Sep  3 10:35 ctl_RCAT_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:35 spf_RCAT_20250903.bck\n-rw-r----- 1 oracle asmadmin 35028992 Sep  3 10:35 ctl_SMARTPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:35 spf_SMARTPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin 21594112 Sep  3 10:35 ctl_SMKPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:36 spf_SMKPRD_20250903.bck\n-rw-r----- 1 oracle asmadmin 36798464 Sep  3 10:36 ctl_SPORT1_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:36 spf_SPORT1_20250903.bck\n-rw-r----- 1 oracle asmadmin 20840448 Sep  3 10:36 ctl_SPORT2_20250903.bck\n-rw-r----- 1 oracle asmadmin   114688 Sep  3 10:36 spf_SPORT2_20250903.bck<\/code><\/pre>\n\n\n\n<p>The restore will be easier with these files.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-prepare-the-json-file-for-oda-deployment\">Prepare the json file for ODA deployment<\/h2>\n\n\n\n<p>Before doing the cleanup, prepare the json file you will use for deploying again your ODA.<\/p>\n\n\n\n<p>You can use the one used for initial deployment, or eventually create a new one.<\/p>\n\n\n\n<p>You will need these things for the json:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>which edition you use: Standard Edition or Enterprise Edition<\/li>\n\n\n\n<li>hostname, IP, netmask and gateway of your server<\/li>\n\n\n\n<li>hostname, IP, netmask and gateway of your ILOM<\/li>\n\n\n\n<li>user and group ids if you don&#8217;t use the default ones<\/li>\n\n\n\n<li>ratio between DATA and RECO for disk partitioning (you may change from what was configured before)<\/li>\n\n\n\n<li>DNS and NTP IPs<\/li>\n\n\n\n<li>default&#8217;s network interface (usually btbond1)<\/li>\n\n\n\n<li>DBTEST parameters if you create a test database during provisioning (I would recommend doing so)<\/li>\n<\/ul>\n\n\n\n<p>You will find most of these parameters in the backup you&#8217;ve done with the script.<\/p>\n\n\n\n<p>Here is my json file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"instance\": {\n        \"instanceBaseName\": \"odaprdcr\",\n        \"dbEdition\": \"EE\",\n        \"objectStoreCredentials\": null,\n        \"name\": \"odaprdcr\",\n        \"systemPassword\": \"*********\",\n        \"timeZone\": \"Europe\/Zurich\",\n        \"domainName\": \"dbi-services.ch\",\n        \"ntpServers\" : &#091;\"10.8.122.132\",\"10.8.122.133\"],\n        \"dnsServers\" : &#091;\"10.8.122.132\",\"10.8.122.233\"],\n        \"isMultiUserAccessEnabled\": \"false\",\n        \"isRoleSeparated\": true,\n        \"osUserGroup\": {\n            \"users\": &#091;\n                {\n                    \"userName\": \"oracle\",\n                    \"userRole\": \"oracleUser\",\n                    \"userId\": 1000\n                },\n                {\n                    \"userName\": \"grid\",\n                    \"userRole\": \"gridUser\",\n                    \"userId\": 1001\n                }\n            ],\n            \"groups\": &#091;\n                {\n                    \"groupName\": \"oinstall\",\n                    \"groupRole\": \"oinstall\",\n                    \"groupId\": 1001\n                },\n                {\n                    \"groupName\": \"dbaoper\",\n                    \"groupRole\": \"dbaoper\",\n                    \"groupId\": 1002\n                },\n                {\n                    \"groupName\": \"dba\",\n                    \"groupRole\": \"dba\",\n                    \"groupId\": 1000\n                },\n                {\n                    \"groupName\": \"asmadmin\",\n                    \"groupRole\": \"asmadmin\",\n                    \"groupId\": 1004\n                },\n                {\n                    \"groupName\": \"asmoper\",\n                    \"groupRole\": \"asmoper\",\n                    \"groupId\": 1005\n                },\n                {\n                    \"groupName\": \"asmdba\",\n                    \"groupRole\": \"asmdba\",\n                    \"groupId\": 1006\n                }\n            ]\n        }\n    },\n    \"nodes\": &#091;\n        {\n            \"nodeNumber\": \"0\",\n            \"nodeName\": \"odaprdcr\",\n            \"network\": &#091;\n                {\n                    \"ipAddress\" : \"10.192.100.103\",\n                    \"subNetMask\" : \"255.255.255.0\",\n                    \"gateway\" : \"10.192.100.254\",\n                    \"nicName\": \"btbond1\",\n                    \"networkType\": &#091;\n                        \"Public\"\n                    ],\n                    \"isDefaultNetwork\": true\n                }\n            ],\n            \"ilom\": {\n                \"ilomName\": \"odaprdcr-ilom\",\n                \"ipAddress\":\"10.192.200.103\",\n                \"subNetMask\":\"255.255.255.0\",\n                \"gateway\":\"10.192.200.254\"\n            }\n        }\n    ],\n    \"grid\": {\n        \"vip\": &#091;],\n        \"diskGroup\": &#091;\n            {\n                \"diskGroupName\": \"DATA\",\n                \"diskPercentage\": 85,\n                \"redundancy\": \"NORMAL\"\n            },\n            {\n                \"diskGroupName\": \"RECO\",\n                \"diskPercentage\": 15,\n                \"redundancy\": \"NORMAL\"\n            }\n        ],\n        \"language\": \"en\",\n        \"scan\": null\n    },\n    \"database\": {\n        \"dbName\": \"DBTEST\",\n        \"dbCharacterSet\": {\n            \"characterSet\": \"AL32UTF8\",\n            \"nlsCharacterset\": \"AL16UTF16\",\n            \"dbTerritory\": \"AMERICA\",\n            \"dbLanguage\": \"AMERICAN\"\n        },\n        \"dbRedundancy\": null,\n        \"dbRole\": \"PRIMARY\",\n        \"adminPassword\": \"*********\",\n        \"dbEdition\": \"EE\",\n        \"databaseUniqueName\": \"DBTEST\",\n        \"dbClass\": \"OLTP\",\n        \"dbVersion\": \"19.27.0.0.250415\",\n        \"dbHomeId\": null,\n        \"instanceOnly\": false,\n        \"isCdb\": true,\n        \"pdBName\": \"PDB1\",\n        \"dbShape\": \"odb1\",\n        \"pdbAdminuserName\": \"pdbadmin\",\n        \"enableTDE\": false,\n        \"dbType\": \"SI\",\n        \"dbStorage\": \"ASM\",\n        \"dbConsoleEnable\": false,\n        \"dbOnFlashStorage\": false,\n        \"backupConfigId\": null,\n        \"rmanBkupPassword\": null,\n        \"tdePassword\": null\n    },\n    \"acr\": {\n        \"acrEnable\": false\n    },\n    \"sysOraHomeStorage\": {\n        \"diskgroup\": \"DATA\",\n        \"volumeSize\": 80\n    }\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cleanup-the-data-disks\">Cleanup the data disks<\/h2>\n\n\n\n<p>Cleanup of the data disk headers is mandatory before reimaging, otherwise provisioning will fail. Make sure you&#8217;re on the correct ODA, you can&#8217;t undo this action:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/oracle\/oak\/onecmd\/cleanup.pl\nINFO: Log file is \/opt\/oracle\/oak\/log\/odaprdcr\/cleanup\/cleanup_2025-09-03_10-53-04.log\nINFO: Log file is \/opt\/oracle\/oak\/log\/odaprdcr\/cleanup\/dcsemu_diag_precleanup_2025-09-03_10-53-04.log\n\nINFO: *******************************************************************\nINFO: ** Starting process to cleanup provisioned host odaprdcr         **\nINFO: *******************************************************************\nINFO: Default mode being used to cleanup a provisioned system.\nINFO: It will change all ASM disk status from MEMBER to FORMER\nDo you want to continue (yes\/no) : yes\nINFO: nodes will be rebooted\nDo you want to continue (yes\/no) : yes\nINFO: \/u01\/app\/19.20.0.0\/oracle\/bin\/crsctl.bin\n\nINFO: *************************************\nINFO: ** Checking for GI bits presence\nINFO: *************************************\nINFO: GI bits \/u01\/app\/19.20.0.0\/oracle found on system under \/u01\/app directory...\n\nINFO: ** Disabling AFD filtering\nSUCCESS: AFD filtering disabled on all devices\nINFO: ** Saving disk partition info\nINFO: *************************************\nINFO: ** Executing Stop Clusterware commands\nINFO: *************************************\nINFO: *************************************\nINFO: ** Remove Oracle Stack\n\u2026\n\nINFO: Rebooting the system via &lt;reboot&gt;...\nINFO: Executing &lt;reboot&gt;\n\nINFO: Cleanup was successful\nINFO: Log file is \/opt\/oracle\/oak\/log\/odaprdcr\/cleanup\/cleanup_2025-09-03_10-53-04.log\n\nWARNING: After system reboot, please re-run \"odacli update-repository\" for GI\/DB clones,\nWARNING: before running \"odacli create-appliance\".<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-reimage-with-the-latest-os\">Reimage with the latest OS<\/h2>\n\n\n\n<p>ODA patch file 30403643 includes an ISO image you will use to reimage your ODA. From the ILOM, start the remote console, connect this ISO file, define next boot device as CDROM and do a power cycle of the server. Reimaging an ODA takes about 50 minutes and doesn&#8217;t need any input. Keep the remote console open for the next operation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configure-firstnet\">Configure firstnet<\/h2>\n\n\n\n<p>Once your ODA runs on a brand new OS, you will need to do the initial network setup through the remote console. So log into the console with root\/welcome1, type configure-firstnet and provide IP address, netmask and gateway of your server. LACP mode will depend on your switch configuration, if you didn&#8217;t use it before, keep it disabled. On an ODA deployed in 2020, LACP mode was not available. You normally won&#8217;t use DHCP, neither VLAN as VLAN is usually tagged on the switch ports where your ODA is connected to.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>configure-firstnet\n...<\/code><\/pre>\n\n\n\n<p>Once configured, you can reach your server through the network and copy the needed files for the next steps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-patch-the-microcodes\">Patch the microcodes<\/h2>\n\n\n\n<p>Reimaging your ODA doesn&#8217;t mean your microcodes are updated, it&#8217;s only the software part that is new. Therefore, first task after reimaging is patching these microcodes.<\/p>\n\n\n\n<p>Let&#8217;s copy and register the patch file on the ODA and apply the updates (patch 37817290 for 19.27):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/dbi\nunzip p37817290_1927000_Linux-x86-64.zip\nodacli update-repository -f \/opt\/dbi\/oda-sm-19.27.0.0.0-250601-server.zip\n\nodacli describe-job -i \"1e2dd483-2237-47b9-9c60-5395fa720fd2\"\nJob details\n----------------------------------------------------------------\n                     ID:  1e2dd483-2237-47b9-9c60-5395fa720fd2\n            Description:  Repository Update\n                 Status:  Success\n                Created:  September 03, 2025 09:53:24 UTC\n                Message:  \/opt\/dbi\/oda-sm-19.27.0.0.0-250601-server.zip\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nUnzip bundle                             September 03, 2025 09:53:39 UTC          September 03, 2025 09:53:54 UTC          Success\n\nodacli describe-component\nSystem Version\n--------------\n19.27.0.0.0\n\nSystem Node Name\n----------------\noak\n\nLocal System Version\n--------------------\n19.27.0.0.0\n\nComponent                                Installed Version    Available Version\n---------------------------------------- -------------------- --------------------\nOAK                                      19.27.0.0.0          up-to-date\n\nDCSCONTROLLER                            19.27.0.0.0          up-to-date\n\nDCSCLI                                   19.27.0.0.0          up-to-date\n\nDCSAGENT                                 19.27.0.0.0          up-to-date\n\nDCSADMIN                                 19.27.0.0.0          up-to-date\n\nOS                                       8.10                 up-to-date\n\nILOM                                     5.1.1.23.r151750     5.1.4.25.r160118\n\nBIOS                                     52100600             52140100\n\nLOCAL CONTROLLER FIRMWARE {\n     &#091;c8, c9]                            214.2.271.9          up-to-date\n}\n\nSHARED CONTROLLER FIRMWARE {\n     &#091;c0, c1, c2, c3, c4, c5]            VDV1RL06             up-to-date\n}\n\nLOCAL DISK FIRMWARE {\n     &#091;c6d0, c6d1]                        XC311102             up-to-date\n}\n\nHMP                                      2.4.10.1.600         up-to-date\n\nodacli create-prepatchreport -s -v 19.27.0.0.0\n\u2003\nsleep 120 ; odacli describe-prepatchreport -i 8010302b-feca-4f23-92bc-6878aa586713\nPrepatch Report\n------------------------------------------------------------------------\n                 Job ID:  8010302b-feca-4f23-92bc-6878aa586713\n            Description:  Patch pre-checks for &#091;OS, ILOM, SERVER] to 19.27.0.0.0\n                 Status:  SUCCESS\n                Created:  September 3, 2025 9:54:56 AM UTC\n                 Result:  All pre-checks succeeded\n\nNode Name\n---------------\noak\n\nPre-Check                      Status   Comments\n------------------------------ -------- --------------------------------------\n__OS__\nValidate supported versions     Success   Validated minimum supported versions.\nValidate patching tag           Success   Validated patching tag: 19.27.0.0.0.\nIs patch location available     Success   Patch location is available.\nVerify OS patch                 Success   There are no packages available for\n                                          an update\nValidate command execution      Success   Skipped command execution verfication\n                                          - Instance is not provisioned\n\n__ILOM__\nValidate ILOM server reachable  Success   Successfully connected with ILOM\n                                          server using public IP and USB\n                                          interconnect\nValidate supported versions     Success   Validated minimum supported versions.\nValidate patching tag           Success   Validated patching tag: 19.27.0.0.0.\nIs patch location available     Success   Patch location is available.\nChecking Ilom patch Version     Success   Successfully verified the versions\nPatch location validation       Success   Successfully validated location\nValidate command execution      Success   Skipped command execution verfication\n                                          - Instance is not provisioned\n\n__SERVER__\nValidate local patching         Success   Successfully validated server local\n                                          patching\nValidate command execution      Success   Skipped command execution verfication\n                                          - Instance is not provisioned\n\nodacli update-server -v 19.27.0.0.0\n\nsleep 900 ; odacli describe-job -i 3a4ce5a7-6305-483d-a7c3-e6328d8a831e\nJob details\n----------------------------------------------------------------\n                     ID:  3a4ce5a7-6305-483d-a7c3-e6328d8a831e\n            Description:  Server Patching to 19.27.0.0.0\n                 Status:  Success\n                Created:  September 03, 2025 09:57:34 UTC\n                Message:\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nValidate ILOM server reachable           September 03, 2025 09:57:36 UTC          September 03, 2025 09:57:37 UTC          Success\nStop DCS Admin                           September 03, 2025 09:57:38 UTC          September 03, 2025 09:57:39 UTC          Success\nGenerate mTLS certificates               September 03, 2025 09:57:39 UTC          September 03, 2025 09:57:40 UTC          Success\nExporting Public Keys                    September 03, 2025 09:57:40 UTC          September 03, 2025 09:57:41 UTC          Success\nCreating Trust Store                     September 03, 2025 09:57:41 UTC          September 03, 2025 09:57:43 UTC          Success\nRestart DCS Admin                        September 03, 2025 09:57:43 UTC          September 03, 2025 09:58:03 UTC          Success\nUpdate config files                      September 03, 2025 09:57:43 UTC          September 03, 2025 09:57:43 UTC          Success\nDeactivate Unit&#091;dnf-makecache.timer]     September 03, 2025 09:58:04 UTC          September 03, 2025 09:58:04 UTC          Success\nDeactivate Unit&#091;kdump.service]           September 03, 2025 09:58:04 UTC          September 03, 2025 09:58:05 UTC          Success\nModify BM udev rules                     September 03, 2025 09:58:05 UTC          September 03, 2025 09:58:25 UTC          Success\nCreating repositories using yum          September 03, 2025 09:58:25 UTC          September 03, 2025 09:58:27 UTC          Success\nUpdating YumPluginVersionLock rpm        September 03, 2025 09:58:27 UTC          September 03, 2025 09:58:29 UTC          Success\nApplying OS Patches                      September 03, 2025 09:58:29 UTC          September 03, 2025 09:59:03 UTC          Success\nCreating repositories using yum          September 03, 2025 09:59:03 UTC          September 03, 2025 09:59:03 UTC          Success\nApplying HMP Patches                     September 03, 2025 09:59:04 UTC          September 03, 2025 09:59:06 UTC          Success\nApplying Firmware local Disk Patches     September 03, 2025 09:59:07 UTC          September 03, 2025 09:59:10 UTC          Success\nOda-hw-mgmt upgrade                      September 03, 2025 09:59:07 UTC          September 03, 2025 09:59:07 UTC          Success\nPatch location validation                September 03, 2025 09:59:07 UTC          September 03, 2025 09:59:07 UTC          Success\nApplying Firmware local Controller Patch September 03, 2025 09:59:10 UTC          September 03, 2025 09:59:15 UTC          Success\nChecking Ilom patch Version              September 03, 2025 09:59:15 UTC          September 03, 2025 09:59:15 UTC          Success\nPatch location validation                September 03, 2025 09:59:15 UTC          September 03, 2025 09:59:15 UTC          Success\nSave password in Wallet                  September 03, 2025 09:59:15 UTC          September 03, 2025 09:59:16 UTC          Success\nApply Ilom patch                         September 03, 2025 09:59:16 UTC          September 03, 2025 10:09:24 UTC          Success\nDisabling IPMI v2                        September 03, 2025 09:59:16 UTC          September 03, 2025 09:59:16 UTC          Success\nCleanup JRE Home                         September 03, 2025 10:09:24 UTC          September 03, 2025 10:09:24 UTC          Success\nCopying Flash Bios to Temp location      September 03, 2025 10:09:24 UTC          September 03, 2025 10:09:24 UTC          Success\nGenerating and saving BOM                September 03, 2025 10:09:24 UTC          September 03, 2025 10:09:27 UTC          Success\nUpdate System version                    September 03, 2025 10:09:24 UTC          September 03, 2025 10:09:24 UTC          Success\nPreRebootNode Actions                    September 03, 2025 10:09:27 UTC          September 03, 2025 10:09:27 UTC          Success\nReboot Node                              September 03, 2025 10:09:27 UTC          September 03, 2025 10:09:27 UTC          Success\n<\/code><\/pre>\n\n\n\n<p>The system will reboot once patched, let&#8217;s check the versions:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli describe-component\nSystem Version\n--------------\n19.27.0.0.0\n\nSystem Node Name\n----------------\noak\n\nLocal System Version\n--------------------\n19.27.0.0.0\n\nComponent                                Installed Version    Available Version\n---------------------------------------- -------------------- --------------------\nOAK                                      19.27.0.0.0          up-to-date\n\nDCSCONTROLLER                            19.27.0.0.0          up-to-date\n\nDCSCLI                                   19.27.0.0.0          up-to-date\n\nDCSAGENT                                 19.27.0.0.0          up-to-date\n\nDCSADMIN                                 19.27.0.0.0          up-to-date\n\nOS                                       8.10                 up-to-date\n\nILOM                                     5.1.4.25.r160118     up-to-date\n\nBIOS                                     52140100             up-to-date\n\nLOCAL CONTROLLER FIRMWARE {\n     &#091;c8, c9]                            214.2.271.9          up-to-date\n}\n\nSHARED CONTROLLER FIRMWARE {\n     &#091;c0, c1, c2, c3, c4, c5]            VDV1RL06             up-to-date\n}\n\nLOCAL DISK FIRMWARE {\n     &#091;c6d0, c6d1]                        XC311102             up-to-date\n}\n\nHMP                                      2.4.10.1.600         up-to-date\n<\/code><\/pre>\n\n\n\n<p>No need to apply the storage patch here, but if needed, apply it with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli update-storage -v 19.27.0.0.0\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-provision-the-appliance\">Provision the appliance<\/h2>\n\n\n\n<p>Now it&#8217;s time to put back Oracle binaries on this system. First register the GI and DB clones, then do the create-appliance with the json file you prepared earlier:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/dbi\nunzip p30403662_1927000_Linux-x86-64.zip \nunzip p30403673_1927000_Linux-x86-64.zip\n\nodacli update-repository -f \/opt\/dbi\/odacli-dcs-19.27.0.0.0-250527-GI-19.27.0.0.zip\nsleep 90 ; odacli describe-job -i c8f3559f-7f93-4df1-ba99-7511111f27ce\n\nJob details\n----------------------------------------------------------------\n                     ID:  c8f3559f-7f93-4df1-ba99-7511111f27ce\n            Description:  Repository Update\n                 Status:  Success\n                Created:  September 03, 2025 10:19:04 UTC\n                Message:  \/opt\/dbi\/odacli-dcs-19.27.0.0.0-250527-GI-19.27.0.0.zip\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nUnzip bundle                             September 03, 2025 10:19:04 UTC          September 03, 2025 10:20:08 UTC          Success\n\nodacli update-repository -f \/opt\/dbi\/odacli-dcs-19.27.0.0.0-250527-DB-19.27.0.0.zip\nsleep 90 ; odacli describe-job -i 96187596-16f6-413c-8905-9d85c6d3e106\n\nJob details\n----------------------------------------------------------------\n                     ID:  96187596-16f6-413c-8905-9d85c6d3e106\n            Description:  Repository Update\n                 Status:  Success\n                Created:  September 03, 2025 10:20:50 UTC\n                Message:  \/opt\/dbi\/odacli-dcs-19.27.0.0.0-250527-DB-19.27.0.0.zip\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nUnzip bundle                             September 03, 2025 10:20:50 UTC          September 03, 2025 10:21:46 UTC          Success\n\u2003\n\nodacli create-appliance -r \/opt\/dbi\/deploy_odaprdcr.txt\n\nEnter an initial password for Web Console account (oda-admin): **********\nConfirm the password for Web Console account (oda-admin): **********\nUser 'oda-admin' created successfully...\n\nodacli describe-job -i 22fec8d6-d9ae-4576-8f18-d8e1a0b00370\nJob details\n----------------------------------------------------------------\n                     ID:  22fec8d6-d9ae-4576-8f18-d8e1a0b00370\n            Description:  Provisioning service creation\n                 Status:  Success\n                Created:  September 03, 2025 12:45:37 CEST\n                Message:\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nValidate absence of Interconnect         September 03, 2025 12:45:40 CEST         September 03, 2025 12:45:40 CEST         Success\nnetwork configuration file\nRestart network interface pubnet         September 03, 2025 12:45:43 CEST         September 03, 2025 12:45:49 CEST         Success\nSetting up Network                       September 03, 2025 12:45:43 CEST         September 03, 2025 12:45:43 CEST         Success\nSetting up Vlan                          September 03, 2025 12:45:50 CEST         September 03, 2025 12:45:51 CEST         Success\nRestart network interface priv0.100      September 03, 2025 12:45:51 CEST         September 03, 2025 12:45:52 CEST         Success\nRestart network interface privasm        September 03, 2025 12:45:52 CEST         September 03, 2025 12:45:53 CEST         Success\nRestart network interface privasm        September 03, 2025 12:45:53 CEST         September 03, 2025 12:45:59 CEST         Success\nSetting up Network                       September 03, 2025 12:45:53 CEST         September 03, 2025 12:45:53 CEST         Success\nNetwork update                           September 03, 2025 12:45:59 CEST         September 03, 2025 12:46:13 CEST         Success\nRestart network interface btbond1        September 03, 2025 12:45:59 CEST         September 03, 2025 12:46:03 CEST         Success\nSetting up Network                       September 03, 2025 12:45:59 CEST         September 03, 2025 12:45:59 CEST         Success\nUpdating network                         September 03, 2025 12:45:59 CEST         September 03, 2025 12:46:13 CEST         Success\nRestart network interface btbond1        September 03, 2025 12:46:03 CEST         September 03, 2025 12:46:07 CEST         Success\nRestart network interface pubnet         September 03, 2025 12:46:07 CEST         September 03, 2025 12:46:13 CEST         Success\nOS usergroup 'asmadmin' creation         September 03, 2025 12:46:13 CEST         September 03, 2025 12:46:13 CEST         Success\nOS usergroup 'asmdba' creation           September 03, 2025 12:46:13 CEST         September 03, 2025 12:46:13 CEST         Success\nOS usergroup 'asmoper' creation          September 03, 2025 12:46:13 CEST         September 03, 2025 12:46:13 CEST         Success\nOS usergroup 'dba' creation              September 03, 2025 12:46:13 CEST         September 03, 2025 12:46:14 CEST         Success\nValidate availability of pubnet          September 03, 2025 12:46:13 CEST         September 03, 2025 12:46:13 CEST         Success\nOS user 'grid' creation                  September 03, 2025 12:46:14 CEST         September 03, 2025 12:46:15 CEST         Success\nOS usergroup 'dbaoper' creation          September 03, 2025 12:46:14 CEST         September 03, 2025 12:46:14 CEST         Success\nOS usergroup 'oinstall' creation         September 03, 2025 12:46:14 CEST         September 03, 2025 12:46:14 CEST         Success\nOS user 'oracle' creation                September 03, 2025 12:46:15 CEST         September 03, 2025 12:46:16 CEST         Success\nAdd SYSNAME in Env                       September 03, 2025 12:46:16 CEST         September 03, 2025 12:46:16 CEST         Success\nBackup Config name validation            September 03, 2025 12:46:16 CEST         September 03, 2025 12:46:16 CEST         Success\nBackup config metadata persist           September 03, 2025 12:46:16 CEST         September 03, 2025 12:46:16 CEST         Success\nDefault backup policy creation           September 03, 2025 12:46:16 CEST         September 03, 2025 12:46:16 CEST         Success\nGrant permission to RHP files            September 03, 2025 12:46:16 CEST         September 03, 2025 12:46:16 CEST         Success\nInstall oracle-ahf                       September 03, 2025 12:46:16 CEST         September 03, 2025 12:47:23 CEST         Success\nStop DCS Admin                           September 03, 2025 12:48:25 CEST         September 03, 2025 12:48:26 CEST         Success\nGenerate mTLS certificates               September 03, 2025 12:48:26 CEST         September 03, 2025 12:48:27 CEST         Success\n\u2003\nExporting Public Keys                    September 03, 2025 12:48:27 CEST         September 03, 2025 12:48:28 CEST         Success\nCreating Trust Store                     September 03, 2025 12:48:29 CEST         September 03, 2025 12:48:31 CEST         Success\nRestart DCS Admin                        September 03, 2025 12:48:31 CEST         September 03, 2025 12:48:52 CEST         Success\nUpdate config files                      September 03, 2025 12:48:31 CEST         September 03, 2025 12:48:31 CEST         Success\nCreating GI home directories             September 03, 2025 12:48:52 CEST         September 03, 2025 12:48:52 CEST         Success\nExtract GI clone                         September 03, 2025 12:48:52 CEST         September 03, 2025 12:50:11 CEST         Success\nGrid home creation                       September 03, 2025 12:48:52 CEST         September 03, 2025 12:50:13 CEST         Success\nStorage discovery                        September 03, 2025 12:50:13 CEST         September 03, 2025 12:51:33 CEST         Success\nCreating wallet for Root User            September 03, 2025 12:51:33 CEST         September 03, 2025 12:51:36 CEST         Success\nCreating wallet for ASM Client           September 03, 2025 12:51:36 CEST         September 03, 2025 12:51:39 CEST         Success\nGrid stack creation                      September 03, 2025 12:51:39 CEST         September 03, 2025 13:00:38 CEST         Success\nProvisioning GI with RHP                 September 03, 2025 12:51:39 CEST         September 03, 2025 12:57:27 CEST         Success\nSet CRS ping target                      September 03, 2025 12:57:28 CEST         September 03, 2025 12:57:29 CEST         Success\nUpdating GI home version                 September 03, 2025 12:57:29 CEST         September 03, 2025 12:57:34 CEST         Success\nRestarting Clusterware                   September 03, 2025 12:57:35 CEST         September 03, 2025 13:00:38 CEST         Success\nPost cluster OAKD configuration          September 03, 2025 13:00:38 CEST         September 03, 2025 13:01:33 CEST         Success\nDisk group 'RECO' creation               September 03, 2025 13:01:41 CEST         September 03, 2025 13:01:52 CEST         Success\nSetting ACL for disk groups              September 03, 2025 13:01:52 CEST         September 03, 2025 13:01:55 CEST         Success\nModify DB file attributes                September 03, 2025 13:01:55 CEST         September 03, 2025 13:02:03 CEST         Success\nRegister Scan and Vips to Public Network September 03, 2025 13:02:03 CEST         September 03, 2025 13:02:05 CEST         Success\nConfigure export clones resource         September 03, 2025 13:03:24 CEST         September 03, 2025 13:03:24 CEST         Success\nVolume 'commonstore' creation            September 03, 2025 13:03:24 CEST         September 03, 2025 13:03:41 CEST         Success\nACFS File system 'DATA' creation         September 03, 2025 13:03:41 CEST         September 03, 2025 13:04:03 CEST         Success\nCreating ACFS database home              September 03, 2025 13:04:04 CEST         September 03, 2025 13:05:22 CEST         Success\nDatabase home creation                   September 03, 2025 13:04:04 CEST         September 03, 2025 13:07:55 CEST         Success\nValidating dbHome available space        September 03, 2025 13:05:23 CEST         September 03, 2025 13:05:23 CEST         Success\nCreate required directories              September 03, 2025 13:05:24 CEST         September 03, 2025 13:05:24 CEST         Success\nCreating DbHome Directory                September 03, 2025 13:05:24 CEST         September 03, 2025 13:05:24 CEST         Success\nExtract DB clone                         September 03, 2025 13:05:24 CEST         September 03, 2025 13:06:18 CEST         Success\nProvDbHome by using RHP                  September 03, 2025 13:06:18 CEST         September 03, 2025 13:07:33 CEST         Success\nEnable DB options                        September 03, 2025 13:07:33 CEST         September 03, 2025 13:07:47 CEST         Success\nCreating wallet for DB Client            September 03, 2025 13:07:51 CEST         September 03, 2025 13:07:55 CEST         Success\nDatabase Creation by RHP                 September 03, 2025 13:07:56 CEST         September 03, 2025 13:20:28 CEST         Success\nProvisioning service creation            September 03, 2025 13:07:56 CEST         September 03, 2025 13:23:47 CEST         Success\nChange permission for xdb wallet files   September 03, 2025 13:20:28 CEST         September 03, 2025 13:20:29 CEST         Success\nAdd Startup Trigger to Open all PDBS     September 03, 2025 13:20:29 CEST         September 03, 2025 13:20:30 CEST         Success\nPlace SnapshotCtrlFile in sharedLoc      September 03, 2025 13:20:30 CEST         September 03, 2025 13:20:33 CEST         Success\nSqlPatch upgrade                         September 03, 2025 13:22:08 CEST         September 03, 2025 13:22:30 CEST         Success\nRunning dbms_stats init_package          September 03, 2025 13:22:30 CEST         September 03, 2025 13:22:31 CEST         Success\nSet log_archive_dest for Database        September 03, 2025 13:22:31 CEST         September 03, 2025 13:22:34 CEST         Success\nUpdating the Database version            September 03, 2025 13:22:34 CEST         September 03, 2025 13:22:38 CEST         Success\nUsers tablespace creation                September 03, 2025 13:23:47 CEST         September 03, 2025 13:23:50 CEST         Success\nClear all listeners from Database        September 03, 2025 13:23:50 CEST         September 03, 2025 13:23:50 CEST         Success\nClear local and remote listeners from    September 03, 2025 13:23:52 CEST         September 03, 2025 13:23:53 CEST         Success\nDatabase\nCopy Pwfile to Shared Storage            September 03, 2025 13:23:53 CEST         September 03, 2025 13:23:59 CEST         Success\nPersist new agent state entry            September 03, 2025 13:24:02 CEST         September 03, 2025 13:24:02 CEST         Success\nPersist new agent state entry            September 03, 2025 13:24:02 CEST         September 03, 2025 13:24:02 CEST         Success\nProvisioning service creation            September 03, 2025 13:24:02 CEST         September 03, 2025 13:24:02 CEST         Success\nRestart DCS Agent                        September 03, 2025 13:24:02 CEST         September 03, 2025 13:24:03 CEST         Success\n<\/code><\/pre>\n\n\n\n<p>Creating the appliance usually takes 40 to 50 minutes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-check-core-reduction\">Check core reduction<\/h2>\n\n\n\n<p>Reimaging an ODA will keep the core reduction, but make sure it&#8217;s true with these commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli list-cpucores\nNode  Cores  Modified                           Job Status\n----- ------ ---------------------------------- ---------------\n0     4      September 3, 2025 9:46:11 AM CEST  CONFIGURED\n\nlscpu | grep Core\nCore(s) per socket:  2<\/code><\/pre>\n\n\n\n<p>Here I have 4 enabled cores, meaning 2 processor licenses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-setup-older-db-home\">Setup older DB home<\/h2>\n\n\n\n<p>As I will bring back my Data Guard setup with 19.20 databases, I will need a 19.20 DB home. Let&#8217;s register the clone file and create the DB home. An increase of the diagnostic dest is probably needed, 10GB is way too small for me:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli list-dbhome-storages\n=============================================================================================================\nID                                     Node Description          Disk Group Volume      Size(GB)   Status\n-------------------------------------- ---- -------------------- ---------- ----------- ---------- ----------\nbef3ae8a-96d3-44d4-b179-1e5dbdd2a939   0    ORACLE_HOME          DATA       orahome_sh  80         CONFIGURED\ne972cc17-ff92-4203-b23f-55fab02a7cc0   0    ORACLE_BASE          DATA       odabase_n0  10         CONFIGURED\n=============================================================================================================\n\nodacli modify-dbhome-storage -i e972cc17-ff92-4203-b23f-55fab02a7cc0 -s 50\n\nsleep 10 ; odacli list-dbhome-storages\n=============================================================================================================\nID                                     Node Description          Disk Group Volume      Size(GB)   Status\n-------------------------------------- ---- -------------------- ---------- ----------- ---------- ----------\nbef3ae8a-96d3-44d4-b179-1e5dbdd2a939   0    ORACLE_HOME          DATA       orahome_sh  80         CONFIGURED\ne972cc17-ff92-4203-b23f-55fab02a7cc0   0    ORACLE_BASE          DATA       odabase_n0  50         CONFIGURED\n=============================================================================================================\n\n\ncd \/opt\/dbi\nunzip p30403662_1920000_Linux-x86-64.zip \nodacli update-repository -f \/opt\/dbi\/odacli-dcs-19.20.0.0.0-230720-DB-19.20.0.0.zip\n\nsleep 30 ; odacli describe-job -i 3ee5db4d-d350-47b4-8e24-18949d244ab7\nJob details\n----------------------------------------------------------------\n                     ID:  3ee5db4d-d350-47b4-8e24-18949d244ab7\n            Description:  Repository Update\n                 Status:  Success\n                Created:  September 03, 2025 13:47:23 CEST\n                Message:  \/opt\/dbi\/odacli-dcs-19.20.0.0.0-230720-DB-19.20.0.0.zip\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nUnzip bundle                             September 03, 2025 13:47:23 CEST         September 03, 2025 13:47:55 CEST         Success\n\nodacli create-dbhome -v 19.20.0.0.230718\n\nsleep 240 ; odacli describe-job -i 3123544b-60c5-418a-82b5-c110dd68aafa\nJob details\n----------------------------------------------------------------\n                     ID:  3123544b-60c5-418a-82b5-c110dd68aafa\n            Description:  Database Home OraDB19000_home2 creation with version :19.20.0.0.230718\n                 Status:  Success\n                Created:  September 03, 2025 13:53:21 CEST\n                Message:  Create Database Home\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nSetting up SSH equivalence               September 03, 2025 13:53:32 CEST         September 03, 2025 13:53:34 CEST         Success\nSetting up SSH equivalence               September 03, 2025 13:53:34 CEST         September 03, 2025 13:53:35 CEST         Success\nCreating ACFS database home              September 03, 2025 13:53:35 CEST         September 03, 2025 13:53:35 CEST         Success\nValidating dbHome available space        September 03, 2025 13:53:35 CEST         September 03, 2025 13:53:35 CEST         Success\nCreate required directories              September 03, 2025 13:53:36 CEST         September 03, 2025 13:53:36 CEST         Success\nCreating DbHome Directory                September 03, 2025 13:53:36 CEST         September 03, 2025 13:53:36 CEST         Success\nExtract DB clone                         September 03, 2025 13:53:36 CEST         September 03, 2025 13:54:23 CEST         Success\nProvDbHome by using RHP                  September 03, 2025 13:54:23 CEST         September 03, 2025 13:55:39 CEST         Success\nEnable DB options                        September 03, 2025 13:55:39 CEST         September 03, 2025 13:55:54 CEST         Success\nCreating wallet for DB Client            September 03, 2025 13:55:57 CEST         September 03, 2025 13:55:58 CEST         Success\n\nodacli list-dbhomes\nID                                       Name                 DB Version           DB Edition Home Location                                            Status\n---------------------------------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------\n19ee71be-07ae-4373-9bb6-31db8195e36c     OraDB19000_home1     19.27.0.0.250415     EE         \/u01\/app\/odaorahome\/oracle\/product\/19.0.0.0\/dbhome_1     CONFIGURED\ncd2dc372-3f95-40f1-917c-ee0793c26664     OraDB19000_home2     19.20.0.0.230718     EE         \/u01\/app\/odaorahome\/oracle\/product\/19.0.0.0\/dbhome_2     CONFIGURED\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-the-databases\">Create the databases<\/h2>\n\n\n\n<p>Your ODA registry needs to know the databases, so I will create them before doing the restore. I don&#8217;t use the -io (instance only) of odacli for database creation as srvctl entries will be missing. So let&#8217;s create a new standalone database and then remove its files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli create-database -cs AL32UTF8 -no-c -u BMC3PRD_CR -dh 'cd2dc372-3f95-40f1-917c-ee0793c26664' -n BMC3PRD -s odb1s -l AMERICAN -dt AMERICA -no-co -r asm\n\nsleep 660 ; odacli describe-job -i 40b80359-0607-4330-ae6e-055d284a780e\nJob details\n----------------------------------------------------------------\n                     ID:  40b80359-0607-4330-ae6e-055d284a780e\n            Description:  Database service creation with DB name: BMC3PRD\n                 Status:  Success\n                Created:  September 03, 2025 15:11:48 CEST\n                Message:\n\nTask Name                                Start Time                               End Time                                 Status\n---------------------------------------- ---------------------------------------- ---------------------------------------- -------\nDatabase Creation by RHP                 September 03, 2025 15:11:50 CEST         September 03, 2025 15:19:24 CEST         Success\nDatabase Service creation                September 03, 2025 15:11:50 CEST         September 03, 2025 15:22:19 CEST         Success\nSetting up SSH equivalence               September 03, 2025 15:11:50 CEST         September 03, 2025 15:11:50 CEST         Success\nSetting up SSH equivalence               September 03, 2025 15:11:50 CEST         September 03, 2025 15:11:50 CEST         Success\nChange permission for xdb wallet files   September 03, 2025 15:19:24 CEST         September 03, 2025 15:19:25 CEST         Success\nPlace SnapshotCtrlFile in sharedLoc      September 03, 2025 15:19:25 CEST         September 03, 2025 15:19:28 CEST         Success\nSqlPatch upgrade                         September 03, 2025 15:20:43 CEST         September 03, 2025 15:20:50 CEST         Success\nRunning dbms_stats init_package          September 03, 2025 15:20:50 CEST         September 03, 2025 15:20:51 CEST         Success\nSet log_archive_dest for Database        September 03, 2025 15:20:51 CEST         September 03, 2025 15:20:54 CEST         Success\nUpdating the Database version            September 03, 2025 15:20:54 CEST         September 03, 2025 15:20:58 CEST         Success\nCreate Users tablespace                  September 03, 2025 15:22:19 CEST         September 03, 2025 15:22:20 CEST         Success\nClear all listeners from Database        September 03, 2025 15:22:20 CEST         September 03, 2025 15:22:21 CEST         Success\nCopy Pwfile to Shared Storage            September 03, 2025 15:22:23 CEST         September 03, 2025 15:22:27 CEST         Success\n\nsu - oracle\n. oraenv &lt;&lt;&lt; BMC3PRD\nsqlplus \/ as sysdba\nset pages 0\nset feedback off\nspool \/tmp\/rmfiles.sh\nselect 'asmcmd rm -fr '||file_name from dba_data_files;\nselect 'asmcmd rm -fr '||file_name from dba_temp_files;\nselect 'asmcmd rm -fr '||member from v$logfile;\nselect 'asmcmd rm -fr '||name from v$controlfile;\nselect 'asmcmd rm -fr '||value from v$parameter where name='spfile';\nspool off\nshutdown abort;\nexit\nexit\nsu - grid\nsh \/tmp\/rmfiles.sh\nexit\n<\/code><\/pre>\n\n\n\n<p>Do the same for the other databases. Don&#8217;t try to create your databases with multiple odacli jobs running at the same time: this is something ODA cannot do in parallel, creation will be serialized and jobs will be waiting for the current one to complete.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-restore-the-databases\">Restore the databases<\/h2>\n\n\n\n<p>I&#8217;m used to move the spfile from ASM to the filesystem, so it&#8217;s the exact same path as the other server. In the same time, I change the role of the database as odacli created it as a primary:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>su - oracle\n. oraenv &lt;&lt;&lt; BMC3PRD\nsrvctl modify database -db BMC3PRD_CR -spfile \/u01\/app\/oracle\/admin\/BMC3PRD\/pfile\/spfileBMC3PRD.ora -startoption mount -role PHYSICAL_STANDBY<\/code><\/pre>\n\n\n\n<p>Now let&#8217;s restore the spfile and the controlfile. RMAN is able to start an instance without any spfile for recovering the spfile, it&#8217;s very convenient:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rman target \/ \n\nstartup nomount;\nrestore spfile from '\/backup\/Patch19.27\/ctl_spf\/spf_BMC3PRD_20250903.bck';\nStarting restore at 04-SEP-25\nusing target database control file instead of recovery catalog\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=433 device type=DISK\nchannel ORA_DISK_1: restoring spfile from AUTOBACKUP \/backup\/Patch19.27\/ctl_spf\/spf_BMC3PRD_20250903.bck\nchannel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete\nFinished restore at 04-SEP-25\n\u2003\nstartup force nomount;\n\nrestore controlfile from '\/backup\/Patch19.27\/ctl_spf\/ctl_BMC3PRD_20250903.bck';\n\nStarting restore at 04-SEP-25\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=26 device type=DISK\nchannel ORA_DISK_1: restoring control file\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:05\noutput file name=+RECO\/BMC3PRD_CR\/CONTROLFILE\/current.486.1210937913\nFinished restore at 04-SEP-25<\/code><\/pre>\n\n\n\n<p>Now I can start restoring the database. Choose the parallel degree carefully: as your ODA has nothing else to do, I would recommend using the maximum channels you could for big databases, for example between 4 and 8 channels for an ODA with 4 enabled cores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>startup force mount;\nrun {\nallocate channel c1 device type disk;\nallocate channel c2 device type disk;\nallocate channel c3 device type disk;\nallocate channel c4 device type disk;\nrestore database ;\n}\n\n\n\u2026\nchannel c4: restoring datafile 00004 to +DATA\/BMC3PRD\/DATAFILE\/undotbs1.291.1042201603\nchannel c4: restoring datafile 00005 to +DATA\/BMC3PRD\/DATAFILE\/users.294.1042202001\nchannel c4: reading from backup piece \/backup\/BMC3PRD\/backupset\/20250901_000002_inc0_BMC3PRD_45931446_s36914_p1.bck\nchannel c3: piece handle=\/backup\/BMC3PRD\/backupset\/20250901_000002_inc0_BMC3PRD_45931446_s36908_p2.bck tag=INC0_20250901_000002\nchannel c3: restored backup piece 2\nchannel c3: restore complete, elapsed time: 00:00:38\nchannel c1: piece handle=\/backup\/BMC3PRD\/backupset\/20250901_000002_inc0_BMC3PRD_45931446_s36911_p2.bck tag=INC0_20250901_000002\nchannel c1: restored backup piece 2\nchannel c1: restore complete, elapsed time: 00:00:42\nchannel c4: piece handle=\/backup\/BMC3PRD\/backupset\/20250901_000002_inc0_BMC3PRD_45931446_s36914_p1.bck tag=INC0_20250901_000002\nchannel c4: restored backup piece 1\nchannel c4: restore complete, elapsed time: 00:00:35\nchannel c2: piece handle=\/backup\/BMC3PRD\/backupset\/20250901_000002_inc0_BMC3PRD_45931446_s36911_p1.bck tag=INC0_20250901_000002\nchannel c2: restored backup piece 1\nchannel c2: restore complete, elapsed time: 00:00:54\nFinished restore at 04-SEP-25\nreleased channel: c1\nreleased channel: c2\nreleased channel: c3\nreleased channel: c4\n\nexit<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-add-tns-entries-for-data-guard-and-a-static-entry-for-the-listener\">Add TNS entries for Data Guard and a static entry for the listener<\/h2>\n\n\n\n<p>Your database is now restored, you&#8217;ll need to configure communication with the primary. Let&#8217;s add the following TNS entries:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vi $ORACLE_HOME\/network\/admin\/tnsnames.ora\n\u2026\n\nBMC3PRD_CR =\n  (DESCRIPTION =\n    (ADDRESS = (PROTOCOL = TCP)(HOST = odaprdcr)(PORT = 1521))\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = BMC3PRD_CR)\n    )\n  )\n\nBMC3PRD_IN =\n  (DESCRIPTION =\n    (ADDRESS = (PROTOCOL = TCP)(HOST = odaprdin)(PORT = 1521))\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = BMC3PRD_IN)\n    )\n  )<\/code><\/pre>\n\n\n\n<p>You will also need the static entry for your database in the listener.ora file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>su - grid\nvi $ORACLE_HOME\/network\/admin\/listener.ora\nSID_LIST_LISTENER=\n(SID_LIST=\n  (SID_DESC=\n    (GLOBAL_DBNAME = BMC3PRD_CR)\n    (ORACLE_HOME = \/u01\/app\/odaorahome\/oracle\/product\/19.0.0.0\/dbhome_2)\n    (SID_NAME = BMC3PRD)\n  )\n)\nexit<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-copy-the-password-file-and-modify-its-location\">Copy the password file and modify its location<\/h2>\n\n\n\n<p>Pick up the password file from primary server and relocate the file to the filesystem with srvctl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scp oracle@odaprdin:\/u01\/app\/odaorahome\/oracle\/product\/19.0.0.0\/dbhome_2\/dbs\/orapwBMC3PRD \/u01\/app\/odaorahome\/oracle\/product\/19.0.0.0\/dbhome_2\/dbs\/\n\nsrvctl modify database -db BMC3PRD_CR -pwfile\nsrvctl stop database -db BMC3PRD_CR ; sleep 10 ; srvctl start database -db BMC3PRD_CR -o mount\n<\/code><\/pre>\n\n\n\n<p>You can use a symbolic link in the dbs subfolder if you want to put this password file alongside your spfile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-recover-the-database\">Recover the database<\/h2>\n\n\n\n<p>Restored datafiles are probably several hours old, so let&#8217;s do a recover on the standby from the primary service before configuring Data Guard:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rman target sys\nrecover database from service 'BMC3PRD_IN';\n\u2026\nchannel ORA_DISK_1: using network backup set from service BMC3PRD_IN\ndestination for restore of datafile 00007: +DATA\/BMC3PRD_CR\/DATAFILE\/dm_mc3prd_docbase.477.1210938063\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:03\nchannel ORA_DISK_1: starting incremental datafile backup set restore\nchannel ORA_DISK_1: using network backup set from service BMC3PRD_IN\ndestination for restore of datafile 00008: +DATA\/BMC3PRD_CR\/DATAFILE\/dm_mc3prd_docbase.478.1210938063\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:08\nchannel ORA_DISK_1: starting incremental datafile backup set restore\nchannel ORA_DISK_1: using network backup set from service BMC3PRD_IN\ndestination for restore of datafile 00009: +DATA\/BMC3PRD_CR\/DATAFILE\/dm_mc3prd_docbase.479.1210938067\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:03\nchannel ORA_DISK_1: starting incremental datafile backup set restore\nchannel ORA_DISK_1: using network backup set from service BMC3PRD_IN\ndestination for restore of datafile 00010: +DATA\/BMC3PRD_CR\/DATAFILE\/dm_mc3prd_docbase.480.1210938165\nchannel ORA_DISK_1: restore complete, elapsed time: 00:00:07\n\nstarting media recovery\n\nmedia recovery complete, elapsed time: 00:00:00\nFinished recover at 04-SEP-25\n\nexit\n<\/code><\/pre>\n\n\n\n<p>If archivelog files are missing or if recovery is not possible, it doesn&#8217;t mean that it&#8217;s a problem. Data Guard should be able to solve a small or bigger archive gap.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-rebuild-data-guard-configuration\">Rebuild Data Guard configuration<\/h2>\n\n\n\n<p>Instead of adding back my standby database to the existing Data Guard configuration, I will recreate this configuration. It&#8217;s a matter of seconds:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dgmgrl sys\n*****\nRemove configuration;\ncreate configuration DTG as primary database is 'BMC3PRD_IN' connect identifier is 'BMC3PRD_IN';\nadd database 'BMC3PRD_CR' as connect identifier is 'BMC3PRD_CR';\nenable configuration;\nedit database 'BMC3PRD_CR' set property LogXptMode='SYNC';\nedit database 'BMC3PRD_IN' set property LogXptMode='SYNC';\nedit database 'BMC3PRD_CR' set property StandbyFileManagement='AUTO';\nedit database 'BMC3PRD_IN' set property StandbyFileManagement='AUTO';\nEDIT DATABASE 'BMC3PRD_CR' SET PROPERTY 'ArchiveLagTarget'=1200; \nEDIT DATABASE 'BMC3PRD_IN' SET PROPERTY 'ArchiveLagTarget'=1200; \nedit configuration set protection mode as maxavailability;<\/code><\/pre>\n\n\n\n<p>Depending on the lag between your primary and this standby, it can takes several minutes to bring back the sync of both databases:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show configuration lag;\nConfiguration - dtg\n\n  Protection Mode: MaxAvailability\n  Members:\n  BMC3PRD_IN - Primary database\n    BMC3PRD_CR - Physical standby database\n                  Transport Lag:      0 seconds (computed 1 second ago)\n                  Apply Lag:          0 seconds (computed 1 second ago)\n\nFast-Start Failover:  Disabled\n\nConfiguration Status:\nSUCCESS   (status updated 6 seconds ago)<\/code><\/pre>\n\n\n\n<p>This database is OK, let&#8217;s continue with the next ones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-additional-settings\">Additional settings<\/h2>\n\n\n\n<p>If you made additional settings on your ODA, you&#8217;ll have to configure them again. It could be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>monitoring<\/li>\n\n\n\n<li>additional network interfaces<\/li>\n\n\n\n<li>additional services<\/li>\n\n\n\n<li>mount points and shares<\/li>\n\n\n\n<li>firewall rules<\/li>\n\n\n\n<li>kerberos authentication<\/li>\n\n\n\n<li>compatibility modes in sqlnet.ora file<\/li>\n\n\n\n<li>\u2026<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>With several multi-TB databases to restore, it took me less than 3 days per ODA for this operation. And these ODAs are now clean and ready for their second life.<\/p>\n\n\n\n<p>Reimaging an ODA from scratch is a good solution as soon as a Data Guard setup allows the databases to run on another ODA for several days. And with a good preparation, the job is not that huge. And there is much less troubleshooting compared to patching. This is something to consider.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reimage your ODA from scratch: is it a good alternative to patching?<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[2567,2576,1478,3664,3665,3663,3661,1697,1698,1699,2427,2682,2429],"type_dbi":[],"class_list":["post-40229","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-oda-2","tag-patching-2","tag-reimage","tag-resintall","tag-scratch","tag-x11-ha","tag-x11-s","tag-x8-2ha","tag-x8-2m","tag-x8-2s","tag-x9-2ha","tag-x9-2l","tag-x9-2s"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Reimage your ODA from scratch - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reimage your ODA from scratch\" \/>\n<meta property=\"og:description\" content=\"Reimage your ODA from scratch: is it a good alternative to patching?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-09T17:45:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-09T17:45:06+00:00\" \/>\n<meta name=\"author\" content=\"J\u00e9r\u00f4me Dubar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"J\u00e9r\u00f4me Dubar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/\"},\"author\":{\"name\":\"J\u00e9r\u00f4me Dubar\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"headline\":\"Reimage your ODA from scratch\",\"datePublished\":\"2025-09-09T17:45:04+00:00\",\"dateModified\":\"2025-09-09T17:45:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/\"},\"wordCount\":1752,\"commentCount\":0,\"keywords\":[\"oda\",\"patching\",\"reimage\",\"resintall\",\"scratch\",\"X11-HA\",\"X11-S\",\"x8-2ha\",\"x8-2m\",\"x8-2s\",\"X9-2HA\",\"X9-2L\",\"X9-2S\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/\",\"name\":\"Reimage your ODA from scratch - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2025-09-09T17:45:04+00:00\",\"dateModified\":\"2025-09-09T17:45:06+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/reimage-your-oda-from-scratch\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reimage your ODA from scratch\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0fb4bbf128b4cda2f96d662dec2baedd\",\"name\":\"J\u00e9r\u00f4me Dubar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"caption\":\"J\u00e9r\u00f4me Dubar\"},\"description\":\"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\\\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/jerome-dubar\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Reimage your ODA from scratch - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/","og_locale":"en_US","og_type":"article","og_title":"Reimage your ODA from scratch","og_description":"Reimage your ODA from scratch: is it a good alternative to patching?","og_url":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/","og_site_name":"dbi Blog","article_published_time":"2025-09-09T17:45:04+00:00","article_modified_time":"2025-09-09T17:45:06+00:00","author":"J\u00e9r\u00f4me Dubar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"J\u00e9r\u00f4me Dubar","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/"},"author":{"name":"J\u00e9r\u00f4me Dubar","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"headline":"Reimage your ODA from scratch","datePublished":"2025-09-09T17:45:04+00:00","dateModified":"2025-09-09T17:45:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/"},"wordCount":1752,"commentCount":0,"keywords":["oda","patching","reimage","resintall","scratch","X11-HA","X11-S","x8-2ha","x8-2m","x8-2s","X9-2HA","X9-2L","X9-2S"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/","url":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/","name":"Reimage your ODA from scratch - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2025-09-09T17:45:04+00:00","dateModified":"2025-09-09T17:45:06+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/reimage-your-oda-from-scratch\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Reimage your ODA from scratch"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd","name":"J\u00e9r\u00f4me Dubar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","caption":"J\u00e9r\u00f4me Dubar"},"description":"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.","url":"https:\/\/www.dbi-services.com\/blog\/author\/jerome-dubar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/40229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=40229"}],"version-history":[{"count":5,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/40229\/revisions"}],"predecessor-version":[{"id":40234,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/40229\/revisions\/40234"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=40229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=40229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=40229"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=40229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}