(转)alter system 中SCOPE的含意

(转)alter system 中SCOPE的含义

■哪些参数可以用Alter System修改
alter system 命令可以用来修改数据库的初始化参数。
具体哪些参数可以修改,可以从v$parameter动态性能视图中的列ISSYS_MODIFIABLE中确定。

■alter system的语法
alter system 参数名 = 参数值 [ COMMENT 'text' ][ DEFERRED ][ SCOPE = { MEMORY | SPFILE | BOTH } ][ SID = { 'sid' | * } ]
1)comment 'text'表示要修改的参数的注释。
2)deferred 表示修改的参数应用到以后连接的session
3)scope={ MEMORY | SPFILE | BOTH }
表示所作的修改应用到哪里,内存,spfile文件,或是内存和spfile都修改.
4)SID = { 'sid' | * }
如果选择sid,那么表示修改的是某个session的参数。这个参数只是在真实应用集群环境下有效。
如果要修改所有sid的参数,设置sid='*'
如果要修改某个sid的参数,设置sid='sid' ,sid是指定的要修改的session的sid.

■SCOPE的详细含义
SCOPE的设定取值有如下三种:
1. SCOPE = SPFILE
既适用于动态初始化参数的修改,也使用与静态初始化参数的修改。也是静态参数唯一可以使用的方式。
对参数的修改仅记录在服务器初始化参数文件中,更改将在下次DB启动时生效。
2. SCOPE = MEMORY
只适用于动态初始化参数的修改。静态参数不允许。
对参数的修改仅在内存上,立即生效,但重启后将不再有效,因为并没有写入到初始化参数文件。
DB重启后这个修改会丢失,参数复原为修改前的参数值。
3. SCOPE = BOTH
只适用于动态初始化参数的修改。静态参数不允许。
对参数的修改同时既写入到初始化参数文件,也在内存上修改,立即生效。
★★★★★★★★★
注意:
1. 在修改静态初始化参数时,我们只能指定scope=spfile;
2. 在修改动态初始化参数时,我们可以指定 deferred 关键字来对所做的修改延迟到新的session产生时生效。
★★★★★★★★★