Oracle 初始化参数文件pfile和spfile

pfile和spfile差额

pfile :Oracle 9i之前。ORACLE使用我们一直PFILE存储的初始化参数,,能够在操作系统级别改动。

当spfile文件改动出现错误导致oracle无法启动时,能够使用 pfile文件启动数据库

spfile:从Oracle 9i開始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工改动,仅仅能在sql下通过alter system set 改动当中的參数。

              如 ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE 

      当中 scope有三个參数,分别为

      scope=both       马上并永久生效。(默认模式)
      scope=spfile     下次启动才干生效。


      scope=memory     马上生效但下次启动时失效


查看spfile的位置

1.SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';

2.show parameter spfile


验证是否是spfile启动

1.运行SELECT ISSPECIFIED,count(*) FROM v$spparameter group by  ISSPECIFIED; 

   假设结果又true值。说明是spfile启动

2.show parameter spfile 假设value值不为空。则为spfile启动


pfile文件的创建和使用pfile文件启动数据库

1.创建pfile文件

  create pfile from spfile; 创建的pfile默认位置在 $ORACLE_HOME/dbs/ initorcl.ora ,initorcl.ora是默认的pfile文件名称

  create pfile='/home/oracle/pfile' from spfile;  指定pfile的路径和文件名称

2.使用pfile文件启动数据库

startup force pfile='?/dbs/initorcl.ora'


从pfile创建spfile

create spfile from pfile='/home/oracle/pfile';

由于spfile在数据库没有启动的情况下也能创建,全部通过pfile和spfile的互转,能够在数据库无法启动的情况下改动spfile文件


查看spfile參数能否够动态改动

以log_buffer为例

select NAME,ISSES_MODIFIABLE, ISSYS_MODIFIABLE from v$parameter where name like '%log_b%';
NAME ISSES ISSYS_MOD
-------------------- ----- ---------
log_buffer FALSE FALSE
能够看出log_buffer參数不能够动态改动

spfile启动。查找spfile文件的顺序

• 按下面顺序搜索$ORACLE_HOME/dbs中具有特定名称的文件:
1. 搜索spfile<SID>.ora。


2. 假设未找到spfile<SID>.ora,则搜索spfile.ora。
3. 假设未找到spfile.ora,则搜索init<SID>.ora。



版权声明:本文博客原创文章,博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/lcchuguo/p/4753038.html