On Oracle Database Appliance (ODA), DBAs can provision a database in two ways: a complete database creation or an instance-only setup. Understanding this choice is critical for deciding whether you need a fully configured database or simply an Oracle instance for migrations and restores.
The main reason for using odacli is to ensure that the Oracle Database Appliance (ODA) is fully aware of the new database being hosted. Once registered, the database is automatically included in patching, monitoring, and lifecycle management activities. If you skip this step, the database will remain unmanaged—meaning it won’t receive patches and could be left out of critical maintenance operations.
Instead of using the traditional Database Configuration Assistant (DBCA), on an Oracle Database Appliance (ODA) you should use the odacli create-database option. You must define certain database properties—such as the DB home, shape, character set, and workload class—before creating the database. This process works similarly to DBCA.
- It creates a complete Oracle Database — i.e., both the instance (memory + background processes) and the database (physical structures on disk like controlfiles, datafiles, redo logs).
- You get:
- Database instance started
- Database files created in ASM (or ACFS, depending on config)
- Listener configuration updated
- Password files, spfiles, and tnsnames entries created
- Registered with ODA’s DCS agent and metadata repository
Basically, this gives you a fully operational Oracle Database ready to use.
Identify the requriements
So you run create-database, make sure you have identified your requirements. The documentation explains all the properties and various customization options, but the most critical ones are
- DB Home ID: Defines the Oracle Database edition (EE/SE) and most importanatly the version.
- Shape (odb1, odb2, …): Controls key initialization parameters (e.g., block size).
- Class/Type: e.g., OLTP.
- Characterset/NCHAR: e.g.,
AL32UTF8 (Default)andAL16UTF16.
In order to get the DB Home ID – you will need to use the list-dbhomes. Incase you want to refer to the properties of an existing database for reference, use describe-database to view the detailed configuraiton.
[root@oda1 ~]# odacli list-dbhomes
ID Name DB Version DB Edition Home Location Status
-------------- -------------------- -------------------- ---------- -------------------------------------------------------- ----------
XXXXXXXXX-XXXXXX OraDB19000_home5 19.23.0.0.240416 EE /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_5 CONFIGURED
YYYYYYYYY-YYYYYY OraDB19000_home6 19.26.0.0.250121 EE /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_6 CONFIGURED
# You can also check the help option to view the syntax/options
odcali create-database -h
Create the database
Once I have the information I should be okay to go ahead and create the database itself. Montior the job and once it completes review the properties.
[root@ooda1da ~]# odacli create-database -n testdb -dh YYYYYYYYY-YYYYYY -cs WE8MSWIN1252 -cl OLTP -ns AL16UTF16 -s odb1
Enter SYS and SYSTEM user password:
Retype SYS and SYSTEM user password:
Job details
----------------------------------------------------------------
ID: 99999-fa1d-4516-b900-ab9393sx
Description: Database service creation with DB name: testdb
Status: Created
Created: June 17, 2025 17:14:11 EDT
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
[root@oda1 log]# odacli describe-job -i 99999-fa1d-4516-b900-ab9393sx
Job details
----------------------------------------------------------------
ID: 99999-fa1d-4516-b900-ab9393sx
Description: Database service creation with DB name: testdb
Status: Success
Created: June 17, 2025 17:14:11 EDT
Message:
Task Name Start Time End Time Status
---------------------------------------- ---------------------------------------- ---------------------------------------- ----------------
Setting up SSH equivalence June 17, 2025 17:14:14 EDT June 17, 2025 17:14:14 EDT Success
Setting up SSH equivalence June 17, 2025 17:14:14 EDT June 17, 2025 17:14:14 EDT Success
Database Service creation June 17, 2025 17:14:15 EDT June 17, 2025 17:25:21 EDT Success
Database Creation by RHP June 17, 2025 17:14:15 EDT June 17, 2025 17:22:27 EDT Success
Change permission for xdb wallet files June 17, 2025 17:22:27 EDT June 17, 2025 17:22:28 EDT Success
Place SnapshotCtrlFile in sharedLoc June 17, 2025 17:22:28 EDT June 17, 2025 17:22:31 EDT Success
SqlPatch upgrade June 17, 2025 17:23:48 EDT June 17, 2025 17:23:55 EDT Success
Running dbms_stats init_package June 17, 2025 17:23:55 EDT June 17, 2025 17:23:56 EDT Success
Set log_archive_dest for Database June 17, 2025 17:23:56 EDT June 17, 2025 17:23:59 EDT Success
Updating the Database version June 17, 2025 17:23:59 EDT June 17, 2025 17:24:04 EDT Success
Create Users tablespace June 17, 2025 17:25:21 EDT June 17, 2025 17:25:22 EDT Success
Clear all listeners from Database June 17, 2025 17:25:23 EDT June 17, 2025 17:25:23 EDT Success
Copy Pwfile to Shared Storage June 17, 2025 17:25:25 EDT June 17, 2025 17:25:30 EDT Success
[root@oda1 log]# odacli list-databases | grep testdb
ID DB Name DB Type DB Version CDB Class Edition Shape Storage Status DB Home ID
5ba7427e-8cdb-49e9-a725-f900cccbb196 testdb SI 19.26.0.0.250121 false OLTP EE odb1 ASM CONFIGURED YYYYYYYYY-YYYYYY
[root@oda1 log]# odacli describe-database -i 5ba7427e-8cdb-49e9-a725-f900cccbb196
Database details
----------------------------------------------------------------
ID: 5ba7427e-8cdb-49e9-a725-f900cccbb196
Description: testdb
DB Name: testdb
DB Version: 19.26.0.0.250121
DB Type: SI
DB Role: PRIMARY
DB Target Node Name: oda1
DB Edition: EE
DBID: 2079193263
Instance Only Database: false
CDB: false
PDB Name:
PDB Admin User Name:
High Availability: false
Class: OLTP
Shape: odb1
Storage: ASM
DB Redundancy:
CharacterSet: WE8MSWIN1252
National CharacterSet: AL16UTF16
Language: AMERICAN
Territory: AMERICA
Home ID: YYYYYYYYY-YYYYYY
Console Enabled: false
TDE Wallet Management:
TDE Enabled: false
Level 0 Backup Day: sunday
AutoBackup Enabled: false
Created: June 17, 2025 5:14:11 PM EDT
DB Domain Name:
Associated Networks: Public-network
CPU Pool Name:
Now that the database is created and registered with ODA, you can immediately put it to use—whether by importing data through Data Pump or, if required, dropping the database and restoring another from RMAN backups. I’ve personally used the later option several times for migration while debugging issues with the instance-only option, and it has proven to be a reliable way to keep things moving.
In the next part of this ODA blog series, we’ll focus on the instance-only configuration
Discover more from oratrails-aish
Subscribe to get the latest posts sent to your email.