ADVERTISEMENT

Oracle Database Start and Stop

This quick reference provides clean, consistent commands to start and stop an Oracle Database — for single instance, Oracle Restart, and RAC environments using both SQL*Plus and SRVCTL.

Stop Oracle Database

# -----------------------------------------------
# Set environment variables if not already set
export ORACLE_HOME=/path/to/oracle/home
export ORACLE_SID=your_sid

# -----------------------------------------------
# Shutdown commands from SQL*Plus (connect as sysdba)

sqlplus / as sysdba

-- 1. Normal Shutdown: waits for all connected users to disconnect
SHUTDOWN NORMAL;

-- 2. Immediate Shutdown: rolls back uncommitted transactions, disconnects users immediately
SHUTDOWN IMMEDIATE;

-- 3. Transactional Shutdown: waits for active transactions to complete, then shuts down
SHUTDOWN TRANSACTIONAL;

-- 4. Abort Shutdown: forces immediate stop without cleanup (requires instance recovery)
SHUTDOWN ABORT;

EXIT;

# -----------------------------------------------
# Using SRVCTL (Oracle Restart or RAC environments)

# Stop entire database (default shutdown mode: normal)
# Syntax: srvctl stop database -d <db_unique_name>
srvctl stop database -d your_db_unique_name

# Stop instance with shutdown mode
# Syntax: srvctl stop instance -d <db_unique_name> -i <instance_sid> -o <normal|immediate|transactional|abort>
srvctl stop instance -d your_db_unique_name -i your_sid -o immediate

Start Oracle Database

# -----------------------------------------------
# Set environment variables if not already set
export ORACLE_HOME=/path/to/oracle/home
export ORACLE_SID=your_sid

# -----------------------------------------------
# Startup commands from SQL*Plus (connect as sysdba)

sqlplus / as sysdba

-- 1. Start and open the database
STARTUP;

-- 2. Start in mount mode (used for recovery, backup, etc.)
STARTUP MOUNT;

-- 3. Start in nomount mode (used to create control files or restore spfile)
STARTUP NOMOUNT;

EXIT;

# -----------------------------------------------
# Using SRVCTL (Oracle Restart or RAC environments)

# Start entire database (default mode: open)
# Syntax: srvctl start database -d <db_unique_name>
srvctl start database -d your_db_unique_name

# Start specific instance with open mode
# Syntax: srvctl start instance -d <db_unique_name> -i <instance_sid> -o <open|mount|nomount>
srvctl start instance -d your_db_unique_name -i your_sid -o open

📌 Notes

  • your_sid → Refers to ORACLE_SID (used to identify a specific instance locally).
  • your_db_unique_name → Refers to DB_UNIQUE_NAME (globally unique identifier across the cluster, visible via srvctl config database or spfile).
  • Use srvctl start/stop instance only in RAC or Oracle Restart environments.
  • srvctl start database auto-starts all configured instances in a cluster if Oracle Clusterware is managing them.
  • For non-RAC standalone databases, SQL*Plus commands are sufficient and preferred for start/stop operations.

ADVERTISEMENT