4/7/2014 Document 1376225.
How to Modify an Existing ASM Spfile in a RAC Environment (Doc ID 1376225.1)
Modified: 21-Sep-2012 Type: HOWTO
In this Document
Goal
Fix
1) Shutdown +ASM2 instance on second node, or if multiple node RAC, all ASM instances on each node
except node 1:
2) Then, on node 1, connect to +ASM1 instance:
3) Create a modified ASM pfile:
4) Start up the +ASM1 instance on the first node:
5) Check if the ASM diskgroups are mounted properly or not:
6) Create the spfile:
7) Check the new spfile location through ASMCMD as well:
8) Shutdown +ASM1:
9) Check the $ASM_HOME/dbs/init+ASM1.ora to ensure that it points to new location of spfile:
10) Restart the +ASM1 instance using the new spfile:
11) Check the new spfile location through SQL*Plus:
12) Check if the ASM diskgroups are mounted properly or not:
13) Go to node 2, or each node in multiple node RAC, and check the $ASM_HOME/dbs/init+ASM2.ora to
ensure that it points to new location of spfile:
14) Restart the +ASM2 instance using the new spfile, or follow this step, step 15, and step 16 in sequential
order, for each ASM instance in multiple node RAC (This is a safe startup process for the ASM instances in
RAC, rather then using srvctl to startup the rest of the ASM instances.):
15) Check the new spfile location through SQL*Plus, or on each ASM instance in multiple node RAC:
16) Check if the ASM diskgroups are mounted properly or not, or for each ASM instance in multiple node
RAC:
Additional Resources
References
This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not
been subject to an independent technical review.
APPLIES TO:
Oracle Server - Enterprise Edition - Version 10.2.0.1 to 11.1.0.8 [Release 10.2 to 11.1]
Information in this document applies to any platform.
GOAL
This document provides an example on how to modify an existing Automatic Storage Management (ASM) spfile in a
two node Real Application Clusters (RAC) Environment. These steps can be applied to a multiple node Real Application
Clusters (RAC) Environment.
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=3vpjg1155_130&id=1376225.1 1/7
4/7/2014 Document 1376225.1
FIX
If an spfile is used in Clustered ASM environments, then the spfile must be on a shared Clusterware device, i.e. shared
spfile.
Note: Before proceeding with the following steps, it is assumed that the databases using ASM will have been
shutdown on each node.
1) Shutdown +ASM2 instance on second node, or if multiple node RAC, all ASM instances on each node
except node 1:
The default locations are based on environment variable settings when the ASM instance is started.
$ export $ORACLE_SID=+ASM2
$ export $ORACLE_HOME=<full path of the asm home>
10g and 11gR1:
$ sqlplus '/ as sysdba'
SQL> shutdown immediate;
2) Then, on node 1, connect to +ASM1 instance:
$ export $ORACLE_SID=+ASM1
$ export $ORACLE_HOME=<full path of the asm home>
10g and 11gR1:
$ sqlplus '/ as sysdba'
SQL> show parameter spfile ---> make a note of spfile location
SQL> create pfile =<the full pathname of init+ASM1.ora> from spfile;
SQL> shutdown immediate;
3) Create a modified ASM pfile:
For example:
Modify the 'init+ASM1.ora' to include both +ASM1 and +ASM2 diskgroups parameter and save 'init+ASM1.ora':
+ASM1.asm_diskgroups='DAT'#Manual Mount ---> Here
+ASM2.asm_diskgroups='DAT'#Manual Mount ---> Here
*.asm_diskgroups='DAT'
*.asm_diskstring='ORCL:*'
*.background_dump_dest='/app/oracle/admin/+ASM/bdump'
*.cluster_database=true
*.core_dump_dest='/app/oracle/admin/+ASM/cdump'
+ASM1.instance_number=1
+ASM2.instance_number=2
*.instance_type='asm'
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=3vpjg1155_130&id=1376225.1 2/7
4/7/2014 Document 1376225.1
*.large_pool_size=12M
*.remote_login_passwordfile='exclusive'
*.user_dump_dest='/app/oracle/admin/+ASM/udump'
4) Start up the +ASM1 instance on the first node:
$ export $ORACLE_SID=+ASM1
$ export $ORACLE_HOME=<full path of the asm home>
10g and 11gR1:
$ sqlplus '/ as sysdba'
SQL> startup pfile=<the full pathname of init+ASM1.ora>
The ASM instance should start up properly.
5) Check if the ASM diskgroups are mounted properly or not:
SQL> select name, total_mb, free_mb from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB
------------------------------ ---------- ----------
ACFS 97660 316
DAT 9773 9720
RECO 390640 366400
SPFILE 35824 35765 ------> SPFILE is just an example diskgroup. The ASM spfile
can be located on any diskgroup.
4 rows selected.
6) Create the spfile:
SQL> create spfile='+SPFILE' from pfile=<the full pathname of init+ASM1.ora>;
File created.
7) Check the new spfile location through ASMCMD as well:
$ export $ORACLE_SID=+ASM1
$ export $ORACLE_HOME=<full path of the asm home>
ASMCMD> ls
ACFS/
DAT/
RECO/
SPFILE/
ASMCMD> cd SPFILE
ASMCMD> ls
ASM/
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=3vpjg1155_130&id=1376225.1 3/7
4/7/2014 Document 1376225.1
ASMCMD> cd ASM
ASMCMD> ls
ASMPARAMETERFILE/
ASMCMD> cd ASMPARAMETERFILE/
ASMCMD> ls
REGISTRY.228.769874562
ASMCMD> ls -l
Type Redund Striped Time Sys Name
ASMPARAMETERFILE UNPROT COARSE OCT 01 11:00:00 Y REGISTRY.228.769874562
ASMCMD> exit
8) Shutdown +ASM1:
$ export $ORACLE_SID=+ASM1
$ export $ORACLE_HOME=<full path of the asm home>
10g and 11gR1:
$ sqlplus '/ as sysdba'
SQL> shutdown immediate;
9) Check the $ASM_HOME/dbs/init+ASM1.ora to ensure that it points to new location of spfile:
For example:
$ cd $ASM_HOME/dbs
$ cat init+ASM1.ora
SPFILE='+SPFILE/asm/asmparameterfile/registry.228.769874562'
If $ASM_HOME/dbs/init+ASM1.ora does not point to new location of spfile, then:
$ vi $ASM_HOME/dbs/init+ASM1.ora
modify $ASM_HOME/dbs/init+ASM1.ora:
$ SPFILE='+SPFILE/asm/asmparameterfile/registry.228.769874562'
$ save init+ASM1.ora
re-check $ASM_HOME/dbs/init+ASM1.ora:
$ cat init+ASM1.ora
SPFILE='+SPFILE/asm/asmparameterfile/registry.228.769874562'
10) Restart the +ASM1 instance using the new spfile:
Note: To ensure that the +ASM1 instance starts up using the new spfile, rename the pfile (<the full pathname of
init+ASM1.ora>) so that +ASM1 can not recognize it.
$ export $ORACLE_SID=+ASM1
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=3vpjg1155_130&id=1376225.1 4/7
4/7/2014 Document 1376225.1
$ export $ORACLE_HOME=<full path of the asm home>
10g and 11gR1:
$ sqlplus '/ as sysdba'
SQL> startup
11) Check the new spfile location through SQL*Plus:
SQL> sho parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +SPFILE/asm/asmparameterfile/registry.228.769874562
12) Check if the ASM diskgroups are mounted properly or not:
SQL> select name, total_mb, free_mb from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB
------------------------------ ---------- ----------
ACFS 97660 316
DAT 9773 9720
RECO 390640 366400
SPFILE 35824 35765
4 rows selected.
13) Go to node 2, or each node in multiple node RAC, and check the $ASM_HOME/dbs/init+ASM2.ora to
ensure that it points to new location of spfile:
For example:
$ cd $ASM_HOME/dbs
$ cat init+ASM2.ora
SPFILE='+SPFILE/asm/asmparameterfile/registry.228.769874562'
If $ASM_HOME/dbs/init+ASM2.ora does not point to new location of spfile, then:
$ vi $ASM_HOME/dbs/init+ASM2.ora
modify $ASM_HOME/dbs/init+ASM2.ora:
$ SPFILE='+SPFILE/asm/asmparameterfile/registry.228.769874562'
$ save init+ASM2.ora
re-check $ASM_HOME/dbs/init+ASM2.ora:
$ cat init+ASM2.ora
SPFILE='+SPFILE/asm/asmparameterfile/registry.228.769874562'
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=3vpjg1155_130&id=1376225.1 5/7
4/7/2014 Document 1376225.1
Note: Both $ASM_HOME/dbs/init+ASM1.ora and $ASM_HOME/dbs/init+ASM2.ora, or each init_ASM[n] in multiple
node RAC, have to point to the same ASM spfile location.
14) Restart the +ASM2 instance using the new spfile, or follow this step, step 15, and step 16 in sequential
order, for each ASM instance in multiple node RAC (This is a safe startup process for the ASM instances in
RAC, rather then using srvctl to startup the rest of the ASM instances.):
$ export $ORACLE_SID=+ASM2
$ export $ORACLE_HOME=<full path of the asm home>
10g and 11gR1:
$ sqlplus '/ as sysdba'
SQL> startup
15) Check the new spfile location through SQL*Plus, or on each ASM instance in multiple node RAC:
SQL> sho parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +SPFILE/asm/asmparameterfile/registry.228.769874562
16) Check if the ASM diskgroups are mounted properly or not, or for each ASM instance in multiple node
RAC:
SQL> select name, total_mb, free_mb from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB
------------------------------ ---------- ----------
ACFS 97660 316
DAT 9773 9720
RECO 390640 366400
SPFILE 35824 35765
4 rows selected.
Additional Resources
Community Discussions: Storage Management MOS Community
Still have questions? Use the above community to search for similar discussions or start a new discussion on this
subject.
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=3vpjg1155_130&id=1376225.1 6/7
4/7/2014 Document 1376225.1
REFERENCES
NOTE:1313657.1 - How to start up the ASM instance when the spfile is misconstrued or lost ?
NOTE:946145.1 - ASM 11gR2 Instance Is Unable To Start Due To ASM Spfile Is Missing.
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=3vpjg1155_130&id=1376225.1 7/7