PFILE和SPFILE介绍

时间:2023-01-06 16:06:22

一、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 <comment='text'> <deferred> <scope=memory|spfile|both><sid='sid|*'>

其中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启动的方式。