The Oracle Exadata Deployment Assistant (OEDA) is the mandatory tool for configuring and deploying Oracle Grid Infrastructure and Oracle Database on Exadata hardware. It generates the configuration XML that drives the automated install.sh deployment script, eliminating manual installation error. This article covers the full OEDA workflow — from GUI configuration through XML generation to deployment execution — with real-world examples.
What OEDA Does and Does Not Do
OEDA does:
- Configure networking (public, private/InfiniBand/RoCE, management/ILOM, admin)
- Define cluster nodes, ASM disk groups, and storage configuration
- Configure Grid Infrastructure (GI) and Oracle Database parameters
- Generate the
install.shscript and all supporting XML/config files - Validate the configuration before deployment (via
--check)
OEDA does not:
- Physically configure the network switches (you do this separately)
- Install the OS (Oracle Linux is pre-installed on Exadata)
- Create databases (that is done post-GI installation using DBCA or manual scripts)
Reference Environment
Throughout this article, we use the following example Exadata X8M-2 (Half Rack) deployment:
Cluster Name: exacluster01
Domain: prod.example.com
Compute Nodes:
exa01db01.prod.example.com (DB node 1)
exa01db02.prod.example.com (DB node 2)
Storage Cells:
exa01cel01.prod.example.com (Cell 1)
exa01cel02.prod.example.com (Cell 2)
exa01cel03.prod.example.com (Cell 3)
Network Interfaces:
Public : bond0 – 10.10.1.101 / 10.10.1.102
Private : bondib0 – 192.168.10.101 / 192.168.10.102 (RoCE)
ILOM/mgmt : 192.168.20.x
SCAN:
exa01-scan.prod.example.com → 10.10.1.110, 10.10.1.111, 10.10.1.112
ASM Disk Groups:
+DATAC1 – DATA disk group (HIGH redundancy, 100 TB usable)
+RECOC1 – RECO disk group (NORMAL redundancy, 20 TB)
+SPARC1 – SPARSE disk group (for thin clone PDBs)
GI Version: 19.22.0.0
DB Version: 19.22.0.0
Phase 1: Download and Launch OEDA
OEDA is a Java application that runs on any workstation (Windows, Mac, Linux). Download it from My Oracle Support (MOS) — search for the latest Oracle Exadata Deployment Assistant document (MOS Doc ID 888828.1).
# On your workstation: unzip and launch OEDA
unzip oeda-linux64-2024.x.x.zip
cd oeda-linux64-2024.x.x
chmod +x oeda.sh
./oeda.sh
On Windows:
oeda.bat
The GUI opens. You will step through configuration screens and OEDA generates the output files at the end.
Phase 2: OEDA Configuration Walkthrough
Screen 1: Customer Details
Customer Name : Example Corp Production
Customer Contact : [email protected]
Screen 2: Hardware Selection
Rack Type : Exadata X8M-2
Rack Size : Half Rack (2 compute nodes, 3 storage cells)
Screen 3: Cluster and Network
Cluster Name : exacluster01
Domain Name : prod.example.com
── Public Network ──────────────────────────────────────────
SCAN Name : exa01-scan
SCAN IPs : 10.10.1.110, 10.10.1.111, 10.10.1.112
NIC : bond0 (bonded 2x 25GbE)
Subnet : 10.10.1.0/24
Gateway : 10.10.1.1
── Private Interconnect (RoCE) ──────────────────────────────
NIC : bondib0 (bonded 2x 25GbE RoCE)
Subnet : 192.168.10.0/24
Screen 4: Compute Node Configuration
For each compute node, provide hostname, IP addresses, and ILOM details:
Node 1:
Hostname : exa01db01
Public IP : 10.10.1.101
VIP : 10.10.1.105
Private IP : 192.168.10.101
ILOM IP : 192.168.20.101
ILOM Hostname : exa01db01-ilom
Node 2:
Hostname : exa01db02
Public IP : 10.10.1.102
VIP : 10.10.1.106
Private IP : 192.168.10.102
ILOM IP : 192.168.20.102
ILOM Hostname : exa01db02-ilom
Screen 5: Storage Cell Configuration
Cell 1:
Hostname : exa01cel01
Admin IP : 192.168.20.111
Cell 2:
Hostname : exa01cel02
Admin IP : 192.168.20.112
Cell 3:
Hostname : exa01cel03
Admin IP : 192.168.20.113
Screen 6: ASM Disk Group Configuration
Disk Group 1:
Name : DATAC1
Redundancy : HIGH (3-way mirroring)
Purpose : DATA
Size : Use all available DATA flash capacity
Disk Group 2:
Name : RECOC1
Redundancy : NORMAL (2-way mirroring)
Purpose : RECO
Size : 20 TB (usable)
Disk Group 3:
Name : SPARC1
Redundancy : HIGH
Purpose : SPARSE (PDB thin clones)
Size : 10 TB (usable)
Screen 7: Grid Infrastructure and Oracle Home
Grid Infrastructure:
ORACLE_BASE : /u01/app/grid
Grid Home : /u01/app/19.0.0/grid
Version : 19.22.0.0 (latest RU)
Oracle Database Home:
ORACLE_BASE : /u01/app/oracle
Oracle Home : /u01/app/oracle/product/19.0.0/dbhome_1
Version : 19.22.0.0
Screen 8: OS Users and Groups
oracle UID : 1001
grid UID : 1000
Groups:
oinstall GID: 1001
dba GID: 1002
oper GID: 1003
asmdba GID: 1004
asmadmin GID: 1005
Screen 9: Generate Configuration
Click Generate Configuration. OEDA produces the following output directory structure:
/home/user/oeda_output/exacluster01-2026-03-01/
├── exacluster01.xml ← Master configuration XML
├── install.sh ← Deployment script
├── InstallationTemplate.xsl ← XSLT template
├── exacluster01-host-config.csv ← Network CSV for DNS/DHCP import
├── exacluster01-rack-diagram.png ← Physical rack diagram
└── params/
├── cellinit.ora
├── crs_config.ini
└── dbhomes.ini
Phase 3: Pre-Deployment Validation
Transfer OEDA Output to the First Compute Node
# From your workstation (as oracle user on exa01db01):
scp -r /home/user/oeda_output/exacluster01-2026-03-01/ \
[email protected]:/u01/oeda/
Run OEDA Pre-check (–check Mode)
# On exa01db01 as root:
ssh [email protected]
cd /u01/oeda/exacluster01-2026-03-01
chmod +x install.sh
# Run in check mode (validates without installing)
./install.sh --check
# Expected output:
# Checking network configuration... [PASS]
# Checking DNS resolution for SCAN... [PASS]
# Checking NTP synchronization... [PASS]
# Checking storage cells reachable... [PASS]
# Checking OS user/group setup... [PASS]
# All checks passed.
Resolve any failures before proceeding. Common failures:
- DNS not configured for SCAN VIPs → add A records to DNS before installation.
- NTP not synchronised → configure
/etc/chrony.confon all nodes and cells. - SSH trust between nodes not established → run
oedaconfigsshor manually set up oracle/grid SSH equivalence.
Establish SSH Equivalence (If Not Pre-configured)
# On exa01db01 as oracle: generate SSH keys and push to all nodes
ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa
# Copy to all compute nodes and cells
for host in exa01db01 exa01db02 exa01cel01 exa01cel02 exa01cel03; do
ssh-copy-id oracle@${host}.prod.example.com
done
Phase 4: Run the Deployment
The deployment runs in stages. Each stage can be run independently if needed.
# On exa01db01 as root:
ssh [email protected]
cd /u01/oeda/exacluster01-2026-03-01
# Run ALL stages sequentially (recommended for initial deployment)
./install.sh --all 2>&1 | tee /u01/oeda/install_$(date +%Y%m%d_%H%M%S).log
The installation stages run in order:
Stage 1: Cell Initialization (cellinit on all 3 cells)
Stage 2: Create Cell Disks (creates FLASH and HD/HDD cell disk objects)
Stage 3: Create Grid Disks (creates ASM-visible grid disks per disk group)
Stage 4: Grid Infrastructure Installation
Stage 5: Grid Infrastructure Configuration (creates cluster, ASM)
Stage 6: Create ASM Disk Groups (DATAC1, RECOC1, SPARC1)
Stage 7: Oracle Database Home Installation
Stage 8: Oracle Net Configuration
Stage 9: Database Configuration Assistant (optional — if OEDA includes DB creation)
Running Individual Stages
If a stage fails, fix the issue and re-run only that stage:
# Re-run only stage 5 (GI configuration)
./install.sh --step 5
# Run from a specific stage forward
./install.sh --startstep 5
Monitoring Stage Progress
# Tail the OEDA installation log
tail -f /u01/oeda/exacluster01-2026-03-01/oeda_install.log
# Or the main log you redirected
tail -f /u01/oeda/install_20260301_143022.log
Phase 5: Post-Deployment Validation
Verify Grid Infrastructure
# On exa01db01 as grid user:
ssh [email protected]
# Cluster status
crsctl stat res -t
# ASM disk group status
asmcmd lsdg
Expected ASM output:
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB ... Name
MOUNTED HIGH N 512 512 4096 4M 102400000 102395000 ... DATAC1/
MOUNTED NORM N 512 512 4096 4M 20480000 20475000 ... RECOC1/
MOUNTED HIGH N 512 512 4096 4M 10240000 10235000 ... SPARC1/
Verify Cell and Storage Configuration
# On any compute node as root:
dcli -g /u01/app/grid/product/19.0.0/grid/conf/cell_group \
-l celladmin \
"cellcli -e LIST CELL DETAIL" | grep -E "name|status|softwareVersion"
# Verify Smart Scan is enabled on cells
dcli -g /u01/app/grid/product/19.0.0/grid/conf/cell_group \
-l celladmin \
"cellcli -e LIST CELL ATTRIBUTES smartScanCapable"
Verify SCAN Listener and VIPs
# On exa01db01 as grid:
srvctl status scan
srvctl status scan_listener
srvctl status vip -n exa01db01
srvctl status vip -n exa01db02
Phase 6: Re-running OEDA for Post-Deployment Changes
OEDA is not just for initial deployment. It can be re-run to add compute nodes, reconfigure disk groups, or add database homes. Modify the existing XML configuration in OEDA, regenerate, and run the specific install stages.
Common post-deployment OEDA use cases:
- Adding a database home at a new patch level: OEDA generates the new home installation steps; run only the DB home install stage.
- Adding a new ASM disk group: Modify disk group configuration, regenerate, run the disk group creation stage.
- Expanding the cluster (Quarter Rack → Half Rack): Add compute nodes in OEDA, regenerate, run node addition stages.
# Run OEDA stage for adding a new database home only
./install.sh --step 7 # Stage 7: Oracle Database Home Installation
OEDA on ExaCC
For Exadata Cloud@Customer, OEDA-equivalent configuration is done via the OCI Console or OCI API — you do not run OEDA manually. Oracle’s control plane (via the CPS) performs the equivalent deployment steps automatically when you create a VM Cluster.
If you are maintaining or modifying an existing ExaCC configuration, use the OCI Console for storage and network changes, and use DBCA or SRVCTL for database-level changes — not OEDA.