天天看点

我的oracle 9i学习日志(5)--Initialization Parameter Files

启动instance过程:

<a href="http://luotaoyang.blog.51cto.com/attachment/201002/22/545649_1266831905RA6O.png"></a>

由上图可知,oracle instance是根据Initialization Parameter Files里设置的参数来初始化oracle instance的。

Initialization Parameter Files的条目中包含显示和隐式两种参数,显示参数在文件中明确指出了参数值,隐式参数没有在文件中指定,均按oracle默认值。多个Initialization Parameter Files可以同时存在。有两种类型的Initialization Parameter Files:pfile(Static parameter file)和SPFILE(Persistent server parameter file)。

pfile:

文本文件,可以用任何标识的系统文本编辑工具修改。在instance启动后只读,如果里面的内容被改变只能在下次启动instance后才能生效,oracle安装完后会自动生成一个简单模板$ORACLE_HOME/dbs/init.ora。

SPFILE:

二进制文件,只能由oracle server修改和维护,只能位于运行oracle server的机器上(pfile可以位于客户端),可以被RMAN备份。位置$ORACLE_HOME/dbs/spfileSID.ora。

由pfile创建spfile:CREATE SPFILE = ‘$ORACLE_HOME/dbs/spfileDBA01.ora’ 

FROM PFILE = ‘$ORACLE_HOME/dbs/initDBA01.ora’;(可以在instance启动前或启动后创建),在默认情况下可直接这样用:SQL&amp;gt; CREATE SPFILE FROM PFILE;

由spfile创建pfile:SQL&amp;gt; CREATE PFILE FROM SPFILE;

查看各个参数:如果是pfile则可以用编辑器打开,如果是spfile则有三种方式:一是由spfile创建pfile,然后再打开pfile;二是利用Linux下的命令strings spfile;三是SQL&amp;gt; show parameter “参数名的头几个字母”。

如:SQL&gt; show parameter fast

NAME                     TYPE     VALUE 

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

fast_start_io_target             integer     0 

fast_start_mttr_target             integer     300 

fast_start_parallel_rollback         string     LOW

修改参数(spfile条件下):

ALTER SYSTEM SET parameter_name = parameter_value 

[COMMENT 'text'] [deferred] [SCOPE = MEMORY|SPFILE|BOTH] 

[SID= 'sid'|'*']

comment:添加注释。

deferred:延迟修改,下次启动时才修改。

scope:默认both。memory,只修改内存的值,临时修改,不会改变spfile里的值。spfile,只修改spfile里的值。both,既修改内存也修改spfile。对于pfile,scope选项只能修改memory。

sid:在rac环境下,指定修改那个instance。

例1:

SQL&gt; show parameter fast_start_mttr_target

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

SQL&gt;alter system set fast_start_mttr_target=250;

System altered.

fast_start_mttr_target             integer     250

[oracle@localhost ~]$ strings ./dbs/spfilelty.ora | grep fast_start_mttr_target 

*.fast_start_mttr_target=250

例2:SQL&gt;alter system set fast_start_mttr_target=260 comment='hello world';

SQL&amp;gt; select name, value, update_comment from v$parameter where name='fast_start_mttr_target';

NAME             VALUE          UPDATE_COMMENT 

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

fast_start_mttr_targ 260          hello world 

*.fast_start_mttr_target=260#hello world

例3:

SQL&gt; alter system set fast_start_mttr_target=300 scope=spfile;

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

fast_start_mttr_target             integer     260 

*.fast_start_mttr_target=300

延迟修改的参数:

<a href="http://luotaoyang.blog.51cto.com/attachment/201002/22/545649_1266831950BSH6.png"></a>

删除spfile里的值即将参数值置为默认值:ALTER SYSTEM RESET parameter_name [SCOPE = 

MEMORY|SPFILE|BOTH] [SID= ‘sid’|’*’]

startup命令行为:

当输入startup命令后,在$ORACLE_HOME/dbs/目录下查找初始化参数文件spfileSID.ora,启动instance;若无这个文件则查找缺省spfile文件,启动instance;若无这个文件则查找initSID.ora这个文件并启动instance。

指定一个pfile可以覆盖上述查找顺序,如:STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora,直接用指定的pfile启动instance。在pfile里可以指定其他spfile,在pfile里加入SPFILE=&lt;full path and filename&gt;即可。这是唯一能用一个处于其他位置的spfile启动instance的方法。

本文转自 d185740815 51CTO博客,原文链接:http://blog.51cto.com/luotaoyang/277702,如需转载请自行联系原作者

继续阅读