Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Script for performing clean shutdown before windows shutdown
Andreas Sheriff wrote:
> "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
>
And I will when I deem it necessary. Let's look at the suggested procedure again:
connect / as sysdba
alter system switch logfile;
shutdown abort
startup mount restrict
alter system set job_queue_processes=0;
alter database open;
shutdown immediate
I see no issue with what has been posted. A shutdown abort has been issued to ensure the instance stops. A startup mount restrict is then executed, followed by an alter dsatabase open, to enable the necessary recovery after the shutdown abort. The database is finally shutdown immediate, requiring no recovery on startup.
Had only a simple 'shutdown abort' been suggested I may have tended to agree with your assessment. However, in this situation your advice is wrong.
>
Incorrect. This is a case where shutdown abort is useful, especially as other Oracle services may be running which could interfere with a plain-vanilla shutdown immediate.
Shutdown abort is no worse than any other shutdown mode, it only defers recovery until the next startup. Yes, it is a 'brute force' method to shutdown an instance; sometimes that is necesary to ensure the instance stops in a timely manner. One cannot wait forever for Oracle to shut down when a server is in the midst of a reboot.
Again, this is surprising advice from a professed OCP.
> --
>
>
David FItzjarrell Received on Fri Aug 26 2005 - 14:33:28 CDT
![]() |
![]() |