Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Script for performing clean shutdown before windows shutdown

Re: Script for performing clean shutdown before windows shutdown

From: Andreas Sheriff <spamcontrol_at_iion.com>
Date: Tue, 16 Aug 2005 07:29:51 -0700
Message-ID: <SNmMe.2522$Ix4.1272@okepread03>


"Holger Baer" <holger.baer_at_science-computing.de> wrote in message news:ddsdcq$s2r$1_at_news.BelWue.DE...
> Andreas Sheriff wrote:
> > "Holger Baer" <holger.baer_at_science-computing.de> wrote in message
> > news:ddqef3$pfa$1_at_news.BelWue.DE...
> >
> >>Andreas Sheriff wrote:
> >>
> >>><bdbafh_at_gmail.com> wrote in message
> >>>news:1124119055.886364.226290_at_g14g2000cwa.googlegroups.com...
> >>>
> >>>
> >>>>Your fears are well founded.
> >>>>
> >>>>Even with the service configured to perform a shutdown immediate when
> >>>>the service is stopped, if control is not returned within the "wait to
> >>>>kill service timeout" the process is terminated in a non-graceful
> >>>>fashion and crash recovery will be required ... possibly requiring
> >>>>media recovery to be performed.
> >>>>
> >>>>best approach is to:
> >>>>
> >>>>connect / as sysdba
> >>>>alter system switch logfile;
> >>>>shutdown abort
> >>>>startup mount restrict
> >>>>alter system set job_queue_processes=0;
> >>>>alter database open;
> >>>>shutdown immediate
> >>>>
> >>>>then stop the operating system service.
> >>>>
> >>>>you'll also want to alter the value for the registry key
> >>>>HKLM\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout
> >>>>the default is 20000 (20 seconds).
> >>>>I'd recommend setting it to at least 300 seconds.
> >>>>
> >>>>hth.
> >>>>
> >>>>-bdbafh
> >>>>
> >>>
> >>>
> >>>DO NOT SHUTDOWN ABORT
> >>>
> >>>If you're that fearful, execute a SHUTDOWN IMMEDIATE manually every
time
> >>>you
> >>>wish to stop or restart the OS. Don't rely on scripts to do it for you
> >>>because scripts can fail.
> >>>
> >>
> >>Only that SHUTDOWN IMMEDIATE might wait a long time if, e.g. the
> >>Intelligent(?)
> >>Agent is running.... So scripting isn't too bad, provided you know the
> >>limitations.
> >>
> >>In general shutting down everything that connects to the database
> >>(Intelligent Agent,
> >>DBConsole/EnterpriseManager....) should be shutdown first, then the
> >>database, and
> >>finally the listener (although the listener can be shutdown upfront to
> >>prevent logins).
> >>
> >>On a busy database you might still have problems with shutdown
immediate,
> >>though.
> >>
> >>And if you don't trust Oracle to recover from a shutdown abort, don't
use
> >>Oracle.
> >>Or invest in proper HW, OS and training.
> >>
> >>Regards,
> >>Holger
> >
> >
> > SHUTDOWN IMMEDIATE will not wait.

>

> Not my experience. However, I have to admit that setting up a test case
> with Intelligent Agent failed, too.
> >
> > From the 10gR2 SQL PLUS documentation:
> > (SHUTDOWN) IMMEDIATE
> >
> > Does not wait for current calls to complete or users to disconnect from
the
> > database.
> >
> > Further connects are prohibited. The database is closed and dismounted.
The
> > instance is shutdown and no instance recovery is required on the next
> > database startup.
> >
> > If you don't believe me, try it. Start several transactions from
several
> > sources, including the agent/console/EM/etc... and you'll see that any
> > active transaction will be rolled back, no further connections will be
> > allowed, and the database will shutdown.
> >
> > SHUTDOWN TRANSACTIONAL will wait, however.
> >
> > And if IMMEDIATE seems to wait, that's only because the database is busy
> > finishing activity it needs to shutdown.
>
> I'm perfectly aware of the differences between shutdown normal,
transactional, immediate,
> abort, thank you.

>
> But I've seen Intelligent Agent preventing an idle instance from shutting
down
> with IMMEDIATE and so you're on the safe side to shutdown local services
first
> before shutting down the instance.

>
> But any way, my point was that there is no intrinsic harm in using
SHUTDOWN ABORT.
> So the suggestion of BDBAFH stands.
>

> Regards,
> Holger

SHUTDOWN ABORT is the same thing as executing kill -s KILL $(ps -Af | gawk '/ora_${ORACLE_SID}/{print $2}') It KILLs all Oracle instance processes for that SID. You go ahead and keep using SHUTDOWN ABORT.

There are only two instances in which you should use SHUTDOWN ABORT 1. When the instance is not responding. An alternative would be to use STARTUP FORCE then SHUTDOWN IMMEDIATE. STARTUP FORCE would call SHUTDOWN ABORT anyway, then restart the instance. Using SHUTDOWN abort directly or indirectly may require recovery, or even restore at the next startup. 2. When the instance isn't started at all. In my 9i RAC class we've had to use SHUTDOWN ABORT after shutting down the instance normally because there were left over footprints (muteces and or semaphores, I suspect) for the instance after a normal shutdown.

-- 

Andreas Sheriff
Oracle 9i Certified Professional
Oracle 10g Certified Professional
Oracle 9i Certified PL/SQL Developer
----
"If you don't eat your meat, you cannot have any pudding.
"How can you have any pudding, if you don't eat your meat?"

DO NOT REPLY TO THIS EMAIL
Reply only to the group.
Received on Tue Aug 16 2005 - 09:29:51 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US