Oracle® Database管理者リファレンス 12c リリース1 (12.1) for Linux and UNIX-Based Operating Systems B71275-11 |
|
前 |
次 |
この付録では、Oracle SolarisでOracle Databaseの管理について説明します。
次のトピックが含まれます:
この項では、最適化共有メモリー(OSM)、緊密共有メモリー(ISM)、動的緊密共有メモリー(DISM)などの共有メモリー・モデルをOracle Databaseで使用する方法について説明します。
内容は次のとおりです。
12c以降、Oracle Databaseは、Oracle Solaris 10 1/13以上およびOracle Solaris 11 SRU 7.5以上のシステムではOracle Solarisの最適化共有メモリー(OSM)モデルを使用して自動メモリー管理を実装します。
OSMを使用すると、インスタンスを再起動することなく、システム・グローバル領域(SGA)のサイズを動的に変更できます。oradism
ユーティリティを使用せず、ディスク領域をスワップします。OSMはNUMA用に最適化されています。
注意: 最適化共有メモリーを使用するには、必ずMEMORY_MAX_TARGET をMEMORY_TARGET より大きい値に設定します。 |
Oracle Solarisで最適化共有メモリー(OSM)が使用されているかどうかを確認するには、次のコマンドを入力します。
$ ipcs -dm
ALLOC
列に整数が表示された場合、OSMが使用されていることを指します。ALLOC
列にハイフンが表示された場合、OSMが使用されていないことを指します。
Oracle Solarisシステム上のOracle Databaseでは、Oracleプロセス間で仮想メモリー・リソースを共有するため、共有メモリー・セグメントとして緊密共有メモリー(ISM)が使用されます。ISMを使用すると、共有メモリー・セグメント全体の物理メモリーが自動的にロックされます。
Oracle Solaris 10 1/13およびOracle Solaris 11 SRU 7.5より前のOracle Solaris 10システムでは、動的緊密共有メモリー(DISM)を使用できます。動的緊密共有メモリーを使用すると、Oracle Databaseではセグメントを共有するプロセス間で仮想メモリー・リソースを共有でき、同時にメモリーのページングも可能になります。このため、オペレーティング・システムでは、共有メモリー・セグメント全体の物理メモリーをロックする必要がありません。
Oracle Solarisでは、共有メモリーが使用されているかどうかを確認するのにipcs -im
コマンドを使用します。次に例を示します。
% ipcs -im IPC status from <system> as of Thu Aug 19 01:09:30 PDT 2013 T ID KEY MODE OWNER GROUP ISMATTCH Shared Memory: m 11 0xacea4150 --rw-rw---- oracle dba 160
ISMATTCH
フィールドには、この共有メモリー・セグメントにアタッチされた160個のプロセスが表示されます。ただし、ISMATTCH
では、緊密共有メモリー(ISM)と動的緊密共有メモリー(DISM)が区別されません。
Oracle Solaris 10 1/13およびOracle Solaris 11 SRU 7.5より前のOracle Solaris 10システムでは、ISMまたはDISMが使用されているかどうかを確認したり、どのメモリーのロック・サービスがアクティブかを確認するのにpmap –xs
コマンドを使用します。次に例を示します。
% ps -aef | grep ora | grep smon oracle 12524 1 0 05:40:13 ? 0:25 ora_smon_prod % pmap –xs 12524 | grep ism 0000000380000000 38010880 38010880 - 38010880 256M rwxsR [ ism shmid=0xb ] 0000000C90000000 131072 131072 - 131072 4M rwxsR [ ism shmid=0xb ] 0000000C98000000 16 16 - 16 8K rwxsR [ ism shmid=0xb ]
注意: ps-aef コマンドは、稼働中のバックグラウンド・プロセスを列挙します。この情報は、Oracleデータベース・インスタンスが稼働中であるかどうか判定します。 |
pmap –xs
コマンドの出力には、ISMが使用されていることを意味するism
アドレス範囲が3つ表示されます。DISMによってメモリー範囲がロックされる場合、出力にはdism
アドレス範囲が表示されます。
Oracle Databaseは、oradism
ユーティリティを使用して共有メモリーのロックおよびロック解除を実行します。oradism
ユーティリティは、インストール時に自動的に設定されます。このため、動的SGAを使用するための構成作業は不要です。
oradism
ユーティリティのプロセス名は、ora_dism_sid
です。sid
はシステム識別子です。DISMを使用している場合、このプロセスはインスタンスの起動時に開始され、インスタンスの停止時に自動的に終了します。
oradism
ユーティリティが正しく設定されていないことを示すメッセージがアラート・ログに表示された場合は、oradism
ユーティリティが$ORACLE_HOME/bin
ディレクトリにあり、スーパーユーザーの権限が付与されていることを確認してください。
注意: 最適化共有メモリー(OSM)では、oradism ユーティリティを使用しません。 |
最適化共有メモリー(OSM)が使用できるOracle Solarisシステムの場合、Oracle DatabaseではOSMが自動的に使用されます。OSMの詳細は、「最適化共有メモリーの概要」を参照してください。
OSMが使用できないシステムの場合、Oracle Databaseでは、次の基準に基づいて緊密共有メモリー(ISM)または動的緊密共有メモリー(DISM)が自動的に選択されます。
システムでDISMを使用でき、SGA_MAX_SIZE
初期化パラメータの値が、結合されたすべてのSGAコンポーネントに必要なサイズよりも大きい場合に、DISMが使用されます。これにより、Oracle Databaseでは、使用される物理メモリー量のみがロックされます。
起動時に共有メモリー・セグメント全体が使用中の場合、またはSGA_MAX_SIZE
パラメータの値が、結合されたすべてのSGAコンポーネントに必要なサイズ以下の場合に、ISMが使用されます。
Oracle Databaseでは、ISMまたはDISMのいずれを使用するかに関係なく、インスタンスの起動後は常に、動的にサイズ変更できるコンポーネント(バッファ・キャッシュなど)、共有プールおよびラージ・プール間でメモリーを交換できます。Oracle Databaseでは、動的SGAコンポーネントからメモリーを解放し、それを別のコンポーネントに割り当てることができます。
DISMの使用時は、共有メモリー・セグメントがメモリー内で暗黙的にロックされないため、Oracle Databaseは起動時に使用している共有メモリーを明示的にロックします。動的なSGA操作によって使用される共有メモリーが増えると、Oracle Databaseは使用中のメモリーを明示的にロックします。動的なSGA操作によって共有メモリーが解放されると、Oracle Databaseは解放されたメモリーを明示的にロック解除するので、解放されたメモリーは他のアプリケーションで使用できるようになります。
注意: サーバー・パラメータ・ファイルのLOCK_SGA パラメータは、TRUE に設定しないでください。設定した場合、Oracle Database 12cは起動できません。 |