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.sh script 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.conf on all nodes and cells.
  • SSH trust between nodes not established → run oedaconfigssh or 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.