ITPub博客

首页 > 数据库 > Oracle > pfile,spfile

pfile,spfile

Oracle 作者:sunyi_672 时间:2014-12-31 15:40:22 0 删除 编辑

PFILE和SPFILE介绍

 

一、PFILE

Pfile(Parameter File,参数文件)是基于文本格式的参数文件,含有数据库的配置参数。

1、PFILE - initSID.ora(默认PFILE名称),位置在$ORACLE_HOME/dbs目录下面。 这是一个文本文件,可以用任何文本编辑工具打开。

2、创建PFILE

cp init.ora $ORACLE_HOME/dbs/initorcl.ora

编辑initorcl.ora文件,修改适合自己的参数。建议不要使用oracle提供的初始化参数,这个文档有点老。

需要修改的名字有:

db_name=wilson
#
添加db_block_size
db_block_size=8192
control_files=('
目录/control01.ctl','目录/control02.ctl', '目录/control03.ctl')

 

二、SPFILE: Oracle9i之后引入的概念

SPfile(Server Parameter File,服务器参数文件)是基于二进制格式的参数文件,含有数据库及例程的参数和数值,但不能用文本编辑工具打开。

动态修改参数
alter system set parameter=Value

scope={spfile|both|memory};

SCOPE参数有三个可选值:

MEMORY:只改变当前实例运行;

SPFILE:只改变SPFILE的设置(如果修改的是静态参数,则必须指定SCOPE=SPFILE,否则将会报ORA-02095错);

BOTH:改变实例及SPFILE(使用BOTH选项实际上等同于不带参数的ALTER SYSTEM语句)。

 

SPFILE->spfileSID.ora,位置在$ORACLE_HOME/dbs目录下面

根据PFILE创建SPFILE, 在启动Instance实例之前或之后都可以创建SPFILE。

CREATE SPFILE = ‘$ORACLE_HOME/dbs/spfileDBA01.ora’ FROM PFILE = ‘$ORACLE_HOME/dbs/initDBA01.ora;

 

也可以使用缺省的方式来创建SPFILE

create spfile from pfile;

 

查看SPFILE等二进制文件使用

strings spfilewilson.ora

 

修改SPFILE的内容:

alter system set parameter=value

其中deferred表示延迟生效,可以通过show parameter fast_start_查看fast_start_开头的所有参数是否已经生效。

 

删除或重置SPFILE参数回缺省值:

alter system set undo_suppress_errors=true;
alter system reset undo_suppress_errors scope= both sid='*';

 

三、根据SPFILE创建PFILE

【注意】在进入sqlplus后就可以创建,不一定要启动数据库。还有lock_sga参数只能在AIX操作系统中有效,在linux和unix中是无效的,让SGA尽量驻留内存的办法就是修改SGA区的内存大小。

create pfile from spfile;

 

四、Oracle的启动顺序

用startup(默认)启动的顺序

1、直接在默认路径下查找spfileSID.ora --(spfile)

如果没有再查找2

2、直接在默认路径下查找spfile.ora      

如果没有再查找3

3、直接在默认路径下查找initSID.ora --(pfile) 

如果还没有 就会报错……

 

用startup pfile= 的方式启动。

1、指定的pfile:

startup pfile=$ORACLE_HOME/dbs/initSID.ora

2、使用spfile启动,需要变通一下如:vi一个pfile文件aaa.ora,包含以下内容:

spfile=$ORACLE_HOME/dbs/spfileSID.ora

再用startup pfile=$ORACLE_HOME/dbs/aaa.ora启动即可。

若使用这两种方式,级别会高于直接用startup启动的方式。



pfile 默认的名称为“init+例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs,这是一个文本文件,可以用任何文本编辑工具打开。

spfile 默认的名称为“spfile+例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs以二进制文本形式存在,不能用vi编辑器对其中参数进行修改。

两个文件可以用命令 CREATE PFILE FROM SPFILE或CREATE SPFILE FROM PFILE来互相创建

区别:
1、启动次序 SPfile优先于Pfile。
2、PFILE是静态文件,修改之后不会马上生效,数据库必须重新启动读取这个文件才行。
3、SPFILE是动态参数文件,是二进制文件,不可以直接用记事本等等程序做修改,可以用ALTER命令做修改,不用重起数据库也能生效。
修改方法:
#查看参数信息
sql>show parameter;
#修改参数
sql>alter system set 参数名=值 scope=参数2;
参数2取值有如下三种:
1. scope=spfile: 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效。适用于动态和静态初始化参数。
2. scope=memory: 对参数的修改记录在內存中,对于动态初始化参数的修改立即生效。在重启DB后会丟失,会复原为修改前的参数值。
3. scope=both:   对参数的修改会同时记录在服务器参数文件和內存中,对于动态参数立即生效,对静态参数不能用这个选项。
   如果使用了服务器参数文件,则在执行alter system语句时,scope=both是default的选项。
   如果沒有使用服务器参数文件,而在执行alter system语句时指定scope=spfile|both都会出错。





转载自:http://blog.sina.com.cn/s/blog_77bba23901017xcl.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26600495/viewspace-1386197/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 表空间管理
请登录后发表评论 登录
全部评论

注册时间:2014-12-29

  • 博文量
    51
  • 访问量
    63006