For the complete syntax for the ODACLI create database options, please refer to the CLI Documentation from Oracle.

First list the database homes available for you to leverage:

# odacli list-dbhomes
ID                                       Name                 DB Version                               Home Location                                 Status    
---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
2fb3858a-61a7-4f49-b792-695c619d7cee     OraDB18000_home1     18.1.0.0.0                               /u01/app/oracle/product/18.0.0.0/dbhome_1     CONFIGURED
880eca0b-eed7-497f-8a69-fedc1db34130     OraDB12102_home2     12.1.0.2.160419                          /u01/app/oracle/product/12.1.0.2/dbhome_2     CONFIGURED
c1c52e57-53e9-4791-b553-32cc2c280ca4     OraDB12102_home1     12.1.0.2.160419                          /u01/app/oracle/product/12.1.0.2/dbhome_1     CONFIGURED
d5003afa-ba43-4453-add6-67444ed83d9d     OraDB19000_home1     19.9.0.0.201020                          /u01/app/oracle/product/19.0.0.0/dbhome_1     CONFIGURED

We are going to create an Oracle 19c database, so we will use the ID from the OraDB19000_home1. Execute the following ODACLI command to create a 2-node RAC database on ASM called DEV with a pluggable database called pdb1. For the SYS, SYSTEM and PDB Admin user password, we must meet the following requirements for passwords:

password length (minimum: 9 / maximum: 30) characters
password should contain ALL of the following:
a) at least two uppercase letters
b) at least two lowercase letters
c) at least two numbers
d) at least two special characters, valid characters are # _ –

[root@odax8a ContentsXML]# odacli create-database -n DEV -cl oltp -dh d5003afa-ba43-4453-add6-67444ed83d9d -s odb1 -p pdb1 -r ASM -c -y RAC

Enter SYS, SYSTEM and PDB Admin user password: OraBora123##
Retype SYS, SYSTEM and PDB Admin user password:

Job details                                                      
----------------------------------------------------------------
                     ID:  c2cbce12-82bd-41a1-ae5d-86dd363ce5b6
            Description:  Database service creation with db name: DEV
                 Status:  Created
                Created:  May 24, 2021 7:22:01 PM CDT
                Message:  

Task Name                                Start Time                          End Time                            Status    
---------------------------------------- ----------------------------------- ----------------------------------- ----------

We can obtain the status of the database creation job with the describe-job option:

[root@odax8a ContentsXML]# odacli describe-job -i c2cbce12-82bd-41a1-ae5d-86dd363ce5b6

Job details                                                      
----------------------------------------------------------------
                     ID:  c2cbce12-82bd-41a1-ae5d-86dd363ce5b6
            Description:  Database service creation with db name: DEV
                 Status:  Running
                Created:  May 24, 2021 7:22:01 PM CDT
                Message:  

Task Name                                Start Time                          End Time                            Status    
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Setting up ssh equivalance               May 24, 2021 7:22:02 PM CDT         May 24, 2021 7:22:02 PM CDT         Success   
Database Service creation                May 24, 2021 7:22:04 PM CDT         May 24, 2021 7:22:04 PM CDT         Running   
Database Creation                        May 24, 2021 7:22:04 PM CDT         May 24, 2021 7:22:04 PM CDT         Running   

We can review the dcs-agent.log file to see the details of the tasks that Oracle is performing:

