Oracle RAC(Real Application Clusters)環境で、全てのインスタンスに接続しているセッション情報をまとめて確認する方法を紹介します。
GV$SESSIONをSELECT
RAC環境では、V$で始まる動的パフォーマンスビューをGV$に置き換えて検索します。
5インスタンのRAC構成で、1つのホスト(oracl01)からそれぞれのインスタンスにsqlplusで接続した場合、以下のように表示されます。
SQL> SELECT INST_ID, MACHINE, PROGRAM FROM GV$SESSION WHERE PROGRAM LIKE 'sqlplus%';
INST_ID MACHINE PROGRAM
---------- ------------ ------------------------------------------------
1 oracl01 sqlplus@oracl01 (TNS V1-V3)
2 oracl01 sqlplus@oracl01 (TNS V1-V3)
3 oracl01 sqlplus@oracl01 (TNS V1-V3)
4 oracl01 sqlplus@oracl01 (TNS V1-V3)
5 oracl01 sqlplus@oracl01 (TNS V1-V3)
各項目の説明は以下の通りです。
- INST_ID: 各インスタンスの番号(初期化パラメータのINSTANCE_NUMBER)
- MACHINE: 接続しているクライアントのホスト名
- PROGRAM: クライアントホストで動いているプログラム名
RACの場合は、V$で始まる動的パフォーマンスビューをGV$として置き換えれば、先頭項目のINST_IDでどこのインスタンスかが特定できます。
ちなみにシングルインスタンス(非RAC環境)の場合にGV$系のビューを確認すると、INST_IDの値は必ず1になります。