Oracle Database Parameters Files

9i之前,Oracle的数据库参数都是存储在init<sid>.ora的本地文件里,这个传统的参数文件成为PFILE(Parameter File).从9i之后,Oracle推荐使用SPFILE来管理数据库参数。

SPFILE即Server Parameter File,相对于传统的PFILE,SPFILE的好处是显而易见的。
  • RMAN(Recovery Manager)会备份SPFILE;
  • 减少人为错误。SPFILE必须由服务器端维护,通过ALTER SYSTEM SET命令,减少PFILE通过手工编辑时可能造成的错误;
  • 更容易找到,由服务端统一管理;

如何知道当前数据库是以PFILE运行的还是SPFILE运行的
SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
  2         FROM sys.v_$parameter WHERE name = 'spfile';
Init File Type
--------------
SPFILE

SPFILE的位置
SQL> show parameter spfile
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      E:\APP\TIANPAN\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEPTIAN.ORA

SQL>
  Oracle Database Parameters Files_第1张图片
SPFILE<SID>.ORA文件是二进制文件,但使用像UltraEdit这样的编辑器打开后还是能看到一部分数据库参数的。
Oracle Database Parameters Files_第2张图片

如何修改SPFILE参数值
PFILE中的参数值可以通过编辑器直接修改,但SPFILE必须通过命令“ALTER SYSTEM SET”来执行修改。
ALTER SYSTEM set parameter = value SCOPE = MEMORY;
ALTER SYSTEM set parameter = value SCOPE = SPfile;
ALTER SYSTEM set parameter = value SCOPE = BOTH;
-- MEMORY - This affects the database now; but will not remain after a restart.
-- SPfile - This does not change the instance immediately, but will modify the SPfile takes effect after a restart.
-- BOTH - change both the current instance and the spfile. 

PFILES、SPFILES互转
CREATE PFILE FROM SPFILE;
<ORACLE_HOME>/database就会生成INIT<SID>.ORA参数文件。
Oracle Database Parameters Files_第3张图片
通过PFILE生成SPFILE的命令也是类似的。
CREATE SPFILE FROM PFILE;



你可能感兴趣的:(Oracle Database Parameters Files)