Вы находитесь на странице: 1из 2

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:
2. $ 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

3. 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:
4. SQL> CREATE PFILE='/u01/app/oracle/initorcl.ora' FROM
SPFILE='+ORCL_DATA1/ORCL/spfileorcl.ora';
5.
File created.

Вам также может понравиться