プライマリ・コンテンツに移動
Oracle® Database管理者リファレンス
12c リリース1 (12.1) for Linux and UNIX-Based Operating Systems
B71275-11
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

A Oracle SolarisでのOracle Databaseの管理

この付録では、Oracle SolarisでOracle Databaseの管理について説明します。

次のトピックが含まれます:

Oracle Solarisの共有メモリー環境

A.1 Oracle Solarisの共有メモリー環境

この項では、最適化共有メモリー(OSM)、緊密共有メモリー(ISM)、動的緊密共有メモリー(DISM)などの共有メモリー・モデルをOracle Databaseで使用する方法について説明します。

内容は次のとおりです。

A.1.1 最適化共有メモリーの概要

12c以降、Oracle Databaseは、Oracle Solaris 10 1/13以上およびOracle Solaris 11 SRU 7.5以上のシステムではOracle Solarisの最適化共有メモリー(OSM)モデルを使用して自動メモリー管理を実装します。

OSMを使用すると、インスタンスを再起動することなく、システム・グローバル領域(SGA)のサイズを動的に変更できます。oradismユーティリティを使用せず、ディスク領域をスワップします。OSMはNUMA用に最適化されています。

A.1.2 最適化共有メモリーのチェック


注意:

最適化共有メモリーを使用するには、必ずMEMORY_MAX_TARGETMEMORY_TARGETより大きい値に設定します。

Oracle Solarisで最適化共有メモリー(OSM)が使用されているかどうかを確認するには、次のコマンドを入力します。

$ ipcs -dm

ALLOC列に整数が表示された場合、OSMが使用されていることを指します。ALLOC列にハイフンが表示された場合、OSMが使用されていないことを指します。

A.1.3 ISMおよびDISMの概要

Oracle Solarisシステム上のOracle Databaseでは、Oracleプロセス間で仮想メモリー・リソースを共有するため、共有メモリー・セグメントとして緊密共有メモリー(ISM)が使用されます。ISMを使用すると、共有メモリー・セグメント全体の物理メモリーが自動的にロックされます。

Oracle Solaris 10 1/13およびOracle Solaris 11 SRU 7.5より前のOracle Solaris 10システムでは、動的緊密共有メモリー(DISM)を使用できます。動的緊密共有メモリーを使用すると、Oracle Databaseではセグメントを共有するプロセス間で仮想メモリー・リソースを共有でき、同時にメモリーのページングも可能になります。このため、オペレーティング・システムでは、共有メモリー・セグメント全体の物理メモリーをロックする必要がありません。

A.1.4 ISMまたはDISMのチェック

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アドレス範囲が表示されます。

A.1.5 oradismユーティリティの概要

Oracle Databaseは、oradismユーティリティを使用して共有メモリーのロックおよびロック解除を実行します。oradismユーティリティは、インストール時に自動的に設定されます。このため、動的SGAを使用するための構成作業は不要です。

oradismユーティリティのプロセス名は、ora_dism_sidです。sidはシステム識別子です。DISMを使用している場合、このプロセスはインスタンスの起動時に開始され、インスタンスの停止時に自動的に終了します。

oradismユーティリティが正しく設定されていないことを示すメッセージがアラート・ログに表示された場合は、oradismユーティリティが$ORACLE_HOME/binディレクトリにあり、スーパーユーザーの権限が付与されていることを確認してください。


注意:

最適化共有メモリー(OSM)では、oradismユーティリティを使用しません。

A.1.6 Oracle DatabaseによるOSM、ISMおよびDISMの選択方法

最適化共有メモリー(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は起動できません。