我装的是ORACLE10G EXPRESS EDITION,在“D:\oraclexe\app\oracle\admin\XE\pfile”目录下没有文件,我正在学习PFILE,我输入“show parameter log_archive_start”显示如下:NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
log_archive_start                    boolean
FALSE请问我的PFILE文件在哪里?没有PFILE文件也能启动数据库么?

解决方案 »

  1.   

    可能你默认的使用spfile启动,那么你可以这样创建pfile:
    create pfile from spfile;如果要使用pfile启动,
    那么startup pfile=D:\oraclexe\app\oracle\admin\XE\pfile\...
      

  2.   

    上面掉了单引号, 我再贴段测试通过的代码吧当中有个语句是判断你的数据库是使用pfile还是spfile的
    SQL> startup pfile='/export/home/oracle/admin/orcl/pfile/init.ora.77200810307';
    ORACLE instance started.Total System Global Area  289406976 bytes
    Fixed Size                  1279820 bytes
    Variable Size              92276916 bytes
    Database Buffers          192937984 bytes
    Redo Buffers                2912256 bytes
    Database mounted.
    Database opened.
    SQL> select decode(count(isspecified), 1, 'SPFILE', 'PFILE')
      2     from v$spparameter
      3    where isspecified = 'TRUE'
      4      and rownum = 1 ;DECODE(COUNT
    ------------
    PFILESQL> show parameter pfile;NAME                                 TYPE                   VALUE
    ------------------------------------ ---------------------- ------------------------------
    spfile                               string
    SQL> show parameter spfile;NAME                                 TYPE                   VALUE
    ------------------------------------ ---------------------- ------------------------------
    spfile                               stringSQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup
    ORACLE instance started.Total System Global Area  289406976 bytes
    Fixed Size                  1279820 bytes
    Variable Size             125831348 bytes
    Database Buffers          159383552 bytes
    Redo Buffers                2912256 bytes
    Database mounted.
    Database opened.
    SQL> select decode(count(isspecified), 1, 'SPFILE', 'PFILE')
      2     from v$spparameter
      3    where isspecified = 'TRUE'
      4      and rownum = 1 ;DECODE(COUNT
    ------------
    SPFILE
      

  3.   

    在 $oracle_home\database 下
      

  4.   

    Oracle可以使用spfile启动么?我在“D:\oraclexe\app\oracle\product\10.2.0\server\config\scripts”目录下发现“initXE.ora”,而且这里有个“XE.bat”文件,这个文件里有调用“initXE.ora”文件。我想Oracle启动默认调用“XE.bat”批处理文件,由它调PFILE,再从PFILE链接到SPFILE,是这样的么?
      

  5.   

    不用, 10.2默认就是spfile这个是你startup的时候定义的,不明确指定就是spfile
      

  6.   

    谢了。我从书上也看到了,就再补充一下:
    启动例程时,既可以使用PFILE,也可以使用SPFILE。当例程处于运行状态时,如果要确定例程使用的参数文件类型,首先应以特权用户登陆,然后显示初始化参数SPFILE的值。命令如下:
    SQL>conn sys/oracle as sysdba
    SQL>show parameter spfile
    显示结果中,如果VALUE存在返回值,表示例程正在使用SPFILE;如果VAULE没有任何返回结果,则表示例程正在使用PFILE。