De huidige PRD databases zijn niet aangemaakt op de ODA manier. Hierdoor is het ook niet mogelijk om deze database op een ODA manier te updaten naar 19C. Het is ook niet mogelijk de backup en recovery manier op de ODA manier te doen. Het is mogelijk om een bestaande database op een ODA machine te registreren als ODA database. Dit werk helaas alleen voor single instance databases, niet voor RAC.
Deze pagina beschrijft een manier om de databases op een ODA weer op een ‘ODA manier’ te beheren.
In de ODA documentatie (https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/19.8/cmtxn/index.html) staat dat het mogelijk is een bestaande database naar ODA database te migreren door een nieuwe database aan te maken m.b.v. RMAN duplicate.

Dit scenario is uitgewerkt in de volgende stappen en getest op de aotb001 en aotb002 machines .
odacli een ‘instance only’ database D040NG aan op de aotb001.rman duplicate van de D040NE op de aotb002. wordt deD040NG database aangemaakt.D040NG database als ODA database.CA040N1 op de ODA manier.D040NG naar een pdb in de RAC CDB CA040N1.D040NG.De eerste stap is om te achterhalen welke 'oracle homes' aanwezig zijn op de ODA
[root@aotb001 ~]# odacli list-dbhomes
ID Name DB Version Home Location Status
---------------------------------------- ----------------- ---------------- ----------------------------------------- ----------
994de4c0-2f76-48ef-9a07-c36355e5933e OraDB12102_home1 12.1.0.2.200714 /u01/app/oracle/product/12.1.0.2/dbhome_1 Configured
44492acd-8feb-4fd4-a58c-acf17a611d4d OraDB19000_home1 19.8.0.0.200714 /u01/app/oracle/product/19.0.0.0/dbhome_1 Configured
Er is een oracle12 home en een oracle 19 home aanwezig. In de documentatie staat dat er eerst een zgn. instance only database moet worden aangemaakt.

