Oracle DBA Tips Corner

     Return to the Oracle DBA Tips Corner.


Duplicating an SPFILE from an ASM Diskgroup to the Local File System

by Jeff Hunter, Sr. Database Administrator



Suppose your database is stored using ASM including all physical database files and the SPFILE. You already know and understand how to duplicate database files and even the control file from ASM to the local file system using RMAN (See Migrating Databases from non-ASM to ASM and Vice-Versa). But what about the SPFILE? What if all you need to do is make a copy of the current SPFILE file stored in ASM to the local file system? Your first thought might be to use RMAN, however, there is a much easier method as described below. This method makes a copy of an SPFILE stored in ASM to a text-based initialization parameter file on the local file system.

  1. First, identify the SPFILE you want to duplicate in ASM. When the SPFILE is stored in ASM, you generally have a text-based version of the initialization parameter file that points to the SPFILE in ASM:
    $ cat $ORACLE_HOME/dbs/initorcl1.ora
    SPFILE='+ORCL_DATA1/orcl/spfileorcl.ora'
    You can further verify that the SPFILE really does indeed reside in ASM by performing the following query against the ASM instance:
    SELECT
        CONCAT('+' || disk_group_name, SYS_CONNECT_BY_PATH(alias_name, '/')) full_alias_path
      , NVL(LPAD(type, 18), '<DIRECTORY>')  type
    FROM
      ( SELECT
            g.name               disk_group_name
          , a.parent_index       pindex
          , a.name               alias_name
          , a.reference_index    rindex
          , f.type               type
        FROM
          v$asm_file f RIGHT OUTER JOIN v$asm_alias     a USING (group_number, file_number)
                                   JOIN v$asm_diskgroup g USING (group_number)
      )
    WHERE type = 'PARAMETERFILE'
    START WITH (MOD(pindex, POWER(2, 24))) = 0
    CONNECT BY PRIOR rindex = pindex;
    
    File Name                                           File Type
    --------------------------------------------------- -------------
    +ORCL_DATA1/ORCL/spfileorcl.ora                     PARAMETERFILE
    +ORCL_DATA1/ORCL/PARAMETERFILE/spfile.268.600397949 PARAMETERFILE

  2. OK, so at this point, you want to make a copy of the +ORCL_DATA1/ORCL/spfileorcl.ora stored in ASM to the local file system. The solution is to use the CREATE PFILE... statement as follows:
    SQL> CREATE PFILE='/u01/app/oracle/initorcl.ora' FROM SPFILE='+ORCL_DATA1/ORCL/spfileorcl.ora';
    
    File created.


Copyright (c) 1998-2008 Jeffrey M. Hunter. All rights reserved.

All articles, scripts and material located at the Internet address of http://www.idevelopment.info is the copyright of Jeffrey M. Hunter and is protected under copyright laws of the United States. This document may not be hosted on any other site without my express, prior, written permission. Application to host any of the material elsewhere can be made by contacting me at jhunter@idevelopment.info.

I have made every effort and taken great care in making sure that the material included on my web site is technically accurate, but I disclaim any and all responsibility for any loss, damage or destruction of data or any other property which may arise from relying on it. I will in no case be liable for any monetary damages arising from such loss, damage or destruction.

Last modified on
Wednesday, 06-Sep-2006 02:00:14 EDT
Page Count: 3563