问下,oracle10g 在startup nomount时候,加载的是pfile,还是initorcl.ora参数文件呢?参数文件跟pfile又如何区别,有何关联呢?

解决方案 »

  1.   

    默认加载的是spfile可以通过:SQL> show parameter spfile如果输出了文件命,说明使用的SPFILE,否则是PFILE
      

  2.   

    参数文件,很久以前是PFILE的,这种文件修改了的话,要重启ORACLE才行SPFILE也是参数文件,但是修改SPFILE文件中的大部分参数是不需要重启ORACLE的
      

  3.   

    pfile 参数文件可以用记事本打开,只能静态修改
      init<sid>.ora
    spfile:参数文件可以在数据库里动态修改,下次重启生效:
      alter system set xxxx=xxx scope=spfile;ORACLE  在启动时,寻找参数文件的过程如下:
     1>spfile<sid>.ora
     2>init<sid>.ora
       谁先找到优先用谁,都找不到的话  报ERROR
      

  4.   

    alter system set xxxx=xxx scope=both;
       --这种方式不需重启,both=memory,spfile
      

  5.   

    spfile是二进制的,不能通过文本编辑直接修改的,可以通过命令修改。
    pfile是文本文件,可以通过文本编辑直接修改。
    目前是用spfile,更好管理。
    两者转换:
    create spfile form pfile;
    create pfile from spfile;oracle先会查找spfile,如果没有再找pfile,再没有再找init<sid>.ora,还没有就报错了
      

  6.   

    pfile  为文本文件,所以可以用记事本打开,进行手动编辑(不建议)
    spfile 为二进制文件,它只能通过数据库命令进行修改,或者使用create语句在spfile和pfile之间进行转换。spfile加强了安全性,并且参数可以动态修改。在修改的时候,可以使用scope 指定范围。oracle 加载参数文件时的查找流程:
    (1)spfile<ORACLE_SID>.ora ,其缺省目录如下:
         UNIX:$ORALCE_HOME/dbs/
         NT:%ORACLE_HOME%\database(2)spfile.ora,其缺省目录如下:
         UNIX:$ORALCE_HOME/dbs/
         NT:%ORACLE_HOME%\database(3)init<ORACLE_SID>.ora ,其缺省目录如下:
         UNIX:$ORALCE_HOME/dbs/
         NT:%ORACLE_HOME%\database
      

  7.   

    检查是否使用spfile如同codearts所说,检查参数spfile就行了,为空则表明使用pfile
    补充一下:
    ORACLE 在启动时,一般在默认路径$ORACLE_HOME/dbs或$ORACLE_HOME/database下搜索参数文件
    顺序是
    spfile<SID>.ora->spfile.ora->init<SID>.ora->init.ora
    当然在启动数据库时手工指定pfile
    startup pfile=<pfile全路径>
      

  8.   

    默认加载的是spfile顺序是
    spfile<SID>.ora->spfile.ora->init<SID>.ora->init.ora
      

  9.   

    startup没有指定使用那个文件的话,默认情况下使用是spfile。
    spfile是二进制文件,pfile是文本文件,可以直接使用文本编译器编辑的