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 toORACLE_SID
(used to identify a specific instance locally).your_db_unique_name
→ Refers toDB_UNIQUE_NAME
(globally unique identifier across the cluster, visible viasrvctl config database
orspfile
).- 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.