Oracle Normal Shutdown
A normal shutdown of an
Oracle database is actually rarely used. This is because the normal shutdown
waits for everyone to complete their work and then logoff in an orderly
fashion. When a normal shutdown occurs, the database is closed in a normal
manner, and all changes made in the database are flushed to the database
datafiles. This is known as a “clean shutdown”.
Most of the time this is
not practical… there always seems to be someone who has left for vacation and
who forgot to log out, or there are times that Oracle processes become
“zombied” (this is where Oracle thinks someone is connected to the database but
they really are not). In these cases, the database will never come down.
It will simply wait
forever until you manually kill those sessions. Because of this, we often
recommend the shutdown immediate or shutdown abort commands,
SQL> shutdown
When you execute a
shutdown, Oracle will flush all the changes in memory out to the database
datafiles. This makes database startup quicker because the database is in a
consistent state.
Think of it this way: if
you jump into the air and land on your feet, you have landed in a way that
prepares you to make another jump. If, instead, you jump and land on your
back, you are in no position to make another jump; instead, you must perform a
recovery by taking the actions required to stand again. A clean shutdown
is one that is prepared to come back up without delay. A dirty shutdown
is one that lands on its back; it cannot come back up without first recovering
itself.
Oracle Shutdown Immediate
Perhaps the best way to
initially shutdown the database is the shutdown immediate command. This command
will prevent any new logins, then rollback any uncommitted transactions, and
then bring down the database. In the process of bringing down the database,
Oracle will flush all the changes in memory out to the database datafiles too,
just like a regular shutdown does. This makes database startup quicker. Here is
an example of shutting down a database with the shutdown immediate command:
SQL> shutdown immediate
The shutdown immediate
command will work most of the time, but there are times when it can hang and
fail to shut down the database that case shutdown abort is called.
Oracle Shutdown Abort Command
The shutdown abort
command is pretty much a guaranteed way to get your database to shut down. It’s
a “hard crash” of the database, and this can result in a longer time to start
the database back up. Still, you can’t really hurt the database using the
shutdown abort command, and during your DBA years you will find more than a few
occasions to use the shutdown abort command.
A shutdown abort should
not be your first shutdown method of choice, there may be times when you must
force the database down.
SQL> shutdown abort
Comments
Post a Comment