x86 Linux 環境での拡張バッファ・キャッシュ機能の設定手順
その1でも説明したとおり、結論から言うと大容量のメモリを利用してイン・メモリ・データベースを構築するのであれば、x86-64環境を構築するのが望ましいわけですが、せっかくですので備忘録として x86 Linux環境で拡張バッファ・キャッシュ機能を利用する際の設定手順をまとめておきます。1.メモリー内ファイル・システムの設定
rootユーザーで次のコマンドを実行し、/dev/shmマウントポイントを作成します。(8GB割り当てる場合)mount -t tmpfs shmfs -o size=8g /dev/shm
※システムの再起動時にメモリー内ファイル・システムが確実にマウントされるようにするには、/etc/fstabファイルに次のエントリを追加します。
shmfs /dev/shm tmpfs size=8g 0 0
2.VLMウィンドウ・サイズへの対応(Red Hat Enterprise Linux 3以降のみ)
1) プロセスごとのロック・メモリーのデフォルトの最大サイズを増やすために /etc/security/limits.confファイルに次のエントリを追加します。
oracle soft memlock 3145728 oracle hard memlock 3145728
2) sshを使用してシステムにログインする場合、sshセッションの開始時にロック・メモリーのデフォルト値を使用できるようにするために、/etc/ssh/sshd_configファイルに次のエントリを追加します。
UsePrivilegeSeparation no
3.初期化パラメータの編集
拡張バッファ・キャッシュ機能を設定するため、初期化パラメータを編集します。1) USE_INDIRECT_DATA_BUFFERSの追加
拡張バッファ・キャッシュ機能を有効にするために USE_INDIRECT_DATA_BUFFERS初期化パラメータを追加し、TRUEに設定します。
USE_INDIRECT_DATA_BUFFERS=TRUE
2) 自動共有メモリ管理の無効化
自動共有メモリ管理機能を使用している場合、これを無効化するために SGA_TARGET初期化パラメータの値を 0にします。
SGA_TARGET=0
3)データベース・バッファ・キャッシュ・サイズの設定
拡張バッファ・キャッシュ機能を利用する場合、データベース・バッファ・キャッシュ・サイズは DB_BLOCK_BUFFERS初期化パラメータで設定します。
DB_BLOCK_BUFFERS=[ブロック数]
また、以下の初期化パラメータは使用できませんので削除します。
DB_CACHE_SIZE DB_2K_CACHE_SIZE DB_4K_CACHE_SIZE DB_8K_CACHE_SIZE DB_16K_CACHE_SIZE
4)共有プールサイズ、ラージプールサイズ、Javaプールサイズの設定
自動共有メモリ管理機能を使用できなくなるため、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZEを明示的に指定します。
SHARED_POOL_SIZE=[byte] LARGE_POOL_SIZE=[byte] JAVA_POOL_SIZE=[byte]
4.Oracleの起動
初期化パラメータを編集した後、Oracleを起動します。SQL>startup ORACLEインスタンスが起動しました。 Total System Global Area 8841592832 bytes Fixed Size 778036 bytes Variable Size 317464780 bytes Database Buffers 8522825728 bytes Redo Buffers 524288 bytes データベースがマウントされました。 データベースがオープンされました。Database Buffersに拡張・バッファ・キャッシュに割り当てたサイズが表示されます。
※/dev/shmに対してlsコマンドを実行しても確認できます。
ls -al /dev/shm 合計 8323087 drwxrwxrwt 2 root root 60 1月 16 15:43 . drwxr-xr-x 9 root root 6400 1月 16 13:25 .. -rw-r----- 1 oracle oinstall 8522825728 1月 16 15:43 ora_orcl_2376463
参考:「Oracle Database管理者リファレンス10g リリース2(10.2)for UNIX Systems」
【関連記事】
[Oracle] x86 Linux 環境での拡張バッファ・キャッシュの利用(その1)
[Oracle] x86 Linux 環境での拡張バッファ・キャッシュの利用(その2)
[Oracle] x86 Linux 環境での拡張バッファ・キャッシュの利用(その3)