[root@odax8a ContentsXML]# tail -30f /opt/oracle/dcs/log/dcs-agent.log
    "tags" : [ ],
    "reportLevel" : "Info"
  }, {
    "updatedTime" : "Mon May 24, 2021 19:22:04.449 (CDT) [1621902124449]",
    "startTime" : "Mon May 24, 2021 19:22:04.445 (CDT) [1621902124445]",
    "endTime" : "Mon May 24, 2021 19:22:04.449 (CDT) [1621902124449]",
    "taskId" : "TaskZJsonRpcExt_402",
    "status" : "Running",
    "taskResult" : "",
    "taskName" : "Database Creation",
    "taskDescription" : null,
    "parentTaskId" : "TaskSequential_401",
    "jobId" : "c2cbce12-82bd-41a1-ae5d-86dd363ce5b6",
    "tags" : [ ],
    "reportLevel" : "Info"
  } ],
  "createTimestamp" : "Mon May 24, 2021 19:22:01.097 (CDT) [1621902121097]",
  "resourceList" : [ {
    "updatedTime" : "Mon May 24, 2021 19:22:02.743 (CDT) [1621902122743]",
    "resourceId" : "203ee5ff-53ed-41aa-bb3e-b8a4fa5d0681",
    "jobId" : "c2cbce12-82bd-41a1-ae5d-86dd363ce5b6",
    "resourceType" : "DB"
  }, {
    "updatedTime" : "Mon May 24, 2021 19:22:02.500 (CDT) [1621902122500]",
    "resourceId" : "f8d5de58-1763-4959-b2f3-cdd8f9675b2c",
    "jobId" : "c2cbce12-82bd-41a1-ae5d-86dd363ce5b6",
    "resourceType" : "Storage"
  } ],
  "description" : "Database service creation with db name: DEV"
}

We can display the details of the database creation job again to see that it completed successfully within 20 minutes.

[root@odax8a ContentsXML]# odacli describe-job -i c2cbce12-82bd-41a1-ae5d-86dd363ce5b6

Job details                                                      
----------------------------------------------------------------
                     ID:  c2cbce12-82bd-41a1-ae5d-86dd363ce5b6
            Description:  Database service creation with db name: DEV
                 Status:  Success
                Created:  May 24, 2021 7:22:01 PM CDT
                Message:  

Task Name                                Start Time                          End Time                            Status    
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Setting up ssh equivalance               May 24, 2021 7:22:02 PM CDT         May 24, 2021 7:22:02 PM CDT         Success   
Database Service creation                May 24, 2021 7:22:04 PM CDT         May 24, 2021 7:41:20 PM CDT         Success   
Database Creation                        May 24, 2021 7:22:04 PM CDT         May 24, 2021 7:37:59 PM CDT         Success   
Change permission for xdb wallet files   May 24, 2021 7:37:59 PM CDT         May 24, 2021 7:37:59 PM CDT         Success   
Add Startup Trigger to Open all PDBS     May 24, 2021 7:37:59 PM CDT         May 24, 2021 7:38:00 PM CDT         Success   
SqlPatch upgrade                         May 24, 2021 7:39:21 PM CDT         May 24, 2021 7:39:59 PM CDT         Success   
Running dbms_stats init_package          May 24, 2021 7:39:59 PM CDT         May 24, 2021 7:40:01 PM CDT         Success   
updating the Database version            May 24, 2021 7:40:02 PM CDT         May 24, 2021 7:40:04 PM CDT         Success   
Set CPU pool                             May 24, 2021 7:40:04 PM CDT         May 24, 2021 7:40:04 PM CDT         Success   
create Users tablespace                  May 24, 2021 7:41:20 PM CDT         May 24, 2021 7:41:24 PM CDT         Success   
Clear all listeners from Database {203ee5ff-53ed-41aa-bb3e-b8a4fa5d0681} May 24, 2021 7:41:24 PM CDT         May 24, 2021 7:41:25 PM CDT         Success

We can login to our DEV container database and see that the pluggable database called pdb1 is open in read-write mode:

