关于调节sga一些大小

今天在调节sga大小的时候遇到了一个报错sql

SQL> alter system set sga_target=600 scope=both;
alter system set sga_target=600 scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00827: could not shrink sga_target to specified value

首先看一下数据库相关配置数据库

SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 600M
sga_target                           big integer 600M
SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 0
memory_target                        big integer 0
shared_memory_address                integer     0

很明显能够看出来这是一个asmm下的oracle,难道以前不能调节是由于动态或者静态的关系,而后作了如下实验oracle

SQL> alter system set sga_target=700 scope=spfile;

System altered

结果发现果真是只能够在spfile中修改,重启后生效,但是后来我继续作实验发现一个颇有趣的事情
ide

SQL> alter system set sga_target=400M scope=both;

System altered.

这是为何呢,为何这个sga如今又能够在both里面能够用了呢,查阅文档发现一个原来10g以前是不能够调节sga_target的大小的,可是以后出现了一个参数sga_max_size,这个参数让sga_target能够真正的本身调节,只要在sga_max_size如下,全部的sga_target是能够静态或者动态自动调节的。
spa

相关文章
相关标签/搜索