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。
pfile和spfile可以相互生成:
SQL>create pfile from spfile
SQL>create spfile from pfile
SQL>create pfile from memory;
SQL>create spfile from memory;
注意:使用spfile启动后不能重写spfile
尽可能使用spfile,pfile一般留做备用,特殊情况也可以使用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$spparameter(spfile参数视图)中的参数memory_target的isspecified字段值,如果是TRUE 说明是spfile启动的(考点)
SQL> select name,value,isspecified from v$spparameter where name like 'memory_target';
NAME VALUE ISSPECIFIED
-------------------------------------- -------------------------------------------
memory_target 423624704 TRUE