修改参数
可以通过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
SQL> show parameter db_cache_advice
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
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>