天天看点

修改参数时scope参数值的作用

修改参数

可以通过alter system或者导入导出来更改spfile的内容

从oracle9i开始,alter system命令增加了一个新的选项scope,scope参数有3个可选值:memory,spfile和both

memory:只改变当前实例运行,重新启动数据库后失效

spfile:只改变spfile的设置,不改变当前实例运行,重新启动数据库后生效

both:同时改变实例及spfile,当前更改立即生效,重新启动数据库后仍然有效.

针对rac环境,alter system还可以指定sid参数,对不同实例进行不同设置.

所以通过spfile修改参数的完整命令如下:

alter system set = scope=memory|spfile|both [sid=]

带有scope=both参数的语句与不带scope参数的效果是一样的

当scope=memory时

修改当前实例的db_cache_advice参数为off;

sql> show parameter db_cache_advice

name                                 type        value

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

db_cache_advice                      string      on

sql>alter system set db_cache_advice=off scope=memory;

system altered

db_cache_advice                      string      off

如果观察alert_.log文件,可以发现其中记录了如下一行

alter system set db_cache_advice=off scope=memory;

如果重新启动数据库,这个更改将会丢失

重置spfile参数

当想恢复参数为缺省值是可以使用以下命令:

alter system reset parameter sid='sid|*';=memory|spfile|both>