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

本文详细解析了Oracle数据库中参数的动态与静态属性,通过视图v$parameter的ISSYS_MODIFIABLE列来区分参数类型。介绍了如何使用ALTER SYSTEM命令进行参数修改,包括SCOPE选项的SPFILE、MEMORY和BOTH的区别,以及修改后的参数如何同步到pfile。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视图 v$parameter 中 ISSYS_MODIFIABLE 列能够查看参数属性,ISSYS_MODIFIABLE ='IMMEDIATE’为动态参数、 ISSYS_MODIFIABLE =‘FALSE’ 为静态参数 、 ISSYS_MODIFIABLE =‘DERERRED’ 为延迟参数(当前会话不生效,后续的会话有效) 。

  1. 参数总数:
    SQL> select count(*) from v$system_parameter where issys_modifiable=‘IMMEDIATE’;

COUNT(*)

   353

SQL> select count(*) from v$system_parameter where issys_modifiable=‘FALSE’;

COUNT(*)

   116

SQL> select count(*) from v$system_parameter where issys_modifiable=‘DEFERRED’;

COUNT(*)

     8
  1. 查看oracle参数是静态或者是动态 (根据 ISSYS_MODIFIABLE 的值判断)

select name,value,ISSYS_MODIFIABLE from v$parameter where name =‘undo_retention’ ;

  1. ALTER SYSTEM 中 SCOPE=SPFILE/MEMORY/BOTH 的区别:

SCOPE = SPFILE
(此更改写入初始化参数文件,更改将在下次启动时生效。动态参数与静态参数都一样可以。也是静态参数唯一可以使用的方式。)

SCOPE = MEMORY
(只在内存上修改,立即生效,但重启后将不再生效,因为并没有写入到初始化参数文件。只适用于动态参数,静态参数则不允许。)

SCOPE = BOTH.
(既写入到初始化参数文件,也在内存上修改,立即生效。同样也只适用于动态参数,静态参数则不允许。)

  1. 参数的修改

动态参数修改:

SQL> alter system set undo_retention=10800 scope=both;

System altered.

静态参数修改,需要指定 scope=spfile 下次启动:
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

SQL> alter system set processes=151 scope=spfile;

System altered.

注意:(scope=spfile 或者 scope=both 下)任何参数的修改都不能自动同步到pfile中去,只会写进spfile,所以修改完参数后最好create pfile from spfile ,手动同步参数创建pfile,以保证下次通过pfile能够正常启动数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值