Oracle 参数类型介绍
首先 配置文件:
 pfile(参数文件),spfile(服务器配置文件)   在以前8i 以前的版本 是不可以动态的修改 系统参数的 但是 从9i 过后  就开始有了 spfile 提供给 管理员 更方便的 修改系统参数    两个文件 区别:  pfile 是 文本文件 可以通过 文本编辑器 编辑参数 而spfile是二进制文件 最好不要用文本编辑软件编辑 内容,系统startup 默认 是读取spfile 。
查看是用什么文件启动:
方法一:
SQL> select distinct ISSPECIFIED  from v$spparameter;
ISSPEC
------
FALSE
TRUE
如果只有FALSE,使用的是PFILE,
如果有TRUE,说明用的是SPFILE
 
方法二:
SQL>show parameters spfile
如果有值说明使用spfile启动,反之pfile
如果要通过spfile创建pfile,可以使用命令:
create spfile(pfile) from pfile(spfile)(='   ')      
启动时可以指定pfile或者spfile:
SQL> startup pfile='/home/jarodwang/my_pfile.ora';
视图介绍:
参数的相关信息保存在视图v$system_parameter中。
V$SYSTEM_PARAMETER
Displays information about the initialization parameters that are currently in effect for the instance. A new session inherits parameter values from the instance-wide values.
Column
Datatypes
Description
NUM NUMBER Parameter number
NAME VARCHAR2(64) Name of the parameter
TYPE NUMBER Parameter type
VALUE VARCHAR2(512) Instance-wide parameter value
ISDEFAULT VARCHAR2(9) Indicates whether the parameter is set to the default value (TRUE) or the parameter value was specified in the parameter file (FALSE)
ISSES_MODIFIABLE VARCHAR2(5) Indicates whether the parameter can be changed with ALTER SESSION (TRUE) or not (FALSE)
ISSYS_MODIFIABLE VARCHAR2(9) Indicates whether the parameter can be changed with ALTER SYSTEM and when the change takes effect
ISMODIFIED VARCHAR2(8) Indicates how parameter was modified. If an ALTER SYSTEM was performed, the value will be MODIFIED
ISADJUSTED VARCHAR2(5) Indicates whether Oracle adjusted the input value to a more suitable value (for example, the parameter value should be prime, but the user input a non-prime number, so Oracle adjusted the value to the next prime number)
DESCRIPTION VARCHAR2(64) Description of the parameter
UPDATE_COMMENT VARCHAR2(255) Comments associated with the most recent update

根据v$system_parameter里面的issys_modifiable可以查出哪些是动态参数,哪些是静态参数,命令如下:
SQL> select count(*) from v$system_parameter where issys_modifiable='FALSE';
SQL> select count(*) from v$system_parameter where issys_modifiable='IMMEDIATE';
SQL> select count(*) from v$system_parameter where issys_modifiable='DEFERRED';
 
上面的 结果 查询出了 静态参数是 107个 动态参数是144+7=151个

三者的修改使用范围:
 
 参数类型---SCOPE属性  spfile  memory  both  deferred
 静态参数  可以,重启服务器生效  不可以  不可以  不可以
 动态参数(issys_modifiable为immediate)  可以,重启服务器生效  可以,立即生效,重启服务失效 ,  可以,立即生效,重启服务器仍然有效果  不可以
 动态参数(issys_modifiable为deferred)  可以,重启服务器生效  不可以  不可以  可以
静态参数 必须指定为scope
动态参数issys_modifiable为IMMEDIATE不加scope默认的是 both,而动态参数issys_modifiable为DEFERRED的必须加上scope=spfile 或者 加上derferred。
演示:
1. 静态参数:
SQL> alter system set processes=151;
alter system set processes=151
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set processes=151 scope=spfile;
System altered.
2. 动态参数(immediate)
SQL> alter system set log_archive_dest_1=’ LOCATION=/u02/oradata/arch’;
System altered.
3. 动态参数(deferred)
deferred指定系统修改是否只对以后的会话生效(对当前建立的会话无效,包括执行此修改的会话)。默认情况下,ALTER SYSTEM命令会立即生效,但是有些参数不能“立即”修改,只能为新建立的会话修改这些参数。
SQL> select name from v$system_parameter where issys_modifiable='DEFERRED';
backup_tape_io_slaves
audit_file_dest
object_cache_optimal_size
object_cache_max_size_percent
sort_area_size
sort_area_retained_size
olap_page_pool_size
SQL> alter system set sort_area_size = 65536;
alter system set sort_area_size = 65536
ERROR at line 1:
ORA-02096: specified initialization parameter is not modifiable with this
option
SQL>  alter system set sort_area_size = 65536 deferred;
System altered.