Minimalizace paměti pro Oracle XE

Nastavit minimum paměti pro Oracle XE instanci je snadné. Pokud používáte SPFILE (doporučeno, zejména pokud pracujete přes APEX), můžete parametry nastavit rovnou "z fleku". Jako sysdba je potřeba provést:

SQL> show parameters sga

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

SQL> alter system set sga_max_size=300m scope=spfile;

System altered.

SQL> alter system set sga_target=300m;

System altered.

SQL> show parameters pga;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 200M

SQL> alter system set pga_aggregate_target=80m;

System altered.

Doporučená minimální hodnota pro nějaké to experimentování je 400 MB pro SGA a 100 MB pro PGA. Doporučuji nastavit také hodnotu sga_max_size, abyste si byli jisti, že tuhle hodnotu Oracle nepřekročí. Případně ji můžete nastavit o něco výše než je sga_target a doufat, že bude mít databáze paměti dost a vejde se to nařízeného cílového stavu.

Menší hodnoty při jenom trošku náročnějším používání mohou skončit také tak, že se Oracle XE "zasekne" a nepůjde shodit init skriptem ani standardní cestou. V případě "zaseknutí" je nutné přihlásit se jako uživatel "oracle", nastavit si potřebné proměnné a provést SHUTDOWN ABORT.

export ORACLE_BASE=/usr/lib/oracle/xe/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/server
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=XE

$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Sep 15 14:09:42 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected.
SQL> SHUTDOWN ABORT

Pakliže preferujete PFILE konfiguraci, stačí poeditovat soubor /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/dbs/init.ora. Pozor! Nesplést se souborem /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/init.ora! V souboru nastavte tyto hodnoty:

# 100 MB minimum (100000000), default 805306368
sga_target=400000000
sga_max_size=400000000

# 20 MB minimum (20000000), default 268435456
pga_aggregate_target=100000000

Ujistěte se, že instance nepoužívá SPFILE soubor (u Oracle XE je to vždy spfileXE.ora). Pokud tento soubor existuje, init.ora se nepoužije a musíte hodnoty nastavovat výše uvedeným způsobem.
15 September 2010 | oracle
twitter.com linkedin.com
google.com/+ facebook.com
flickr.com youtube.com