De huidige databases zijn allemaal oracle 12, de ‘instance only’ database wordt ook aangemaakt als oracle 12.
Hiervoor wordt gebruik gemaakt van het odacli create-database commando, uitgevoerd als user root. met behulp van odacli create-database --help kan achterhaald worden welke parameter nodig zijn. In dit geval is er gebruik gemaakt van de volgende parameters:
-dh voor het id van de oracle 12 database home.-u en -n voor de database unique name en database name.-r voor soort database storage. Er is gekozen om de database op ACFS aan te maken.-io om aan te geven dat het een ‘instance only’ database is.Na het starten van dit commando wordt een complex wachtwoord gevraagd voor users sys, system en pdbadmin.
[root@aotb001 ~]# odacli create-database -dh '994de4c0-2f76-48ef-9a07-c36355e5933e' -u D040NG -n D040NG -r acfs -io
Password for SYS,SYSTEM and PDB Admin:
Job details
----------------------------------------------------------------
ID: f59fad90-1002-46ec-8e43-f42493ecdc39
Description: Database service creation with db name: D040NG
Status: Created
Created: February 28, 2023 11:43:08 AM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
[root@aotb001 ~]#
Het odacli commando start een ‘job’. De voortgang van deze job is te volgen met odacli describe-job , waarbij het jobId als parameter wordt meegegeven. Ook geeft dit een goed beeld welke stappen allemaal uitgevoerd worden, zoals o.a. het aanmaken van een tweetal ACFS filesystems om de verschillende database files te plaatsen. Dit is belangrijk voor het rman duplicate commando verderop deze pagina.
[root@aotb001 ~]# odacli describe-job -i f59fad90-1002-46ec-8e43-f42493ecdc39
Job details
----------------------------------------------------------------
ID: f59fad90-1002-46ec-8e43-f42493ecdc39
Description: Database service creation with db name: D040NG
Status: Success
Created: February 28, 2023 11:43:08 AM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Setting up ssh equivalance February 28, 2023 11:43:16 AM CET February 28, 2023 11:43:16 AM CET Success
Creating volume datD040NG February 28, 2023 11:43:16 AM CET February 28, 2023 11:43:41 AM CET Success
Creating volume rdoD040NG February 28, 2023 11:43:41 AM CET February 28, 2023 11:44:04 AM CET Success
Creating ACFS filesystem for DATA February 28, 2023 11:44:04 AM CET February 28, 2023 11:44:22 AM CET Success
Creating ACFS filesystem for RECO February 28, 2023 11:44:22 AM CET February 28, 2023 11:44:40 AM CET Success
Database Service creation February 28, 2023 11:44:40 AM CET February 28, 2023 11:44:55 AM CET Success
Auxiliary Instance Creation February 28, 2023 11:44:40 AM CET February 28, 2023 11:44:48 AM CET Success
password file creation February 28, 2023 11:44:50 AM CET February 28, 2023 11:44:52 AM CET Success
archive and redo log location creation February 28, 2023 11:44:52 AM CET February 28, 2023 11:44:52 AM CET Success
updating the Database version February 28, 2023 11:44:52 AM CET February 28, 2023 11:44:55 AM CET Success
[root@aotb001 ~]#
Met het odacli list-databases commando kan e.e.a. gecontroleerd worden.
[root@aotb001 ~]# odacli list-databases
ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID
------------------------------------- ------- -------- --------------- ------- -------- -------- ---------- ------------ ------------------------------------
7357e3e1-7ddd-46dc-ac3d-721745de6ce6 D040NG Rac 12.1.0.2.200714 false Oltp Odb1 Acfs Configured 994de4c0-2f76-48ef-9a07-c36355e5933e
[root@aotb001 ~]#
Het valt op dat deze (instance only) database aangemaakt wordt als DB Type Rac, terwijl de documentatie aangeeft dat het registreren van een ODA database alleen werkt voor een single instance.
De controle kan je ook uitvoeren via de webinterface (https://aotb001.avinty.cloud:7093/mgmt/index.html) als user oda-admin.


Nu de instance, inclusief ACFS filesystems, is aangemaakt kan database D040NG aangemaakt worden als rman duplicate van D040NE. Hiervoor is een static entry in de listener nodig en moeten beide databases (D040NE en D040NG) bereikbaar zijn via SQL*Net, entries in tnsnames.ora of via EZCONNECT.
Onderstaande is als user grid toegevoegd aan /u01/app/19.0.0.0/grid/network/admin/listener.ora file:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC =(GLOBAL_DBNAME = D040NFG)(SDU=32767)(SID_NAME = D040NG )(ORACLE_HOME = /u01/app/oracle/product/12.1.0.2/dbhome_1))
)
Na het herstarten van de listener is het verstandig de EZCONNECT connectie te testen. Het registreren van de aangemaakte database (=volgende paragraaf) wordt n.l. via EZCONNECT uitgevoerd. Nu testen voorkomt problemen later. Let op!!! voor EZCONNECT is het nodig het password direct in de connectiestring op te nemen.
sqlplus sys/[hier password]@aotb002:1521/D040NE as sysdba
sqlplus sys/[hier password]@aotb001:1521/D040NG as sysdba
Start als user oracle rman vanuit de juiste ORACLE_HOME . Let op dat je de juiste database voor target en auxiliary gebruikt.
[oracle@aotb001 RPONA0011 ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/dbhome_1
[oracle@aotb001 RPONA0011 ~]$ rman target sys/[hier password]@aotb002:1521/D040NE
Recovery Manager: Release 12.1.0.2.0 - Production on Tue Feb 28 12:57:58 2023
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
connected to target database: D040NE (DBID=2553345987)
RMAN> connect auxiliary sys/[hier password]@aotb001:1521/D040NG
connected to auxiliary database: D040NG (not mounted)
RMAN>
In de vorige paragraaf is o.a. een aantal ACFS filesystems aangemaakt. Deze worden gebruikt in rman duplicate als locatie voor database D040NG.
Met behulp van het odacli list-dbstorages commando kunnen de details achterhaald worden.
[root@aotb001 ~]# odacli list-dbstorages
ID Type DBUnique Name DiskGroup Location Total Used Available Status
---------------------------------------- ------ -------------------- ---------- ------------------------------------ ---------- ---------- ---------- ----------
b1fa86cc-66cb-45e5-a8a5-b7c2bafe447b ACFS D040NG Configured
DATA /u02/app/oracle/oradata/D040NG 99.99 GB 816.0 MB 99.20 GB
REDO /u04/app/oracle/redo/D040NG/ 3.99 GB 557.0 MB 3.45 GB
RECO /u03/app/oracle/fast_recovery_area/ 199.99 GB 1.33 GB 198.66 GB
[root@aotb001 ~]#
Zorg ervoor dat in het rman RUN block de waarden gebruikt worden zoals deze in odacli list-dbstorages gegeven worden.
Location van DATA gebruik je voor db_create_file_destLocation van REDO gebruik je voor db_create_online_log_dest_1Location van RECO gebruik je voor db_recovery_file_destVoer volgens het RUN block uit in rman
RMAN> RUN {
SET NEWNAME FOR DATABASE TO NEW;
duplicate target database to D040NG from active database
SPFILE
SET cluster_database 'false'
SET audit_file_dest '/u01/app/oracle/admin/D040NG/adump'
SET db_create_file_dest '/u02/app/oracle/oradata/D040NG'
SET db_create_online_log_dest_1 '/u04/app/oracle/redo'
SET db_recovery_file_dest '/u03/app/oracle/fast_recovery_area'
SET control_files '/tmp/control_D040NG.ctl' nofilenamecheck;
}
<<<<<<<<<< meeste logging is niet opgenomenin dit voorbeeld, alleen her 'einde' >>>>
contents of Memory Script:
{
Alter clone database open resetlogs;
}
executing Memory Script
database opened
Finished Duplicate Db at 28-02-23
RMAN>
Voor het registreren van een ODA database wordt gebruik gemaakt van het odacli register-database commando, uitgevoerd als user root. Met behulp van odacli register-database --help kan achterhaald worden welke parameter nodig zijn. In dit geval is er gebruik gemaakt van de volgende parameters:
-c voor database class OLTP-s voor voor shape. De shape is in dit voorbeeld afgeleid van de bron database. Voor USER databases moet dit nog uitgezocht worden.-sn voor servicename. Deze naam wordt gebruikt in EZCONNECTHet commando vraagt naar het wachtwoord voor user SYS
[root@aotb001 ~]# odacli register-database -c OLTP -s odb1s -sn D040NG
Password for SYS:
{
"jobId" : "2a119df0-54db-4ddc-8a9d-5a282ae4fac6",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "February 28, 2023 13:17:42 PM CET",
"resourceList" : [ ],
"description" : "Database service registration with db service name: D040NG",
"updatedTime" : "February 28, 2023 13:17:42 PM CET"
}
[root@aotb001 ~]#
Het odacli commando start een ‘job’. De voortgang van deze job is te volgen met odacli describe-job , waarbij het jobId als parameter wordt meegegeven. Ook geeft dit een goed beeld welke stappen allemaal uitgevoerd worden.
[root@aotb001 ~]# odacli describe-job -i 2a119df0-54db-4ddc-8a9d-5a282ae4fac6
Job details
----------------------------------------------------------------
ID: 2a119df0-54db-4ddc-8a9d-5a282ae4fac6
Description: Database service registration with db service name: D040NG
Status: Success
Created: February 28, 2023 1:17:42 PM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Enable OMF parameters February 28, 2023 1:17:42 PM CET February 28, 2023 1:17:42 PM CET Success
restore control file February 28, 2023 1:17:42 PM CET February 28, 2023 1:18:42 PM CET Success
Setting db character set February 28, 2023 1:18:42 PM CET February 28, 2023 1:18:42 PM CET Success
Removing Disabled Redo Threads February 28, 2023 1:18:42 PM CET February 28, 2023 1:18:42 PM CET Success
Move Spfile to right location February 28, 2023 1:18:42 PM CET February 28, 2023 1:18:57 PM CET Success
register DB with clusterware February 28, 2023 1:18:57 PM CET February 28, 2023 1:19:40 PM CET Success
Enable DbSizing Template February 28, 2023 1:19:40 PM CET February 28, 2023 1:20:14 PM CET Success
Running DataPatch February 28, 2023 1:20:14 PM CET February 28, 2023 1:20:41 PM CET Success
configuring TDE February 28, 2023 1:20:41 PM CET February 28, 2023 1:21:14 PM CET Success
Reset Associated Networks for Databse February 28, 2023 1:21:14 PM CET February 28, 2023 1:21:17 PM CET Success
Reset Associated Networks February 28, 2023 1:21:17 PM CET February 28, 2023 1:21:17 PM CET Success
[root@aotb001 ~]#
De upgrade op de ODA manier kan vanuit de web gui maar ook met het odacli commando. We hebben het ID van de database nodig en dat halen we op met odacli list-databases.
[root@aotb001 ~]# odacli list-databases
ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID
------------------------------------ ------- -------- --------------- ----- ----- -------- ------- ---------- ------------------------------------
7357e3e1-7ddd-46dc-ac3d-721745de6ce6 D040NG Si 12.1.0.2.200714 false Oltp Odb1s Acfs Configured 994de4c0-2f76-48ef-9a07-c36355e5933e
[root@aotb001 ~]#
Met behulp van odacli list-dbhomes wordt het ID van de oracle 19 database home opgehaald.
[root@aotb001 ~]# odacli list-dbhomes
ID Name DB Version Home Location Status
---------------------------------------- ----------------- ---------------- ----------------------------------------- ----------
994de4c0-2f76-48ef-9a07-c36355e5933e OraDB12102_home1 12.1.0.2.200714 /u01/app/oracle/product/12.1.0.2/dbhome_1 Configured
44492acd-8feb-4fd4-a58c-acf17a611d4d OraDB19000_home1 19.8.0.0.200714 /u01/app/oracle/product/19.0.0.0/dbhome_1 Configured
De upgrade wordt uitgevoerd door het uitvoeren van het odacli upgrade-database commando. Met behulp van odacli upgrade-database --help kan achterhaald worden welke parameter nodig zijn. In dit geval is er gebruik gemaakt van de volgende parameters:
-i het ID van database D040NG-to het ID van de Oracle 19 database homeHet is opvallend dat dit commando geen wachtwoord voor user SYS vraagt en direct start.
[root@aotb001 ~]# odacli upgrade-database -i 7357e3e1-7ddd-46dc-ac3d-721745de6ce6 -to 44492acd-8feb-4fd4-a58c-acf17a611d4d
{
"jobId" : "d392e2c2-6346-4636-97f7-758a200de3ef",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "February 28, 2023 15:24:38 PM CET",
"resourceList" : [ ],
"description" : "Database service upgrade with db ids: [7357e3e1-7ddd-46dc-ac3d-721745de6ce6]",
"updatedTime" : "February 28, 2023 15:24:38 PM CET"
}
[root@aotb001 ~]#
Het odacli commando start een ‘job’. De voortgang van deze job is te volgen met odacli describe-job , waarbij het jobId als parameter wordt meegegeven. Ook geeft dit een goed beeld welke stappen allemaal uitgevoerd worden.
[root@aotb002 ~]# odacli describe-job -i d392e2c2-6346-4636-97f7-758a200de3ef
Job details
----------------------------------------------------------------
ID: d392e2c2-6346-4636-97f7-758a200de3ef
Description: Database service upgrade with db ids: [7357e3e1-7ddd-46dc-ac3d-721745de6ce6]
Status: Success
Created: February 28, 2023 3:24:38 PM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Setting up ssh equivalance February 28, 2023 3:24:38 PM CET February 28, 2023 3:24:38 PM CET Success
Clear local and remote listeners from Databse February 28, 2023 3:24:38 PM CET February 28, 2023 3:24:39 PM CET Success
Setting PGA February 28, 2023 3:24:39 PM CET February 28, 2023 3:24:40 PM CET Success
Database Upgrade February 28, 2023 3:24:40 PM CET February 28, 2023 4:11:28 PM CET Success
Deleting and creating the spfile and pfile February 28, 2023 4:11:57 PM CET February 28, 2023 4:12:58 PM CET Success
Removing ssh keys February 28, 2023 4:12:58 PM CET February 28, 2023 4:13:00 PM CET Success
Database Upgrade Validation February 28, 2023 4:13:00 PM CET February 28, 2023 4:13:02 PM CET Success
[root@aotb002 ~]#
Voordat er een backup gemaakt kan worden van een ODA database moet er eerst een ‘backup configuratie’ worden toegekend an de database. Het ophalen van de beschikbare configuraties doe je met odacli list-backupconfigs
[root@aotb001 ~]# odacli list-backupconfigs
ID Name RecoveryWindow CrosscheckEnabled BackupDestination
---------------------------------------- -------------------- ---------------- ------------------- --------------------
23fc36b9-b9df-4d59-8dd6-5b7500cfb9d9 default 7 true Disk
9c46fd87-6ac6-4813-a332-998197245df8 dagelijks 1 true Disk
Voor het toekennen van backup configuratie aan een ODA database wordt gebruik gemaakt van het odacli modify-database commando, uitgevoerd als user root. Met behulp van odacli modify-database --help kan achterhaald worden welke parameter nodig zijn. In dit geval is er gebruik gemaakt van de volgende parameters:
-i het ID van database D040NG-bin naam van de backu configuratie, die hierboven gevonden is[root@aotb002 ~]# odacli modify-database -i 7357e3e1-7ddd-46dc-ac3d-721745de6ce6 -bin dagelijks
For moving a database between homes please use the command 'move-database'.
{
"jobId" : "52d4d07d-8e08-416c-aeab-b097c50f7e38",
"status" : "Created",
"message" : "Modify database",
"reports" : [ ],
"createTimestamp" : "February 28, 2023 16:27:55 PM CET",
"resourceList" : [ {
"resourceId" : "7357e3e1-7ddd-46dc-ac3d-721745de6ce6",
"resourceType" : "DB",
"resourceNewType" : null,
"jobId" : "52d4d07d-8e08-416c-aeab-b097c50f7e38",
"updatedTime" : "February 28, 2023 16:27:55 PM CET"
} ],
"description" : "Modify database : D040NG",
"updatedTime" : "February 28, 2023 16:27:55 PM CET"
}
[root@aotb002 ~]#
Het odacli commando start een ‘job’. De voortgang van deze job is te volgen met odacli describe-job , waarbij het jobId als parameter wordt meegegeven. Ook geeft dit een goed beeld welke stappen allemaal uitgevoerd worden.
[root@aotb002 ~]# odacli describe-job -i 52d4d07d-8e08-416c-aeab-b097c50f7e38
Job details
----------------------------------------------------------------
ID: 52d4d07d-8e08-416c-aeab-b097c50f7e38
Description: Modify database : D040NG
Status: Success
Created: February 28, 2023 4:27:55 PM CET
Message: Modify database
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Validate OMF parameter values February 28, 2023 4:28:10 PM CET February 28, 2023 4:28:12 PM CET Success
update db with backupconfig attributes February 28, 2023 4:29:00 PM CET February 28, 2023 4:29:24 PM CET Success
Enable Database Autobackup February 28, 2023 4:29:24 PM CET February 28, 2023 4:29:24 PM CET Success
Enable Archivelog Autobackup February 28, 2023 4:29:24 PM CET February 28, 2023 4:29:24 PM CET Success
Backup Current Control file February 28, 2023 4:29:36 PM CET February 28, 2023 4:29:55 PM CET Success
Update metadata for database:D040NG February 28, 2023 4:29:55 PM CET February 28, 2023 4:29:55 PM CET Success
[root@aotb002 ~]#
Na het toekennen van backup configuratie aan een ODA database kan de backup handmatig uitgevoerd worden met van het odacli create-backup commando, uitgevoerd als user root. Met behulp van odacli create-backup --help kan achterhaald worden welke parameter nodig zijn. In dit geval is er gebruik gemaakt van de volgende parameters:
-i het ID van database D040NG-btvoor een 'standaard level 0 (full) database backup-t tag naam voor de backup[root@aotb002 ~]# odacli create-backup -i 7357e3e1-7ddd-46dc-ac3d-721745de6ce6 -bt Regular-L0 -t 2023Feb28_HRLevel0
{
"jobId" : "d3827ee7-c866-457f-af59-feb8b66fe160",
"status" : "Created",
"message" : null,
"reports" : [ ],
"createTimestamp" : "February 28, 2023 16:34:36 PM CET",
"resourceList" : [ ],
"description" : "Create Regular-L0 Backup with TAG-2023Feb28_HRLevel0 for Db:D040NG in FRA",
"updatedTime" : "February 28, 2023 16:34:36 PM CET"
}
[root@aotb002 ~]#
Het odacli commando start een ‘job’. De voortgang van deze job is te volgen met odacli describe-job , waarbij het jobId als parameter wordt meegegeven. Ook geeft dit een goed beeld welke stappen allemaal uitgevoerd worden.
[root@aotb002 ~]# odacli describe-job -i d3827ee7-c866-457f-af59-feb8b66fe160
Job details
----------------------------------------------------------------
ID: d3827ee7-c866-457f-af59-feb8b66fe160
Description: Create Regular-L0 Backup with TAG-2023Feb28_HRLevel0 for Db:D040NG in FRA
Status: Success
Created: February 28, 2023 4:34:36 PM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Validate backup config February 28, 2023 4:34:40 PM CET February 28, 2023 4:34:40 PM CET Success
Backup Validations February 28, 2023 4:34:40 PM CET February 28, 2023 4:34:48 PM CET Success
Recovery Window validation February 28, 2023 4:34:48 PM CET February 28, 2023 4:34:59 PM CET Success
Archivelog deletion policy configuration February 28, 2023 4:34:59 PM CET February 28, 2023 4:35:11 PM CET Success
Database backup February 28, 2023 4:35:11 PM CET February 28, 2023 4:36:30 PM CET Success
[root@aotb002 ~]#
De aanmaken van een RAC CDB wordt uitgevoerd door het uitvoeren van het odacli create-database commando. Met behulp van odacli create-database --help kan achterhaald worden welke parameter nodig zijn. In dit geval is er gebruik gemaakt van de volgende parameters:
-n dat database naam-dh het ID van de Oracle 19 database home-p de naam van een PDB. Deze is verplicht, het is niet mogelijk om op de ODA een'lege' CDB aan te maken. Deze pdb wordt later verwijderd, de naam is dus niet belangrijk.-nn de naam van het ‘netwerk’ , in dit geval de Default naam.-s de shape van de database.-cl de dbclass-c CDB databaseHet commando vraagt naar het wachtwoord voor user SYS, SYSTEM en pdbadmin
[root@aotb001 ~]# odacli create-database -n CA040N1 -dh 44492acd-8feb-4fd4-a58c-acf17a611d4d -p PDB1 -nn Public-network -s odb1s -cl OLTP -c
Password for SYS,SYSTEM and PDB Admin:
Job details
----------------------------------------------------------------
ID: cf2b7e7d-cc2e-4337-a05b-fb9f8b0b2ee1
Description: Database service creation with db name: CA040N1
Status: Created
Created: February 28, 2023 3:59:30 PM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Het odacli commando start een ‘job’. De voortgang van deze job is te volgen met odacli describe-job , waarbij het jobId als parameter wordt meegegeven. Ook geeft dit een goed beeld welke stappen allemaal uitgevoerd worden.
[root@aotb002 ~]# odacli describe-job -i cf2b7e7d-cc2e-4337-a05b-fb9f8b0b2ee1
Job details
----------------------------------------------------------------
ID: cf2b7e7d-cc2e-4337-a05b-fb9f8b0b2ee1
Description: Database service creation with db name: CA040N1
Status: Success
Created: February 28, 2023 3:59:30 PM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Setting up ssh equivalance February 28, 2023 4:14:10 PM CET February 28, 2023 4:14:10 PM CET Success
Database Service creation February 28, 2023 4:14:11 PM CET February 28, 2023 4:30:52 PM CET Success
Database Creation February 28, 2023 4:14:11 PM CET February 28, 2023 4:28:05 PM CET Success
Change permission for xdb wallet files February 28, 2023 4:28:05 PM CET February 28, 2023 4:28:05 PM CET Success
Add Startup Trigger to Open all PDBS February 28, 2023 4:28:05 PM CET February 28, 2023 4:28:07 PM CET Success
SqlPatch upgrade February 28, 2023 4:29:40 PM CET February 28, 2023 4:30:45 PM CET Success
Running dbms_stats init_package February 28, 2023 4:30:45 PM CET February 28, 2023 4:30:49 PM CET Success
updating the Database version February 28, 2023 4:30:49 PM CET February 28, 2023 4:30:52 PM CET Success
create Users tablespace February 28, 2023 4:30:52 PM CET February 28, 2023 4:30:59 PM CET Success
Clear all listeners from Databse {3e70564d-40d2-48fb-84bc-c1a84b235d9a} February 28, 2023 4:30:59 PM CET February 28, 2023 4:31:01 PM CET Success
[root@aotb002 ~]#
De pdb PDB1 die aangemaakt is hebben we niet nodig en kunnen we verwijderen. Hiervoor moet de pdb in beide instances van CA040N1 gestopt worden, waarna deze verwijderd kan worden.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
SQL> alter pluggable database PDB1 close immediate;
Pluggable database altered.
SQL> drop pluggable database PDB1 including datafiles;
Pluggable database dropped.
SQL>
D040NG naar een pdb in de RAC CDB CA040N1Zorg dat je in de juiste database zit om de database te stoppen en in READ-ONLY mode te openen.
SQL> select name from v$database;
NAME
---------
D040NG
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup open read only
ORACLE instance started.
Total System Global Area 2147481656 bytes
Fixed Size 8898616 bytes
Variable Size 486539264 bytes
Database Buffers 1610612736 bytes
Redo Buffers 41431040 bytes
Database mounted.
Database opened.
Als de database READ-ONLY geopend is maak je xml file /home/oracle/D040NG_NonPDB.xml aan, waarin de database ‘beschreven’ wordt. Vervolgens wordt de database gestopt.
SQL> BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '/home/oracle/D040NG_NonPDB.xml');
END;
/
PL/SQL procedure successfully completed.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
Log in als sys op de nieuw aangemaakte RAC CDB en controleer of de eerder gemigreerde database D040NG compatible is met de RAC CDB.
SQL> SET SERVEROUTPUT ON;
DECLARE
compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/home/oracle/D040NG_NonPDB.xml')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
SQL>
YES
PL/SQL procedure successfully completed.
Als het PLSQL block output ‘YES’ geeft kan de D040NG als pluggable database aangemaakt worden.
SQL> CREATE PLUGGABLE DATABASE D040NG USING '/home/oracle/D040NG_NonPDB.xml' COPY;
Pluggable database created.
col cause for a20
col name for a20
col message for a35 word_wrapped
select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name='CA040N1';
SQL> select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name='CA040N1';
no rows selected
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 D040NG MOUNTED
SQL>
Ga naar de zojuist aangemaakte pdb en voer script $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql uit. Als het script geen fouten geeft kan de pdb geopend worden.
SQL> alter session set container=D040NG;
Session altered.
SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
-- logging is hier niet opgenomen
SQL> ALTER PLUGGABLE DATABASE OPEN;
Pluggable database altered.
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
-------- ----------
D040NG READ WRITE
SQL> ALTER PLUGGABLE DATABASE SAVE STATE;
Pluggable database altered.
Controleer of er nog onopgeloste meldingen aanwezig zijn in PDB_PLUG_IN_VIOLATIONS voor de nieuwe pdb .
SQL> alter session set container=CDB$ROOT;
Session altered.
SQL> select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name='D040NG' and status <> 'RESOLVED';
no rows selected
SQL>
Het is verstandig om direct hierna een backup te maken van de database CA040N1. De stappen hiervoor zijn al eerder beschreven.
Controleer m.b.v. srvctl of de database op beide nodes te stoppen en te starten is.
[oracle@aotb002 CA040N12 ~]$ srvctl status database -db CA040N1
Instance CA040N11 is running on node aotb001
Instance CA040N12 is running on node aotb002
[oracle@aotb002 CA040N12 ~]$ srvctl stop database -db CA040N1
[oracle@aotb002 CA040N12 ~]$ srvctl start database -db CA040N1
[oracle@aotb002 CA040N12 ~]$ srvctl status database -db CA040N1
Instance CA040N11 is running on node aotb001
Instance CA040N12 is running on node aotb002
[oracle@aotb002 CA040N12 ~]$
De verwijdere van de ‘tijdelijke’ database D040NG wordt uitgevoerd door het uitvoeren van het odacli delete-database commando. Met behulp van odacli delete-database --help kan achterhaald worden welke parameter nodig zijn. In dit geval is er gebruik gemaakt van de volgende parameters:
-i Het ID van de databaseHet achterhalen van het ID van de te verwijderen database kan m.b.v. odacli list-databases
[root@aotb001 ~]# odacli list-databases
ID DB Name DB Type DB Version CDB Class Shape Storage Status DbHomeID
---------------------------------------- ---------- -------- -------------------- ---------- -------- -------- ---------- ------------ ----------------------------------------
33eab984-e3ff-4126-8026-74c700e74829 D040NF Si 12.1.0.2.200714 false Oltp Odb1s Acfs Configured 994de4c0-2f76-48ef-9a07-c36355e5933e
dfa56c72-4a25-442d-bae4-3978a096bfb2 D040NE Rac 12.1.0.2.200714 false Oltp Odb1 Acfs Configured 994de4c0-2f76-48ef-9a07-c36355e5933e
7357e3e1-7ddd-46dc-ac3d-721745de6ce6 D040NG Si 19.8.0.0.200714 false Oltp Odb1s Acfs Configured 44492acd-8feb-4fd4-a58c-acf17a611d4d
3e70564d-40d2-48fb-84bc-c1a84b235d9a CA040N1 Rac 19.8.0.0.200714 true Oltp Odb1s Asm Configured 44492acd-8feb-4fd4-a58c-acf17a611d4d
[root@aotb001 ~]# odacli delete-database -i 7357e3e1-7ddd-46dc-ac3d-721745de6ce6
{
"jobId" : "4b39ee46-1a4b-4740-bb50-611ecfd9aacd",
"status" : "Running",
"message" : null,
"reports" : [ ],
"createTimestamp" : "March 01, 2023 10:07:51 AM CET",
"resourceList" : [ ],
"description" : "Database service deletion with db name: D040NG with id : 7357e3e1-7ddd-46dc-ac3d-721745de6ce6",
"updatedTime" : "March 01, 2023 10:07:53 AM CET"
}
[root@aotb001 ~]#
Het odacli commando start een ‘job’. De voortgang van deze job is te volgen met odacli describe-job , waarbij het jobId als parameter wordt meegegeven. Ook geeft dit een goed beeld welke stappen allemaal uitgevoerd worden.
[root@aotb001 ~]# odacli describe-job -i 4b39ee46-1a4b-4740-bb50-611ecfd9aacd
Job details
----------------------------------------------------------------
ID: 4b39ee46-1a4b-4740-bb50-611ecfd9aacd
Description: Database service deletion with db name: D040NG with id : 7357e3e1-7ddd-46dc-ac3d-721745de6ce6
Status: Success
Created: March 1, 2023 10:07:51 AM CET
Message:
Task Name Start Time End Time Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Validate db 7357e3e1-7ddd-46dc-ac3d-721745de6ce6 for deletion March 1, 2023 10:07:53 AM CET March 1, 2023 10:07:53 AM CET Success
Database Deletion March 1, 2023 10:07:53 AM CET March 1, 2023 10:07:54 AM CET Success
Unregister Db From Cluster March 1, 2023 10:07:54 AM CET March 1, 2023 10:07:56 AM CET Success
Kill Pmon Process March 1, 2023 10:07:56 AM CET March 1, 2023 10:07:56 AM CET Success
Database Files Deletion March 1, 2023 10:07:56 AM CET March 1, 2023 10:07:57 AM CET Success
Deleting Volume March 1, 2023 10:08:08 AM CET March 1, 2023 10:08:14 AM CET Success
Deleting Volume March 1, 2023 10:08:23 AM CET March 1, 2023 10:08:29 AM CET Success
Delete File Groups of Database D040NG March 1, 2023 10:08:29 AM CET March 1, 2023 10:08:29 AM CET Success
[root@aotb001 ~]#