Re: Detecting Controlfile Type

  • From: Stefan Knecht <knecht.stefan@xxxxxxxxx>
  • To: ahbaid@xxxxxxx
  • Date: Tue, 10 Feb 2009 10:24:38 +0100

I believe that feature was introduced with 10g, that Oracle automatically
detects wether it's a standby controlfile or not, and mounts it accordingly
after a standard "ALTER DATABASE MOUNT;"

Cheers

Stefan


=========================

Stefan P Knecht
CEO & Founder
s@xxxxxxxx

10046 Consulting GmbH
Schwarzackerstrasse 29
CH-8304 Wallisellen
Switzerland

Phone +41-(0)8400-10046
Cell +41 (0) 79 571 36 27
info@xxxxxxxx
http://www.10046.ch

=========================


On Tue, Feb 10, 2009 at 10:03 AM, Ahbaid Gaffoor <ahbaid@xxxxxxx> wrote:

> Thanks Jeremiah,
>
> that's a very valid concern, Oracle being able to change the format at will
> could blow the script away unexpectedly.
>
> I don't know why, but for some reason I always thought a standby needed to
> go from a NOMOUNT state to MOUNT via "ALTER DATABASE MOUNT STANDBY
> DATABASE"....
>
> I verified that I could go to MOUNT via. "STARTUP MOUNT" directly and start
> MRP. Just shows you (read "me") can get stuck in your ways and not realise
> the obvious, Ha!
>
> going to MOUNT and then querying V$DATABASE does the trick...
>
> now should I go to bed (1am) or muck around with the script..... :)
>
> thanks for the help
>
> Ahbaid
>
>
>
>
> Jeremiah Wilton wrote:
>
>> Ahbaid,
>>
>> I strongly suspect you would be able to work out how to tell a standby
>> controlfile from a normal controlfile using tools like dd and od.  With
>> some
>> study of controlf traces and od output, I think you could figure it out.
>> The problem with this approach is that you are assuming Oracle will not
>> change the location, format or value of this flag in future versions and
>> in
>> different platforms.
>>
>> The easiest solution to your problem is to simply use 'startup' on any
>> database you are trying to start up.  A primary will (hopefully) make it
>> all
>> the way open.  A standby will fail to open with " ORA-16004: backup
>> database
>> requires recovery" and remain in mount mode, ready for recovery.
>>
>> If this lacks the elegance you seek, how about you startup mount any
>> database, then:
>>
>> select controlfile_type from v$database;
>>
>> If it is CURRENT, then 'alter database open;'
>> If it is STANDBY, then start recovery.
>>
>> Regards,
>>
>> Jeremiah Wilton
>> Blue Gecko, Inc.
>> http://www.bluegecko.net
>>
>> Ahbaid Gaffoor wrote:
>>
>>
>>
>>> thanks for the feedback, what I'm trying to do is write a controlling
>>> script for all of my dbs, and I was wondering how would I get the
>>> standbys started?
>>>
>>> On a primary I usually do a "STARTUP" but on a standby I do:
>>>
>>> STARTUP NOMOUNT;
>>> ALTER DATABASE MOUNT STANDBY DATABASE;
>>>
>>> ... then start the managed recovery processes, etc.
>>>
>>> the problem here is that I'd like to know the controlfile type to
>>> figure
>>> out which set of mount commands to use....
>>>
>>>
>>
>>
>>
>>
>>
>
> --
> //www.freelists.org/webpage/oracle-l
>
>
>

Other related posts: