-- 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
UnderASM , 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 ?
-- 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.
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]
-- 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
From Oracle
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Email: [email protected]
DBA1 群:62697716(满); DBA2 群:62697977(满) DBA3 群:62697850(满)
DBA 超级群:63306533(满); DBA4 群: 83829929 DBA5群: 142216823
聊天 群:40132017 聊天2群:69087192
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请