oracle三对内存参数间关系之4sga_参数和memory_参数这两类上下级层次参数间的关系

本文详细探讨了Oracle数据库中内存参数sga_target、sga_max_size、memory_target及memory_max_target之间的关系。在AMM开启和关闭时,这些参数的配置有不同的约束条件,例如sga_target必须小于等于sga_max_size,且在AMM开启时,sga_max_size必须小于等于memory_target。错误配置会导致如ORA-00823和ORA-00849等错误。文章通过实例解析了这些参数的相互影响和配置限制。

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

1、SGA_TARGET始终要<=SGA_MAX_SIZE 

否则

ORA-00823: Specified value ofsga_target greater than sga_max_size


AMM启动时(即memory_target=非0)

1、sga_target《memory_target《memory_max_target

如果sga_target>memory_target,则会提示:

ORA-00838:指定的 MEMORY_TARGET 的值太小, 至少应为 XXXX M(该值等于sga_target与pga_aggregate_target之和

因为MEMORY_TARGET》=sga_target与pga_aggregate_target之和)

 

 


2、sga_max_size《memory_target ,否则

ORA-00851:SGA_MAX_SIZE 780140544 cannot be set to more than MEMORY_TARGET 41943

0400.




AMM关闭时(即memory_target=0)

1、sga_target<memory_max_target 否则

ORA-00849:SGA_TARGET 524288000 cannot be set to more than MEMORY_MAX_TARGET 0.


2、sga_max_size可以大于memory_max_target吗?

参数文件里,即使当sga_target《memory_max_target时,如果sga_max_size>memory_max_target,则启动实例时也不会成功,也会出现提示与sga_target>memory_max_target时相同的提示:ORA-00849:SGA_TARGET 524288000 cannot be set to more than MEMORY_MAX_TARGET 0.

只当参数文件里sga_max_size和memory_max_target都为0时,启动实例后,显示的sga_max_size可以大于memory_max_target。



总之,

AMM启动时(即memory_target=非0),sga_max_size《memory_target

sga_target《sga_max_size《memory_target

AMM关闭时(即memory_target=0),由于memory_target=0相当于说memory_target这个参数不起作用此时,所以sga_max_size《memory_max_target:
sga_target《sga_max_size《memory_max_target


原本以为

AMM启动时(即memory_target=非0),sga_target只要《memory_target,以及<=SGA_MAX_SIZE就行sga_max_size和memory_target间可以无相关关系AMM关闭时(即memory_target=0),sga_target只要《memory_max_target以及<=SGA_MAX_SIZE就行sga_max_size和memory_max_target间可以无相关关系。


事实是,在sga_max_size和memory_max_target(或是memory_target

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值