Oracle中PFILE和SPFILE的使用


在9i以前,Oracle使用pfile存储初始化参数设置,这些参数在实例启动时被读取,任何修改需要重起实例才能生效,使用spfile你可以使用ALTER SYSTEM或者ALTER SESSION来动态修改那些可动态修改的参数,所有更改可以立即生效,你可以选择使更改只应用于当前实例还是同时应用到spfile。这就使得所有对spfile的修改都可以在命令行完成,我们可以彻底告别手工修改初始化参数文件,这就大大减少了人为错误的发生。

SPFILE是一个二进制文件,可以使用RMAN进行备份,这样实际上Oracle把参数文件也纳入了备份恢复管理。除了第一次启动数据库需要PFILE(然后可以根据PFILE创建SPFILE),我们可以不再需要PFILE,ORACLE强烈推荐使用spfile,应用其新特性来存储和维护初始化参数设置。

一. 创建SPFILE

缺省的,ORACLE使用PFILE启动数据库,SPFILE必须由PFILE创建,新创建的SPFILE在下一次启动数据库时生效,CREATE SPFILE需要SYSDBA或者SYSOPER的权限:

语法如下:

CREATE SPFILE[='SPFILE-NAME'] FROM PFILE[='PFILE-NAME']

例:

SQL> create spfile from pfile;

缺省的,spfile创建到系统缺省目录

(Unix: $ORACLE_HOME/dbs; NT: $ORACLE_HOME\database)


如果SPFILE已经存在,那么创建会返回以下错误:

SQL> create spfile from pfile;

create spfile from pfile

ERROR 位于第 1 行:

ORA-32002: 无法创建已由例程使用的 SPFILE

判断是否使用了SPFILE,你可以使用SHOW命令来显示参数设置,如果以下结果value列返回空值,那么说明你在使用pfile:

SQL> SHOW PARAMETER spfile

NAME TYPE   VALUE

------------------------------

spfile string   %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

  • 1
  • 2
  • 3
  • 下一页

相关内容