pfile启动正常,spfile启动:ORA-01506: missing or illegal database name

11g, RAC,ASM环境,spfile在ASM上。

用指定的pfile启动正常,
create spfile from pfile之后报如下错误。

SQL>  create spfile='+DATA1/TANTEST/spfiletantest.ora' from pfile;
或是create spfile from pfile

同样报下面的错误:
SQL> startup nomount;
ORA-01506: missing or illegal database name

经检查发现create spfile from pfile时,是从默认pfile位置找该pfile,而不是当时启动的pfile,所以create的spfile还是有问题的。问题简单,没但有留心注意,害的瞎折腾了半天。在此标记下,希望下次不要再犯如此低级错误。

应该以下面的命令创建:
SQL> create spfile from pfile='/tmp/initan.ora';
指定此次正常启动Pfile的路径,重新启动正常。

但上面的方法启动参数生成在$ORACLE_HOME/dbs下,只有一个节点可用,spfile放在ASM上之后,两个节点都可以使用。并且需要删除$ORACLE_HOME/dbs下的spfile,并确认pfile inittantest.ora的内容是
SPFILE='+DATA1/tantest/spfiletantest.ora'

create spfile='+DATA1/TANTEST/spfiletantest.ora' from pfile='/tmp/initan.ora';

然后重启数据库:
[oracle@oeltan1 dbs]$ srvctl stop database -d tantest
[oracle@oeltan1 dbs]$ srvctl start database -d tantest

[oracle@oeltan1 dbs]$ srvctl status database -d tantest
Instance tantest1 is running on node oeltan1
Instance tantest2 is running on node oeltan2

 

你可能感兴趣的:(pfile启动正常,spfile启动:ORA-01506: missing or illegal database name)