oracle中both,ORACLE:scope=both|memery|spfile

关于ISSYS_MODIFIABLE影响修改:

当修改参数时,可以指定范围,是修改到spfile,还是内存中.还是全部修改.

alter system set parameter name=parameter value scope=both|memery|spfile

ISSYS_MODIFIABLE   IMMEDIATE 修改后立即生效

FALSE     修改后重启后生效

DEFERRED  会话重连后生效

d3222530da060dc5ff43d8603876f390.png

当修改的参数ISSYS_MODIFIABLE=FALSE时,必须要scope=spfile,否则报错,如下:

d60135a9273c076cb1aee7c136610659.png

关于粒度大小影响修改:

1.把启动用的spfile:spfileorclsp.ora改为名spfileorclsp.ora.bak

2.alter system set db_cache_size=23M scope=spfile

( alter system set service_names='*******'  #默认设置scope=both)

报错:文件不存在.(Oracle并不对spfile锁定,在运行的过程中,可以任意改名)

可以理解,因为spfile不存在,报错.

3.alter system set db_cache_size=24M scope=both

没有报错,按理来说,both表示即修改到spfile,还有memery中,既然是有修改到spfile,则应该也报错才对?重新启动,发现db_cache_size还是原来的23M,不是24M

4.把spfile的文件名原改回来.记录了时间,发现alter system set db_cache_size=23M scope=both时,并没有对spfile进行读写,因为此文件的修改日期没有改变.

5.再试一次:alter system set db_cache_size=15M  scope=both,终于变了spfile的修改日期

总结:当范围是scope=both时,会修改到memery中,但是不一定会修改到spfile中,是否修改与粒度有关,假如我的机器中的一个粒度大小为4M,则在4M范围内改变时,真正的值是不变的.也就是也只有修改量的幅度大于4M时,才会去修改到spfile.

提示:scope=both是默认选项,也就是alter system set db_cache_size=24M scope=both与alter system set db_cache_size=24M的结果是一样的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值