数据库是ORACLE11g 操作系统的centos今天我想修改一个参数的值。
SQL>alter system set control_files=...
就是想在其他物理硬盘上再添加一个控制文件,结果报:
write to SPFILE requested but no SPFILE specified at startup在ORACLE_HOME/dbs/ 下面有个spfile的文件。不过这个文件是我手动写的。
我用这个SPFILE手动复制出一个PFILE,把原来SPFILE文件删除,然后重启数据库
SQL>create spfile from pfile
File created然后又重启数据库。
SQL>alter system set control_files=...
System altered我想知道SPFILE文件的创建方式不同,会影响它的使用吗?

解决方案 »

  1.   

    SPFILE不是手工写的,是根据pfile采用命令创建的
      

  2.   

    这里你需要了解一些关于oracle启动文件选择的知识。默认的spfile路径为$ORACLE_HOME/dbs/spfile<SID>.ora,如果是window系统则在$ORACLE_HOME/database/spfile<SID>.ora下 这里由于你没有这个文件,所以是用默认的pfile启动的,所以你这报这个错也不奇怪了。
      

  3.   

    我的$ORACLE_HOME/dbs/ 里面有SPFILE的文件,只不过是我手动实用VI工具写的。好像不起作用,而且以前是没有PFILE文件的,我个人认为以前的ORACLE用的都是INIT.ORA这个文件。
      

  4.   


    spfile的文件不要用文本去修改,他是二进制格式,修改的话用alter system controlfile这样的方式来做,启动的时候,系统用$ORACLE_HOME/database/spfile<SID>.ora来启动,如果没有这个文件,会找默认的pfile的init文件。你这里应该是没有用到你写的spfile文件,可能是文件名不对,你检查一下,没有这个文件就默认的pfile文件启动了。所以你用create pfile='....' from spfile;也就提示如上的错误了。
      

  5.   

    汗!我也是刚学ORACLE,看来不能手动修改SPFILE文件。谢谢了。