一般情况需要指定scope=spfile的参数都要重启后才能生效的。
v$parameter视图的ISSYS_MODIFIABLE会指明该参数能否使用ALTER SYSTEM命令进行修改,并且什么时候生效。
该列的可能取值有3种:
IMMEDIATE:可以使用ALTER SYSTEM修改,立即生效。
DEFERRED:可以使用ALTER SYSTEM修改,后面的session中生效
FALSE:不可以使用ALTER SYSTEM修改。重新启动实例后生效。
在oracle数据库日常运维中,免不了要修改参数,但是在写检修计划前总是困惑是否需要重启数据库。
(1) 查看oracle版本
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10gEnterpriseEdition Release10.2.0.5.0 - 64bi
PL/SQL Release10.2.0.5.0 - Production
CORE 10.2.0.5.0 Production
TNS for Linux: Version10.2.0.5.0 - Production
NLSRTL Version10.2.0.5.0 - Production
(2) 查看更改类型
SQL> select distinct ISSYS_MODIFIABLE from v$system_parameter;
ISSYS_MOD
---------
IMMEDIATE
FALSE
DEFERRED
其中,IMMEDIATE 立即生效, DEFERRED 只对后续的session生效, FLASE 必须重启生效
(3)查看哪些参数不需要重启
SQL> select name,ISSYS_MODIFIABLE from v$system_parameter where ISSYS_MODIFIABLE!='FALSE' order by 2;
所得的结果即是不需要重启的参数。