[oracle@odax8a ~]$ . oraenv
ORACLE_SID = [DEV] ? DEV1
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@odax8a ~]$ 
[oracle@odax8a ~]$ 
[oracle@odax8a ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Mon May 24 19:46:56 2021
Version 19.9.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0

SQL> 
SQL> 
SQL> show pdbs       

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO


In our example above, we created a RAC database. We can create a single instance database on the ODA as well. Here is an example ODACLI command to create a single instance database that is not containerized:

[root@odax8a ~]# odacli create-database -n oraqa -cl oltp -dh d5003afa-ba43-4453-add6-67444ed83d9d -s odb1 -r ACFS -y SI -g 1 

Enter SYS, SYSTEM and PDB Admin user password:
Retype SYS, SYSTEM and PDB Admin user password:

The “-g 1” specifics that we want the single instance database to run on the second node. If we specified “-g 0”, the database will run on the first node of the ODA.

Job details                                                      
----------------------------------------------------------------
                     ID:  fded47a6-1115-499e-90ee-5d01d7c4d182
            Description:  Database service creation with db name: oraqa
                 Status:  Created
                Created:  May 25, 2021 4:47:41 PM CDT
                Message:  

Task Name                                Start Time                          End Time                            Status    
---------------------------------------- ----------------------------------- ----------------------------------- ----------

[root@odax8a ~]# odacli describe-job -i fded47a6-1115-499e-90ee-5d01d7c4d182

Job details                                                      
----------------------------------------------------------------
                     ID:  fded47a6-1115-499e-90ee-5d01d7c4d182
            Description:  Database service creation with db name: oraqa
                 Status:  Success
                Created:  May 25, 2021 4:47:41 PM CDT
                Message:  

Task Name                                Start Time                          End Time                            Status    
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Setting up ssh equivalance               May 25, 2021 4:47:47 PM CDT         May 25, 2021 4:47:47 PM CDT         Success   
Creating volume dcloraqa                 May 25, 2021 4:47:47 PM CDT         May 25, 2021 4:48:06 PM CDT         Success   
Creating volume datoraqa                 May 25, 2021 4:48:06 PM CDT         May 25, 2021 4:48:24 PM CDT         Success   
Creating volume rdooraqa                 May 25, 2021 4:48:24 PM CDT         May 25, 2021 4:48:43 PM CDT         Success   
Creating ACFS filesystem for DATA        May 25, 2021 4:48:43 PM CDT         May 25, 2021 4:49:03 PM CDT         Success   
Creating ACFS filesystem for FLASH       May 25, 2021 4:49:03 PM CDT         May 25, 2021 4:49:19 PM CDT         Success   
Database Service creation                May 25, 2021 4:49:21 PM CDT         May 25, 2021 5:00:12 PM CDT         Success   
Database Creation                        May 25, 2021 4:49:21 PM CDT         May 25, 2021 4:57:29 PM CDT         Success   
Change permission for xdb wallet files   May 25, 2021 4:57:29 PM CDT         May 25, 2021 4:57:29 PM CDT         Success   
Place SnapshotCtrlFile in sharedLoc      May 25, 2021 4:57:29 PM CDT         May 25, 2021 4:57:32 PM CDT         Success   
SqlPatch upgrade                         May 25, 2021 4:58:52 PM CDT         May 25, 2021 4:59:14 PM CDT         Success   
Running dbms_stats init_package          May 25, 2021 4:59:14 PM CDT         May 25, 2021 4:59:17 PM CDT         Success   
updating the Database version            May 25, 2021 4:59:17 PM CDT         May 25, 2021 4:59:20 PM CDT         Success   
Set CPU pool                             May 25, 2021 4:59:20 PM CDT         May 25, 2021 4:59:20 PM CDT         Success   
create Users tablespace                  May 25, 2021 5:00:12 PM CDT         May 25, 2021 5:00:15 PM CDT         Success   
Clear all listeners from Databse {fec53e5d-85f3-4481-badf-84ae113a796d} May 25, 2021 5:00:15 PM CDT         May 25, 2021 5:00:16 PM CDT         Success   
Copy Pwfile to Shared Storage            May 25, 2021 5:00:18 PM CDT         May 25, 2021 5:00:20 PM CDT         Success 

To create a containerized database, we add the -c option, and also specify the name for the PDB with the -p option:

[root@odax8a ~]# odacli create-database -n oraprod -cl oltp -dh d5003afa-ba43-4453-add6-67444ed83d9d -s odb1 -r ACFS -y SI -g 0 -c -p pdb

Enter SYS, SYSTEM and PDB Admin user password:
Retype SYS, SYSTEM and PDB Admin user password:

Job details                                                      
----------------------------------------------------------------
                     ID:  3ff6bf06-af2a-4f28-a3d5-9be8aced3451
            Description:  Database service creation with db name: oraprod
                 Status:  Created
                Created:  May 25, 2021 8:18:58 PM CDT
                Message:  

Task Name                                Start Time                          End Time                            Status    
---------------------------------------- ----------------------------------- ----------------------------------- ----------