共有メモリアドレスを特定する方法 (Linux環境)¶
セットアップ資材のスクリプト「get_sga_address.sh」を使用しないで共有メモリアドレスを特定する方法を紹介します。 スクリプト「get_sga_address.sh」の使用方法は製品のインストールガイドを参照してください。
1つの監視対象DBに、1つのインスタンスがある場合¶
1つの監視対象DBに1つのインスタンスがある場合、key値が「0x00000000」以外のキーが1つ表示されますので、正しい共有メモリアドレス(IPC Key)を特定できます。
IPC Keyを確認します。
ipcs -m 実行例) ------ Shared Memory Segments ------ Key shmid owner perms bytes nattch status 0x00000000 3702785 root 644 80 2 ... 0x00000000 4751378 oracle 640 4096 0 0x992513cc 4784147 oracle 640 4096 0 <--監視対象の共有メモリアドレス
1つの監視対象DBに、複数のインスタンスがある場合¶
1つの監視対象DBに複数のインスタンスがある場合、正しいIPC Key値を特定する必要があります。 ここでは、oradebugを使用してIPC Keyを特定する方法を紹介します。
IPC Keyを確認します。(MaxGaugeOSユーザと同じ結果が表示されることを確認)
ipcs -m 実行例) ------ Shared Memory Segments ------ Key shmid owner perms bytes nattch status 0x00000000 3702785 root 644 80 2 ... 0x00000000 4751378 oracle 640 4096 0 0x992513cc 4784147 oracle 640 4096 0 <--監視対象の共有メモリアドレス? 0x222313rt 4988881 oracle 640 4096 0 <--監視対象の共有メモリアドレス?
下記コマンドを実行して、Oracleのトレースファイルを作成します。
注釈
oracleのOSユーザとMaxGaugeのOSユーザの$ORACLE_SIDが異なる場合、「export ORACLE_SID={MaxGaugeユーザの$ORACLE_SID}」を実行してから、下記を実行します。
sqlplus / as sysdba SET HEADING OFF TIME OFF TIMING OFF ECHO OFF PAGESIZE 0 TRIMSPOOL ON FEEDBACK OFF oradebug setmypid oradebug ipc oradebug tracefile_name -->トレースファイルの出力先を確認する 実行例) sqlplus / as sysdba SYS> oradebug setmypid Statement processed. SYS> oradebug ipc Information written to trace file. SYS> oradebug tracefile name /u01/app/oracle/admin/orcl/udump/orcl_ora_00000.trc
作成したトレースファイルを確認します。
skgm overhead
区間のshmid値
を確認し、shmidに該当するIPC key値
を「ipcs -m」コマンド結果と照らして確認します。下記例では、shmid「4784147」のIPC Key「0x992513cc」が監視対象インスタンスの共有メモリアドレスと特定します。
実行例) cat /u01/app/oracle/admin/orcl/udump/orcl_ora_00000.trc Area #5 `skgm overhead' containing Subareas 5-5 Total size 0000000000003000 Minimum Subarea size 00000000 Area Subarea Shmid Stable Addr Actual Addr 5 5 4784147 0x00000092000000 0x00000092000000