關於調節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

相關文章
相關標籤/搜索