≡ Menu

Oracle Database Startup and Shutdown Procedure

Oracle Flight Logo
Photo courtesy of Rob Shenk

For a DBA, starting up and shutting down of oracle database is a routine and basic operation. Sometimes Linux administrator or programmer may end-up doing some basic DBA operations on development database. So, it is important for non-DBAs to understand some basic database administration activities.

In this article, let us review how to start and stop an oracle database.

How To Startup Oracle Database

1. Login to the system with oracle username

Typical oracle installation will have oracle as username and dba as group. On Linux, do su to oracle as shown below.

$ su - oracle

2. Connect to oracle sysdba

Make sure ORACLE_SID and ORACLE_HOME are set properly as shown below.

$ env | grep ORA

You can connect using either “/ as sysdba” or an oracle account that has DBA privilege.

$ sqlplus '/ as sysdba'
SQL*Plus: Release - Production on Sun Jan 18 11:11:28 2009
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release - Production
With the Partitioning and Data Mining options

3. Start Oracle Database

The default SPFILE (server parameter file) is located under $ORACLE_HOME/dbs. Oracle will use this SPFILE during startup, if you don’t specify PFILE.

Oracle will look for the parameter file in the following order under $ORACLE_HOME/dbs. If any one of them exist, it will use that particular parameter file.

  1. spfile$ORACLE_SID.ora
  2. spfile.ora
  3. init$ORACLE_SID.ora

Type “startup” at the SQL command prompt to startup the database as shown below.

SQL> startup
ORACLE instance started.

Total System Global Area  812529152 bytes
Fixed Size                  2264280 bytes
Variable Size             960781800 bytes
Database Buffers           54654432 bytes
Redo Buffers                3498640 bytes
Database mounted.
Database opened.

If you want to startup Oracle with PFILE, pass it as a parameter as shown below.

SQL> STARTUP PFILE=/u01/app/oracle/product/10.2.0/dbs/init.ora

How To Shutdown Oracle Database

Following three methods are available to shutdown the oracle database:

  1. Normal Shutdown
  2. Shutdown Immediate
  3. Shutdown Abort

1. Normal Shutdown

During normal shutdown, before the oracle database is shut down, oracle will wait for all active users to disconnect their sessions. As the parameter name (normal) suggest, use this option to shutdown the database under normal conditions.

SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.

2. Shutdown Immediate

During immediate shutdown, before the oracle database is shut down, oracle will rollback active transaction and disconnect all active users. Use this option when there is a problem with your database and you don’t have enough time to request users to log-off.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

3. Shutdown Abort

During shutdown abort, before the oracle database is shutdown, all user sessions will be terminated immediately. Uncomitted transactions will not be rolled back. Use this option only during emergency situations when the “shutdown” and “shutdown immediate” doesn’t work.

$ sqlplus '/ as sysdba'
SQL*Plus: Release - Production on Sun Jan 18 11:11:33 2009
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
Connected to an idle instance.

SQL> shutdown abort
ORACLE instance shut down.
Add your comment

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

Comments on this entry are closed.

  • Mohan September 24, 2010, 1:15 pm

    Good article – simple and nice.

  • Anonymous January 4, 2011, 4:39 pm

    excellent note indeed

  • Anonymous March 4, 2012, 9:28 pm

    Good article. Very precise. Thanks!

  • balram May 31, 2012, 10:56 pm

    very nice topcs;

  • Kashan Syed June 12, 2012, 10:02 am

    Excellent topic

  • trisha July 25, 2012, 12:30 am

    it’s work… thanks a lot

  • Dias September 6, 2012, 10:46 pm

    Good one.

  • manikandan S September 25, 2012, 10:21 pm

    hi, very easy to understand, thank you

  • kiran October 16, 2012, 12:01 am

    good …

  • ayse February 1, 2013, 3:20 am

    thanks very much

  • praneeth March 13, 2013, 5:08 am

    what mean this error ?

    ORA-01078: failure in processing system parameters
    LRM-00109: could not open parameter file ‘/u01/app/oracle/product/11.2.0/xe/dbs/initXE.ora’

  • Nick April 17, 2013, 1:58 am

    Very useful. Quick and easy to understand. Thanks 🙂

  • Maria May 28, 2013, 2:26 am

    nice and working excellent on me..
    2009?? i hope i’m not too late learning oracle on linux 😀
    thanks ja

  • James June 20, 2013, 3:08 pm

    Awesome and detail explanation

  • syed October 4, 2013, 4:38 am

    very useful topics in interviews

  • Anonymous July 6, 2014, 12:12 pm

    Can you please share PFILE & SPFILE paths.

  • RP July 18, 2014, 3:50 am

    Can the oracle instance be restarted using Crontab?

  • ahmed August 22, 2014, 5:46 am

    1. I want to restart one table in database. any table

    2. How I log table.


  • Sri September 2, 2014, 8:15 am

    Thanks, excellent article

  • J-salem October 20, 2014, 1:42 am

    Everytime I write shutdown it shows
    Ora-24324: service handle not initialized
    Ora-24323: value not allowed
    Ora-01090: shutdown in progress – connection is not permitted.

  • Hassan Faghihi November 23, 2014, 11:47 pm

    J-Salem, Same goes for me

  • manikandan June 14, 2016, 8:49 am

    very nice. easy to understand

  • Ramesh Jadda March 17, 2019, 8:23 am

    Your articles are very easy understanding and pretty straight forward.
    Suggestion from my end is that better to update the few articles depend on current stuff and advanced changes. Like, Now we have 4th type of shutting down the DB, which is “shut transactional”, if possible.