Creating non-cdb database in OCI exacs using dbaasapi


Oracle's Exadata Cloud Service (ExaCS) in Oracle Cloud Infrastructure (OCI) has undergone changes in database version support, specifically for older versions like Oracle Database 11g, 12c and 19c non-container database. These versions are no longer visible or available for provisioning new databases in the OCI console for Exadata Cloud Service.

In Oracle Database 19c, CDB (Container Database) architecture is the default and recommended configuration. However, Oracle still allows creating non-CDB 19c databases under certain conditions for backwards compatibility, though this is not recommended.

Since Oracle recommends transitioning to CDB, and non-CDB architecture is officially desupported starting with Oracle 21c, if you still need to create a non-CDB in Oracle 19c on Exadata Cloud Service (ExaCS), you can follow these steps manually.

Oracle does not recommend creating non-CDBs for any new applications. If you need to use a non-CDB, you may need to do so through manual steps as below.

Make sure the oracle 19c binaries is installed on server, in our example we have 19.24 installed on the server already, so we will be using the same binaries and creating non-cdb database.


Create a json file as below, you can see we are explicitly saying no to cdb.


[oracle@exadevdb working]$ cat /home/oracle/working/create_non_cdb.json
{
"object": "db",
"action": "start",
"operation": "createdb",
"params": {
"nodelist": "",
"cdb": "no",
"bp": "JUL2024",
"dbname": "MYPOC",
"edition": "EE_EP",
"version": "19.24.0.0.0",
"adminPassword": "**********",
"charset": "AL32UTF8",
"ncharset": "AL16UTF16",
"backupDestination": "NONE"
},
"outputfile": "/home/oracle/working/createnoncdb.out",
"FLAGS": ""
}

Now, switch to opc user and run the dbaasapi command as below with the json input file "create_non_cdb.json""


[opc@exadevdb working]$ sudo dbaasapi -i /home/oracle/working/create_non_cdb.json

[opc@exadevdb working]$ cat createnoncdb.out

{
"object" : "db",
"recovery" : "",
"status" : "Starting",
"workflow_id" : "",
"dbname" : "",
"outputfile" : "/home/oracle/working/createnoncdb.out",
"workflow_enabled" : "0",
"pid" : "",
"id" : "9b61bfc5-b960-46ab-8e8f-93161cdd4a21",
"operation" : "createdb",
"logfile" : "/var/opt/oracle/log/MYPOC/dbaasapi/db/createdb/9b61bfc5-b960-46ab-8e8f-93161cdd4a21.log",
"msg" : "For security please remove your input file.",
"exceptionErrorCodes" : "",
"ts" : "20240826 18:01:31",
"progress" : "0",
"errmsg" : "",
"infofile_content" : "",
"perl_proxy_pid" : "",
"dgObserverResponseDetails" : "",
"host" : "",
"jobSpecificDetailsJson" : "",
"resourceId" : "",
"action" : "start",
"creation" : "",
"start" : ""
}


And now you can see the non-container database is created successfully.


SQL> show pdbs;
SQL>
SQL> select name,dbid,con_dbid,cdb,con_id from gv$database;

NAME DBID CON_DBID CDB CON_ID
--------- ---------- ---------- --- ----------
MYPOC 1539656098 1539656098 NO 0
MYPOC 1539656098 1539656098 NO 0

SQL>

Comments

Popular posts from this blog

Multi-Domain Support in OCI Load Balancer: Host-Based Routing Explained

Zero-Click Cert Rotation on Oracle Cloud: CertifyTheWeb + OpenSSL + OCI CLI

OCI Migration Case Study: Seamlessly Moving Oracle EBS 11i and 11g Database to the Cloud