oracle体系架构-4-参数文件

1参数文件:什么是参数文件

instance在启动数据库阶段之前读取初始化参数init parameter files,该文件管理实例相关启动参数

2 参数的分类

一 动态参数 immedite 二静态参数 false  三延迟参数deferved

动态参数可以直接在内存中修改,并对当前instance立即生效。

静态参数必须修改参数文件,下次启动后生效。

延迟参数,session下次链接时生效

SQL> select distinct issys_modifiable from v$parameter;

ISSYS_MODIFIABLE

----------------

IMMEDIATE   动态参数

FALSE   静态参数

DEFERRED   延迟参数,session下次连接有效

3 参数的形式

参数一般是由动态参数和静态参数俩中形式。除此之外,还有一种问隐含参数,一般oracle不推荐修改使用

4.参数文件

oracle的俩中参数一般是由俩中参数文件形式表达出来

一pfile 二spfile

pfile的特点

①通过修改文本编辑器进行编辑修改参数,可以修改多条参数

 

②缺省的路径及命名方式:$ORACLE_HOME/dbs/initSID.ora

 

spfile的特点

 

①二进制文件,不可以通过编辑器修改。通过Linux命令strings可以查看内容。

 

②路径及命名方式: $ORACLE_HOME/dbs/spfileSID.ora

 

 

③修改spfile文件的方法:

 

alter system set 参数=[scope=memory|spfile|both]

 

scope=memory 参数修改立刻生效,但不修改spfile文件。

 

scope=spfile 修改了spfile文件,重启后生效。

 

scope=both 前两种都要满足。要求spfile参数文件存在

 

④不写scope限定词,缺省③。但不如③严格,即spfile如果不存在,仅仅修改内存中参数。

 

 

如果不修改spfile,将无法更改静态参数

 

SQL> select name,ISSES_MODIFIABLE,ISSYS_MODIFIABLE from v$parameter where name='sql_trace';

 

NAME     ISSES            ISSYS_MOD

 

-------------------------------------------------------------------------------- ----- ---------

 

sql_trace   TRUE           IMMEDIATE

 

这个结果表示 sql_trace参数在session级别可以改,在system级也可以both修改(动态参数)。

 

读取参数文件的顺序及相互生成

 

优先spfile,其次pfile

 

pfilespfile可以相互生成:

 

SQL>create pfile from spfile

 

SQL>create spfile from pfile

 

SQL>create pfile from memory;

 

SQL>create spfile from memory;

 

注意:使用spfile启动后不能重写spfile

 

尽可能使用spfilepfile一般留做备用,特殊情况也可以使用pfile启动:

 

SQL> startup pfile=$ORACLE_HOME/dbs/initprod.ora

 

如果pfile不是缺省命名或放在其他路径,则指定命令路径和文件名即可。

 

SQL> startup pfile=/home/oracle/mypfile

 

怎样知道实例是spfile启动还是pfile启动的

 

SQL> show parameter spfile

 

NAME                      TYPE        VALUE

 

------------------------------------ ----------- ------------------------------

 

spfile                       string      /u01/oracle/dbs/spfile.ora

 

如果value有值,说明数据库启动时读的是spfile

 

另一个办法是看v$spparameterspfile参数视图)中的参数memory_targetisspecified字段值,如果是TRUE 说明是spfile启动的(考点)

 

SQL> select name,value,isspecified from v$spparameter where name like 'memory_target';

 

NAME         VALUE                   ISSPECIFIED

 

-------------------------------------- -------------------------------------------

 

memory_target  423624704               TRUE

 

你可能感兴趣的:(oracle体系架构-4-参数文件)