- ベストアンサー
SGAメモリがエラーで増やせない
- Oracle9iDatabase Release 2(9.2.0) for Linuxスタートガイドを参考にして、Red Hat Linux Advaced Server 2.1上にOracle9i Databese Release 2をインストールしました。
- インストール時に、パラメータを変更するとORA-27123とORA-27102のエラーが発生し、共有メモリーセグメントに連結できませんでした。
- sga_max_sizeを1813060544に設定することが限界であり、カーネルパラメータの設定が理解できず進めれませんでした。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Red Hat Linux Advaced Server 2.1とOracle9i Databese Release 2の組み合わせで行える事は出来ていると思います。 一般的には、 genksmsで、SGA base を 0x20000000 にすることで、SGAとして (0x80000000-0x20000000) の領域(約1.5GByte)が使用できます。 Kernelを変更しTASK_UNMAPPED_BASEを(0x80000000/3) に設定することで、SGAの開始アドレスが 0x50000000 になり、(0xc0000000-0x50000000)の領域、約1.7GByte使用可能になります。 しかし、RedHat Linux Advanced Server 2.1では、デフォルトのOSの設定で約1.7GByte使用可能に設定されているようです。 また、Oracle9i Release2 からは拡張バッファ・キャッシュ(VLM:Very Large Memory 最大約62GByte)のサポートが行われているので、DB CACHEとして、4GByteよりも大きいメモリーを割り当てて使用することができます。 OracleでVLMを有効にするには、init<sid>.ora の、USE_INDIRECT_DATA_BUFFERSをtrueに設定すれば良いと思います。 Linuxで拡張VLMを使用するには、使用するメモリー量と同じかそれ以上のサイズのshmfsを/dev/shmに作成します。(10Gbyteなら、mount -t shm shmfs -o size=10g /dev/shm なかんじ) 私の説明より下記の情報の方が役に立つと思います。 Oracle on Linuxを大容量メモリを使用して構築する際の基本情報 http://www.oracle.co.jp/2shin/ora81/18_19.html Linuxで大きなSGAを獲得する方法について http://www.ashisuto.co.jp/standard/tec/vol75/sga_linux.pdf また、大きなメモリをすんなり使うためには64bit版のOracleとOSが良いと思います。
お礼
nieveさん ありがとうございます。 流石、回答の達人ですね! 要点を記述して頂き、更に参考資料を教えて頂いて! メモリ管理について大変スッキリしました。