Create database SPFILE Under ASM (Doc ID 413360.1)

In this Document

  Symptoms
  Cause
  Solution
  TESTCASE
  References

APPLIES TO:

Oracle Database - Enterprise Edition - Version 10.1.0.2 to 11.2.0.4 [Release 10.1 to 11.2]
Information in this document applies to any platform.
***Checked for relevance on 27-Feb-2011***
***Checked for relevance on 04-Jul-2014***

SYMPTOMS

On 10.2.0.1 in Production:

-- Suppose that the database instance name is "osmdr"  

-- In the database instance 

When trying to create a new spfile from a pfile under sqlplus

SQL> create SPFILE='+DATA/osmdr/spfileosmdr.ora' from pfile='/home/oracle/osmdr.init';
File created.

 

SQL>create SPFILE='+DATA/osmdr/spfileosmdr.ora' from PFILE='/home/oracle/osmdr.init';   File created



Under ASM , the spileosmdr.ora is link to the wrong location under ASM

ASMCMD> ls -alr 
Type Redund Striped Time Sys Name 
N spfileosmdr.ora => 
+DATA/DB_UNKNOWN/PARAMETERFILE/SPFILE.272.613162051 
ASMCMD>

Q. Why it will create +DATA/DB_UNKNOW instead of +DATA/osmdr ? 

The same question can be like that 

Q. Why does the spfile get created in the directory DB_UNKNOWN? 


IT'S EXPECTED BEHAVIOR 

CAUSE

-- Considering the TESTCASE hereunder

The string "DB_UNKNOWN/PARAMETERFILE/SPFILE" is a generic system tag for the proxied spfile creation. This will be used in case the database instance has no open client session to the ASM instance at the time of the 'create spfile' command. That is, the ASM instance is not aware of the db name and therefore uses "DB_UNKNOWN". 

Please see the TESTCASE section above that demonstrates two scenarios; [A] where the DB_UNKNOWN 
directory structure gets created, and [B] where the spfile is created in the directory <diskgroup_name>/<db_name>/PARAMETERFILE.

SOLUTION

TESTCASE

[A] No open database connection to the ASM instance 

-- In the ASM instance 

SQL> select * from v$asm_client; 

no rows selected 

-- In the database instance

SQL> show parameter db_name 

NAME TYPE VALUE 
------------------------------------ ----------- ------------------------------ 
db_name string V1020
SQL> select * from v$asm_client; 

no rows selected
SQL> create spfile='+DG1' from pfile; 

File created.

-- In asmcmd 
-- The DB_UNKNOWN directory structure gets created

ASMCMD> pwd 
+dg1 
ASMCMD> ls 
DB_UNKNOWN/ 
V1020/ 
ASMCMD> ls DB_UNKNOWN/ 
PARAMETERFILE/ 
ASMCMD> ls DB_UNKNOWN/PARAMETERFILE/ 
SPFILE.259.613339345

-- Remove the parameter file from the ASM diskgroup

ASMCMD> rm DB_UNKNOWN/PARAMETERFILE/SPFILE.259.613339345

-- Now the DB_UNKNOWN directory structure gets automatically removed

[B]    <<<<<< 先用pfile mount数据库,然后生成spfile就可以!

-- In the database instance 
-- Open a connection to the ASM instance by accessing a datafile in an ASM diskgro 
-- In this example, a tablespace with a datafile in an ASM diskgroup is onlined

SQL> alter tablespace ts1 online; 

Tablespace altered. 

SQL> select * from v$asm_client; 

GROUP_NUMBER INSTANCE_NAM DB_NAME STATUS SOFTWARE 
------------ ------------ -------- ------------ - 
1 +ASM V1020 CONNECTED 10.2.0.3.0 10.2.0.0.0

-- In the ASM instance

SQL> select * from v$asm_client; 

GROUP_NUMBER INSTANCE_NAM DB_NAME STATUS SOFTW 
------------ ------------ -------- ----------- 
1 V1020 V1020 CONNECTED 10.2.0.3.0 10.2.0.1.0

-- In the database instance

SQL> create spfile='+DG1' from pfile; 

File created.

-- In asmcmd

ASMCMD> pwd 
+dg1 
ASMCMD> ls 
V1020/ 
ASMCMD> ls V1020/ 
DATAFILE/ 
PARAMETERFILE/ 
ASMCMD> ls V1020/PARAMETERFILE/ 
spfile.259.613339813

-- Result: 
- The spfile is located in the directory <diskgroup_name>/<db_name>/PARAMETERFILE 
- No DB_UNKNOWN directory structure got created 

REFERENCES

NOTE:265633.1  - ASM Technical Best Practices For 10g and 11gR1 Release

你可能感兴趣的:(Create database SPFILE Under ASM (Doc ID 413360.1))