sga_target大小調整

安佰勝發表於2010-08-25

sga_target是動態引數,可以調整後馬上生效的
但是前提是當前分配的sga_max_size下必須能夠承載分配的記憶體量
這個引數的值只有0和非零兩種選擇,非零時時和sga_max_size大小保持一致的
所以如果要吧sga_target改成大於sga_max_size的值就必須按照靜態引數的改法,重新啟動例項
重啟後預設的sga_max_size會自動調整到和sga_target一樣大小的

---------------------

版本
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Prod
PL/SQL Release 10.1.0.2.0 - Production
CORE    10.1.0.2.0      Production
TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
NLSRTL Version 10.1.0.2.0 - Production

使用spfile
SQL> show parameter spfile

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
spfile                               string                 F:\ORACLE\PRODUCT\10.1.0\DB_1\

調整前
SQL> set wrap off
SQL> set linesize 159
SQL> show parameter sga

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

調整為小於sga_max_size
SQL> alter system set sga_target=200m;

System altered.

SQL> show parameter sga

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

調整為大於sga_max_size
SQL> alter system set sga_target=500m;
alter system set sga_target=500m
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00823: Specified value of sga_target greater than sga_max_size


按照靜態引數的方式調整
SQL> alter system set sga_target=500m scope=spfile;

System altered.

SQL> show parameter sga

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

重啟驗證
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  524288000 bytes
Fixed Size                   789672 bytes
Variable Size             145486680 bytes
Database Buffers          377487360 bytes
Redo Buffers                 524288 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            500M
sga_target                           big integer            500M

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13177610/viewspace-671812/,如需轉載,請註明出處,否則將追究法律責任。

相關文章