动态参数与静态参数的判断、修改

来源:这里教程网 时间:2026-03-03 14:47:16 作者:

https://www.cnblogs.com/liang-ning/p/11903502.html 视图 v$parameter 中 ISSYS_MODIFIABLE 列能够查看参数属性,ISSYS_MODIFIABLE =' IMMEDIATE'为动态参数、 ISSYS_MODIFIABLE =' FALSE' 为静态参数 、 ISSYS_MODIFIABLE =' DERERRED' 为延迟参数(当前会话不生效,后续的会话有效) 。 1 参数总数SQL> select count(*) from v$parameter where  issys_modifiable='IMMEDIATE';       --动态   COUNT(*) ----------        228 SQL> select count(*) from v$parameter where  issys_modifiable='FALSE';        --静态   COUNT(*) ----------        116 SQL> select count(*) from v$system_parameter where issys_modifiable='DEFERRED';      --延迟   COUNT(*) ----------      8 2 查看oracle参数是静态或者是动态 (根据 ISSYS_MODIFIABLE 的值判断)SQL> select name,value,ISSYS_MODIFIABLE from v$parameter where name ='undo_retention' ; NAME             VALUE    ISSYS_MOD -------------------- ---------- --------- undo_retention         1500    IMMEDIATE 3 ALTER SYSTEM SET 中 SCOPE=SPFILE/MEMORY/BOTH 的区别:SCOPE = SPFILE (此更改写入初始化参数文件,更改将在下次启动时生效。动态参数与静态参数都一样可以。也是静态参数唯一可以使用的方式。) SCOPE = MEMORY (只在内存上修改,立即生效,但重启后将不再生效,因为并没有写入到初始化参数文件。只适用于动态参数,静态参数则不允许。) SCOPE = BOTH. (既写入到初始化参数文件,也在内存上修改,立即生效。同样也只适用于动态参数,静态参数则不允许。) 4 参数的修改a)动态参数(只有动态参数也可以不用制定)SQL> alter system set undo_retention=10800 scope=both; System altered. b)静态参数SQL> alter system set processes=151 scope=spfile; System altered. 若不知道是静态还是动态,制定后会报错,然后再改过来就好了 SQL>  alter system set processes=151 scope=both;  alter system set processes=151 scope=both                   * ERROR at line 1: ORA-02095: specified initialization parameter cannot be modified 注意:(scope=spfile 或者 scope=both 下)任何参数的修改都不能自动同步到pfile中去,只会写进spfile,所以修改完参数后最好create pfile from spfile ,手动同步参数创建pfile,以保证下次通过pfile能够正常启动数据库。

相关推荐