Oracle 10g中 sga_max_size 与 sga_target的关系

Oracle 10g中 sga_max_size 与 sga_target的关系 ,之前看到这些时候闷闷的 也模糊的知道里面的到底是咋回事, 从网上看了偏帖子后算是不清楚了,妈的长篇大论了半天没给我说出什么两者的关系;

sga_max_size是相对于操作系统来讲的,当启动oracle时,一次性分配给oracle实例的sga不会超过sga_max_size值;而sga_target是相对于oracle这个正在运行的应用软件来说的,在系统已经分配了sga_max_size值的内存给oracle的前提下,对sga_target值进修改。对sga_max_size修改时,scope只对spfile生效。
  第一次启动oracle时,sga_target与sga_max_size数值一样。

SQL> show parameter sga;

NAME  

                         TYPE          VALUE 
------------------------------------ ---------------------------------------------
lock_sga                         boolean        FALSE 
pre_page_sga                     boolean         FALSE
sga_max_size                     big integer     892M
sga_target                       big integer     892M


一、对sga_max_size提高、降低的限制

1、用户调高sga_max_size,不对sga_target进行修改,重启oracle时,sga_max_size会相应变化

SQL> alter system set sga_max_size=1024mscope=spfile;

System altered.

SQL> show parameter sga;

NAME                            TYPE          VALUE
------------------------------------ ---------------------------------------------
lock_sga                         boolean       FALSE 
pre_page_sga                    boolean       FALSE
sga_max_size                    big integer    892M
sga_target                      big integer    892M
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size 2026296 bytes
Variable Size 377488584 bytes
Database Buffers 687865856 bytes
Redo Buffers 6361088 bytes
Database mounted.
Database opened.
SQL> show parameter sga

NAME                            TYPE          VALUE
------------------------------------ ---------------------------------------------
lock_sga                         boolean       FALSE
pre_page_sga                    boolean        FALSE
sga_max_size                    big integer    1G
sga_target                      big integer    892M


2、当用户调整sga_max_size的大小,使其小于sga_target,重新启动oracle的时候,系统分配给sga_max_size将参照sga_target值

SQL> alter system set sga_max_size=520mscope=spfile;

System altered.

SQL> show parameter sga

NAME                            TYPE          VALUE
------------------------------------ ---------------------------------------------
lock_sga                         boolean       FALSE
pre_page_sga                    boolean        FALSE
sga_max_size                    big integer    1G
sga_target                      big integer    892M
SQL> shutdown immediate
startup
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> ORACLE instance started.

Total System Global Area 935329792 bytes
Fixed Size 2025168 bytes
Variable Size 243271984 bytes
Database Buffers 683671552 bytes
Redo Buffers 6361088 bytes
Database mounted.
Database opened.
SQL> show parameter sga

NAME                            TYPE          VALUE
------------------------------------ ---------------------------------------------
lock_sga                         boolean       FALSE
pre_page_sga                    boolean        FALSE
sga_max_size                    big integer     892M
sga_target                      big integer    892M

二、对sga_target提高、降低的限制
3、想提高sga_target值使其大于sga_max_size,需先提高sga_max_size值,重启oracle后才能修改并提高sga_target值

SQL> show parameter sga

NAME                            TYPE          VALUE
------------------------------------ ---------------------------------------------
lock_sga                         boolean       FALSE
pre_page_sga                    boolean        FALSE
sga_max_size                    big integer    892M
sga_target                      big integer    892M 

SQL> alter system set sga_target=1024mscope=both;
alter system set sga_target=1024m scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value isinvalid
ORA-00823: Specified value of sga_target greater thansga_max_size


SQL> alter system set sga_max_size=1024mscope=spfile;

System altered.

SQL> alter system set sga_target=1024mscope=both;
alter system set sga_target=1024m scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value isinvalid
ORA-00823: Specified value of sga_target greater thansga_max_size


SQL> shutdown immediate
startup
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size 2026296 bytes
Variable Size 385877192 bytes
Database Buffers 679477248 bytes
Redo Buffers 6361088 bytes
Database mounted.
Database opened.
SQL> show parameter sga

NAME                            TYPE          VALUE
------------------------------------ ---------------------------------------------
lock_sga                        boolean       FALSE
pre_page_sga                    boolean        FALSE

sga_max_size                    big integer    1G

sga_target                      big integer    892M              

SQL> alter system set sga_target=1gscope=both;


System altered.

SQL> show parameter sga

NAME                            TYPE          VALUE
------------------------------------ ---------------------------------------------
lock_sga                        boolean       FALSE
pre_page_sga                    boolean       FALSE
sga_max_size                    big integer    1G
sga_target                      big integer    1G                                               
总结:1、sga_max_size值调大、调小不受sga_target的限制,但若要让sga_max_size调小后的值生效,则必须先降低sga_target的大小,然后再修改sga_max_size,重启使其生效;
2、sga_target调高,必须在sga_max_size范围内,调小不受sga_max_size的限制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值