Results 1 to 6 of 6
  1. #1
    Join Date
    Jan 2008
    Posts
    27

    Unanswered: multiplex controlfile in RAC/ASM

    Hi DBAs,

    I've been trying to multiplex my controlfile on a 2 node RAC (oracle 10.2.0.3) running on AIX 5.3, but am getting all kinds of errors. The procedure i follow is:

    1. Shutdown the database and start the instance:
    SQL> shutdown immediate
    SQL> startup nomount

    2. Use RMAN to duplicate the controlfile:
    $ rman nocatalog
    RMAN>connect target
    RMAN>restore controlfile to '' from '';

    3. On the ASM instance, identify the name of the controlfile:
    Using ASMCMD:
    $ asmcmd
    ASMCMD> cd
    ASMCMD> find -t controlfile . *

    4. SQL> alter system set control_files='newone', 'old one' scope=spfile;
    SQL> shutdown immediate

    The most recent error i got when i tried starting the database was:
    SQL> startup
    ORACLE instance started.

    Total System Global Area 1610612736 bytes
    Fixed Size 2073192 bytes
    Variable Size 385879448 bytes
    Database Buffers 1207959552 bytes
    Redo Buffers 14700544 bytes
    ORA-00214: control file '+DATA/labtest/controlfile/current.275.646405057'
    version 1852 inconsistent with file
    '+DATA/labtest/controlfile/current.276.646414515' version 1198

    Is there anything i'm doing wrong? Does anyone know of a clean cut procedure to do this in a RAC environment?

    Thanks in advance...
    __________________
    divroro12

  2. #2
    Join Date
    May 2004
    Location
    Dominican Republic
    Posts
    721
    Your original control file is already stored on ASM, so no need to use

    restore controlfile to '' from '';

    On RMAN, just use

    restore controlfile from '<the path to the ASM's control file which you can get crom v$controlfile'

    Also, you need to specify sid=* on the alter system when RAC is involved.

    Do this:
    Code:
    alter system set control_files='<path of your current control file>','+DISK_GROUP_WHERE_NEW_CONTROLFILE_WILL_RESIDE' scope=spfile sid='*';
    shutdown normal
    startup nomount
    then on RMAN
    Code:
    rman target /
    restore controlfile from '<path of your current control file>';
    You will see the new of the new control file created.
    Then you will mount and open the database and modify the control_files parameter again, but now including both path for your controlfiles. After that, you can shutdown immediate and startup again.

  3. #3
    Join Date
    Jan 2008
    Posts
    27
    I followed your steps exactly & generated a new control file, but had the following error when i tried to mount the database:

    SQL> alter database mount;
    alter database mount
    *
    ERROR at line 1:
    ORA-00214: control file '+DATA/labtest/controlfile/current.260.645964047'
    version 1120 inconsistent with file
    '+DATA/labtest/controlfile/current.281.646582039' version 1109


    divroro12

  4. #4
    Join Date
    May 2004
    Location
    Dominican Republic
    Posts
    721
    Cut and paste output please. I suspect you didn't follow the directions as I explained them at all..

    Here's my test, allthough not RAC (it shouldn't matter except for the sid=*)
    Code:
    $
    $ sqlplus / as sysdba
    
    SQL*Plus: Release 10.2.0.1.0 - Production on Wed Feb 13 15:24:17 2008
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    
    SQL>
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DSKGRPLOC/descore/controlfile/current.256.645381325
    +DSKGRPLOC/descore/controlfile/current.257.645381325
    
    SQL>
    SQL> alter system set control_files = '+DSKGRPLOC/descore/controlfile/current.25                                             
    /current.257.645381325', '+DSKGRPLOC' scope=spfile;
    
    System altered.
    
    SQL>
    SQL> shutdown normal
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL>
    SQL> startup nomount
    ORACLE instance started.
    
    Total System Global Area 2550136832 bytes
    Fixed Size                  1995856 bytes
    Variable Size             536873904 bytes
    Database Buffers         1996488704 bytes
    Redo Buffers               14778368 bytes
    SQL>
    SQL> exit
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64                                             
    bit Production
    With the Partitioning, OLAP and Data Mining options
    $
    $ rman target /
    
    Recovery Manager: Release 10.2.0.1.0 - Production on Wed Feb 13 15:28:38 2008
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    connected to target database: descore (not mounted)
    
    RMAN> restore controlfile from '+DSKGRPLOC/descore/controlfile/current.256.645381325';
    
    Starting restore at 13-FEB-08
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: sid=156 devtype=DISK
    
    channel ORA_DISK_1: copied control file copy
    output filename=+DSKGRPLOC/descore/controlfile/current.256.645381325
    output filename=+DSKGRPLOC/descore/controlfile/current.257.645381325
    output filename=+DSKGRPLOC/descore/controlfile/backup.276.646586945
    Finished restore at 13-FEB-08
    
    RMAN> exit
    
    
    Recovery Manager complete.
    See the new created control file above in BOLD.
    Then, you would just modify the database parameters accordingly.
    Code:
    $
    $ sqlplus / as sysdba
    
    SQL*Plus: Release 10.2.0.1.0 - Production on Wed Feb 13 15:29:24 2008
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    
    SQL> alter database mount;
    
    Database altered.
    
    SQL> alter database open;
    
    Database altered.
    
    SQL> alter system set control_files='+DSKGRPLOC/descore/controlfile/current.256.645381325', '+DSKGRPLOC/descore/controlfile/c
    urrent.257.645381325', '+DSKGRPLOC/descore/controlfile/backup.276.646586945' scope=spfile;
    
    System altered.
    
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL>
    SQL> startup
    ORACLE instance started.
    
    Total System Global Area 2550136832 bytes
    Fixed Size                  1995856 bytes
    Variable Size             536873904 bytes
    Database Buffers         1996488704 bytes
    Redo Buffers               14778368 bytes
    Database mounted.
    Database opened.
    SQL>
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DSKGRPLOC/descore/controlfile/current.256.645381325
    +DSKGRPLOC/descore/controlfile/current.257.645381325
    +DSKGRPLOC/descore/controlfile/backup.276.646586945
    
    SQL>
    What I suspect you did is that you MOUNT'ed and OPEN'ed your database BEFORE you modify the control_files.

  5. #5
    Join Date
    Jan 2008
    Posts
    27
    Thanks JMartinez 4 ur help; the main issue was the RAC database was using the pfile 4 startup rather than the spfile; after resolving this issue, i followed ur procedurw again & it worked just fine...

    Thanks...

  6. #6
    Join Date
    Jan 2010
    Posts
    1
    I am following JMartinez's code and when I try to mount the database after the RMAN restore command, I am getting the following ...


    RMAN> sql 'alter database mount';

    sql statement: alter database mount
    RMAN-00571: ================================================== =========
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ================================================== =========
    RMAN-03009: failure of sql command on default channel at 01/19/2010 09:17:49
    RMAN-11003: failure during parse/execution of SQL statement: alter database mount
    ORA-01105: mount is incompatible with mounts by other instances
    ORA-01104: number of control files (2) does not equal 1


    My RAC environment consists of 2 nodes. The first node is currently in NOMOUNT mode and shows two controlfiles when I run 'SHOW PARAMETER control_files', the originally current control file and the newly duplicated control file (the one that was created via the RMAN restore cmd). The second node is currently in OPEN mode and shows one control file when I run 'SHOW PARAMETER control_files', the original current control file. It looks like the controlfile duplication only worked on node1 instance but when I ran the first 'alter system set control_file' (on node1 only) I double checked to make sure I added sid='*' so I know my syntax was correct for this command.

    What do I need to do to get node2 instance's control files updated correctly so I can open the node1 instance properly and subsequently run the second 'alter system set control_file' cmd?

    Thanks in advance.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •