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: Windows SCM means crash recovery everytime

Re: Windows SCM means crash recovery everytime

From: Tim Bedford <timbedford_at_hotmail.com>
Date: 13 Jun 2003 04:09:30 -0700
Message-ID: <a411bafb.0306130309.19aac421@posting.google.com>


empete2000_at_yahoo.com (Pete's) wrote in message news:<6724a51f.0306120446.17ea4cbc_at_posting.google.com>...
> Shutdown abort
>
> However, this does not leave the db in a consistent state. Try Shutdown immediate.
>
> HTH,
> Pete's
>
> The views I may have expressed here are solely my own and not that of my employer.
>
>
> timbedford_at_hotmail.com (Tim Bedford) wrote in message news:<a411bafb.0306110724.cdb254e_at_posting.google.com>...
> > Hi,
> > I've got an Oracle (8.1.7) dbase running on Windows 2000. When I
> > shutdown the OS it appears that the SCM doesn't give the instance
> > service enough time to finish tidying up. Consequently the alert log
> > shows that every time the dbase is re-opened a crash recovery takes
> > place.
> > Are there ways to get Oracle to shutdown faster?
> > thanks,
> > Tim

Thanks all, for the advice. I also received some very interesting information from Oracle (see below). I've tried all these things and situation is this:
The alert log reports a crash recovery after I shut the service down from the Services utility or using the Group Policy method detailed below (both take less than 3 seconds). The only way it seems happy is by shutting down the database first.
Is there any way to do "C:\sqlplus internal" and then "SQL>shutdown" from a batch file (if you see what I mean). thanks,

Tim

Wise words from Oracle:

PROBLEM:



The registry parameter ORA_SID_SHUTDOWN provided by Oracle (by running ORADIM
utility) does not work as documented.

Oracle9i Database Getting Started
Release 2 (9.2) for Windows
Part Number A95490-01

Chapter: 9 Configuration Parameters and the Registry

Registry Parameters

The manual states:

"ORA_SID_SHUTDOWN When set to true, the default value, this parameter shuts down the Oracle
database identified by SID when OracleServiceSID is stopped."

EXPLANATION:



It has been interpreted that if the registry parameter ORA_SID_SHUTDOWN is
set
to TRUE that this means:
  1. Even if a node should crash, that this parameter would ensure that Oracle is brought down in accordance with ORA_SID_SHUTDOWNTYPE.

This is inaccurate. As with any other platform, a node crash is one of the
events which must be protected against. This can be done using, for example,
one of Oracle's High Availability offerings - for details of what's available,
see Note.179312.1 - Short Description of HA Options Available in 9i

2. If the Windows machine is shutdown neatly, using the Shutdown option
available
in the Start menu, then the database will also be stopped in accordance with
the
ORA_SID_SHUTDOWNTYPE registry parameter

This is also inaccurate. In accordance with the findings of Bug:1638610
which is
closed as not feasible to fix. The reason for this is that once the Microsoft
command to shutdown has been issued, the dll security.dll is unregistered
before
the 'net stop' command is given time to execute properly. Oracle has no
control
over the algorithm used by Microsoft when Windows is shutdown and thus cannot
force adherence to the values of registry parameter 'ORA_SID_SHUTDOWN' and
by
extension 'ORA_SID_SHUTDOWNTYPE'at Windows shutdown time.

Workaround


To workaround this issue, write a command file which will shutdown any OracleService<SID> services which exist on the server and set this command
file
to be executed when the server is shutdown by using the Group Policy Editor
of
Windows 2000.

  1. The contents of this command file should look similar to:
          net stop OracleServiceORCL1
          ...

List as many services as exist on this server in this file

Give this file a name, such as 'netstop.cmd' and save it to the directory:

C:\WINNT\system32\GroupPolicy\Machine\Scripts\Shutdown

2. Go to Start -> Run and type in: gpedit.msc Once the Group Policy editor is started, navigate to: Computer configuration -> Windows Settings -> Scripts (Startup/Shutdown) ->
Shutdown -> Add ... -> Browse -> Netstop.cmd (double click) -> Ok -> Apply -> Ok

This will ensure that the command 'net stop OracleServiceORCL1'is given the
time
needed to execute while shutting down before the security.dll is unregistered.

SOLUTION:



This has been logged as a documentation defect Bug:2834117. The correct
documentation should reflect that these parameters will only be enforced
"...when OracleServiceSID is stopped MANUALLY - USING THE CONTROL PANEL OR
NET
STOP COMMAND". Miscellaneous
                    oemctl stop oms sysman/sysman
                    net stop OracleServiceORCL1


Note: The parameters ORA_<SID>_SHUTDOWN and ORA_<SID>_SHUTTYPE and ORA_<SID>_SHUTDOWN_TIMEOUT are added to the registry when the ORADIM utility
is
invoked with the '-new' flag to create a new OracleService<SID> OR when the
ORADIM utility is invoked with the '-edit' '-startup' or '-shutdown' flags. Received on Fri Jun 13 2003 - 06:09:30 CDT

Original text of this message

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