||Oracle Tips by Burleson
For UNIX, several things need to be done to
ensure shutdown occurs. The following procedure, for the HP-UX
version of UNIX, demonstrates these steps:
1. Log in as root.
2. Edit the /etc/oratab file. Make
the last field a Y for the $ORACLE_SID you want shut down.
3. Add the following links to your
/etc/init.d rcx.d files (where x is the run level).
ln -s /etc/init.d/Dbora /etc/init.d/rc0.d/K01Dbora
ln -s /etc/init.d/Dbora /etc/init.d/rc6.d/K01Dbora
You should alter the shutdown script ($ORACLE_HOME/bin/dbshut)
to do a SHUTDOWN IMMEDIATE. This backs out any uncommitted user
transactions, logs them out, and then shuts down the database. If a
normal SHUTDOWN is performed, the system politely waits for all
users to log off of Oracle. If Joe is on vacation and left his
terminal up in a form, you could have a long wait. The other
shutdown, SHUTDOWN ABORT, should only be used for emergencies, as it
stops the database just as it is, with operations pending or not. A
SHUTDOWN ABORT will require a recovery on startup. The new command
option , SHUTDOWN TRANSACTIONAL allows transactions to finish, then
logs the user off and performs shutdown.
The preceding provides for automatic
shutdown when the operating system shuts down. For a normal
shutdown, execute the dbshut procedure for UNIX. If it has been
created, the stop<sid>.cmd script is used to shut down an Oracle
instance on NT.
To perform a
manual shutdown on all systems, perform the following procedure:
1. Log in to SVRMGR as INTERNAL; if
on 9i, use the SQLPLUS /NOLOG and log in as either SYS or "/" using
the AS SYSRemote DBA qualifier.
2. Issue the appropriate SHUTDOWN
a. No option means SHUTDOWN NORMAL.
The database waits for all users to disconnect, prohibits new
connects, then closes and dismounts the database, then shuts
down the instance.
b. SHUTDOWN IMMEDIATE. Cancels
current calls like a system interrupt, and closes and dismounts
the database, then shuts down the instance. PMON gracefully
shuts down the user processes. No instance recovery is required
c. SHUTDOWN ABORT. This doesn’t wait
for anything. It shuts the database down now. Instance recovery
will probably be required on startup. You should escalate to
this by trying the other shutdowns first.
d. SHUTDOWN TRANSACTIONAL. Like SHUTDOWN
IMMEDIATE, only it waits for transactions to complete, then
boots off any users and shuts down the database.
Killing Oracle User Processes
are a number of reasons to kill Oracle user processes. (Note: By
“killing Oracle processes” I mean killing nonessential database
processes.) These nonessential database processes usually consist of
terminal sessions that are left connected after real work has been
accomplished. These active sessions result in problems when the
database has to be shut down for either backup or maintenance
operations. As long as there is an active session, a normal-mode
shutdown will hang. Coming in on Monday to discover that the
database couldn’t shut down, and thus couldn’t be backed up, is a
frustrating experience. Oracle has provided the immediate shutdown
mode, but this isn’t always reliable and, in some situations, can
result in an inconsistent backup. The abort shutdown option will
shut down the database, but you then have to restart and perform a
normal shutdown before any backup operations, or risk an
inconsistent backup. Therefore, it is important for the Remote DBA to know
how to kill these processes before operations of this type are
See Code Depot