ORACLE SPFILE与PFILE学习

今天遇到一个错误,具体错误过程如下:

--提示无法修改指定的参数
SQL> alter system set memory_max_target=3072M;
alter system set memory_max_target=3072M
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified

--至更改参文件
SQL> alter system set memory_max_target=3072M scope=spfile;
alter system set memory_max_target=3072M scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in use

提示没有使用参数文件,查看数据文件

SQL> show parameter spfile

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
spfile				     string

spfile的值为空,说明数据库启动不是使用的spfile,是使用的pfile启动的。缺省情况下,spfile是linux的  $ORACLE_HOME/dbs 下的 spfile+$ORACLE_SID.ora文件,查看文件是否存在

[oracle@localhost dbs]$ ls $ORACLE_HOME/dbs
hc_orcl11g.dat  hc_orcl.dat  init.ora  initorcl.ora  lkORCL  orapworcl  snapcf_orcl.f 

spfile不存在,于是创建spfile

SQL> create spfile from pfile;

File created.
在目录 $ORACLE_HOME/dbs 下就生成了 spfileorcl.ora 文件,下面是spfile 和pfile的相关知识

spfile是9i以后才有的,在9i 以前,Oracle 使用pfile 存储初始化参数配置,这些参数在实例启动时被读取,不能动态修改,可以用普通的编辑器修改,任何修改需要重起实例才能生效。

使用spfile 您能够使用ALTER SYSTEM 或ALTER SESSION来动态修改那些可动态修改的参数,部分修改需要重启数据库后才能生效,在修改时能够选择使更改只应用于当前实例,还是同时应用到spfile。这就使得任何对spfile 的修改都能够在命令行完成,我们能够完全告别手工修改初始化参数文档,这就大大减少了人为错误的发生。
  SPFILE 是个二进制文档,能够使用RMAN 进行备份,这样实际上Oracle 把参数文档也纳入了备份恢复管理。除了第一次启动数据库需要PFILE(然后能够根据PFILE 创建SPFILE),我们能够不再需要PFILE,ORACLE 强烈推荐使用spfile,应用其新特性来存储和维护初始化参数配置。


补充:

/*

参数文件(10g中的参数文件)

    主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库。

    如内存池的分配,允许打开的进程数和会话数等。

 

两类参数文件:

    pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init<sid>.ora

    spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端,可以使用EM或指令来修改

    (alter system|session set parameter_name = values <>),

    文件名通常为spfile<sid>.ora,支持RMAN备份。

 

优先级别:

    Oracle 启动读取参数文件的顺序,如果个文件都不存在,则Oracle会报错

    spfile<sid>.ora --> spfile.ora -->init<sid>.ora

 

参数文件的路径:*/

     spfle:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora

     pfile(9i):$ORALCE_HOME/dbs/init$ORALCE_SID.ora  /*10g以后一般不用init<sid>.ora*/

     pfile(10g):$ORALCE_BASE/admin/$ORACLE_SID/pfile /*仅当数据库初始化时使用*/

     pfile:$ORACLE_HOME/dbs/init.ora  /*默认*/

/*

参数文件之间的转化

     spfile 转化为pfile

     pfile 转换为spfile

     spfile来生成pfile

     create pfile from spfile ,执行完毕后,pfile 将保存为$ORACLE_HOME/dbs/init$ORACLE_SID.ora

     也可以指定pfile 的路径:create pfile = '<dir>' from spfile;

 

     pfile 生成spfile

     create spfile from pfile

     create spfile from pfile = '<dir>'

     create spfile = '<dir>' from pfile

     

     11g中的新指令,从memeory中生成

     create spfile = '<dir>' from memeory 

*/


参考:http://blog.csdn.net/leshami/article/details/5559174

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值