In the 11g cluster, we usually use the initialization file (pfile) under dbs to specify the actual spfile in asm.
[Oracle @ ol6-112-rac1 dbs] $ cd/u01/app/oracle/product/11.2.0.4/db_1/dbs
[Oracle @ ol6-112-rac1 dbs] $ ls
Hc_acfsdb.dat hc_cdbrac_1.dat hc_cdbrac_2.dat initcdbrac_1.ora initcdbrac_1.ora.orig init. ora orapwacfsdb spfileacfsdb. ora
[Oracle @ ol6-121-rac1 dbs] $ cat initcdbrac_1.ora
SPFILE = '+ DATA/cdbrac/spfilecdbrac. ora'
[Oracle @ ol6-112-rac1 dbs] $
However, in 12c, if I modify the pfile specified by dbs to spfile, this setting will not take effect. For example, after I specify the file to the/tmp directory, you will find that, it still uses the spfile on asm:
[Oracle @ ol6-121-rac1 dbs] $ cat initcdbrac_1.ora
SPFILE = '/tmp/pfile. ora'
[Oracle @ ol6-121-rac1 dbs] $
[Oracle @ ol6-121-rac1 dbs] $ sqlplus "/as sysdba"
SQL * Plus: Release 12.1.0.1.0 Production on Thu Jun 23 11:24:12 2016
Copyright (c) 1982,201 3, Oracle. All rights reserved.
Connected:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0-64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1219260416 bytes
Fixed Size 2287768 bytes
Variable Size 838862696 bytes
Database Buffers 369098752 bytes
Redo Buffers 9011200 bytes
SQL> show parameter spfile
NAME TYPE VALUE
-----------------------------------------------------------------------------
Spfile string + DATA/cdbrac/spfilecdbrac. ora
SQL> exit
This is because the spfile information in the 12c cluster is fixed in ocr, and the configuration in the dbs directory is not considered.
[Oracle @ ol6-121-rac1 dbs] $ srvctl config database-d cdbrac | grep spfile
Spfile: + DATA/cdbrac/spfilecdbrac. ora
[Oracle @ ol6-121-rac1 dbs] $
To modify the spfile path, you must modify the ocr information:
[Oracle @ ol6-121-rac1 dbs] $ srvctl modify database-d cdbrac-spfile '/tmp/pfile. ora'
[Oracle @ ol6-121-rac1 dbs] $
[Oracle @ ol6-121-rac1 dbs] $
[Oracle @ ol6-121-rac1 dbs] $ sqlplus "/as sysdba"
SQL * Plus: Release 12.1.0.1.0 Production on Thu Jun 23 11:27:48 2016
Copyright (c) 1982,201 3, Oracle. All rights reserved.
Connected:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0-64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1219260416 bytes
Fixed Size 2287768 bytes
Variable Size 838862696 bytes
Database Buffers 369098752 bytes
Redo Buffers 9011200 bytes
SQL>
SQL> show parameter spfile
NAME TYPE VALUE
-----------------------------------------------------------------------------
Spfile string/tmp/pfile. ora
SQL> shutdown abort
ORACLE instance shut down.
SQL> exit
Oracle 12c discards the spfile path written in init. ora under dbs. I guess it is because there is a flex cluster in 12c. That is to say, instance1 can run to host 2 of node 2. If there is an initsid2.ora file in the dbs directory of host 2 in the original mode, instance 1 cannot be called. Therefore, the init file in the dbs directory is discarded.