Oracle (Oracle 11g)が稼働しているサーバ(今回は仮想環境)のメモリを 4GB から 16GB に増設したので、その後にしなければいけない事、した方がいいことを忘れないようにメモしておきたいと思います。
ポイントとしては、Oracleに割り当てるメモリ(自動メモリー管理のサイズ)は 10GB としたいと思います。
ちなみに SGA や PGA などに割り当てられるメモリは自動メモリー管理になっていますが、メモリを増設してOSを起動しただけではOracleの自動メモリー管理の認識サイズは変わりません。
shmのサイズを拡張する
memory_max_target のサイズよりOSの /dev/shm のサイズが大きい必要があります。
通常、/dev/shm のサイズはOS搭載メモリの半分のサイズが割り当てられるっぽいので、まずはこのサイズを拡張します。
今回は自動メモリー管理のサイズを 10GB とするので、とりあえず /dev/shm のサイズは 12GB とします。
$ cp -p /etc/fstab /etc/fstab.20160120 $ vi /etc/fstab *************************************************************************************** tmpfs /dev/shm tmpfs defaults 0 0 ↓ size=12g を追加 tmpfs /dev/shm tmpfs defaults,size=12g 0 0 *************************************************************************************** $ reboot
これで完了です。
自動メモリー管理のサイズを変更する
続いてOracleの自動メモリー管理のサイズを変更します。
OEMでも可能ですが、とりあえずSQLで実行してみます。
まずはSPファイルを念の為にバックアップ。
$ cd /opt/oracle/product/11.2.0/dbhome_1/dbs/ $ cp -p spfileorcl.ora spfileorcl.ora.20160120-MemoryUpdate
続いて最大メモリーサイズを変更。
$ sqlplus sys as sysdba SQL> ALTER SYSTEM SET memory_max_target='10737418240' SCOPE=SPFILE; SQL> shutdown immediate SQL> startup
正常に最大メモリー・サイズが変更されていることを確認します。問題がなければ続いて合計メモリー・サイズを変更します。
$ sqlplus sys as sysdba SQL> ALTER SYSTEM SET memory_target='10737418240' SCOPE=BOTH;
これで完了です。