ビューまたはSQLステートメントを使用して、テナントのセッションを確認できます。
注意点
このドキュメントは、OceanBaseデータベースのバージョンV4.3.0、ODPのバージョンV4.2.3を例に操作手順を説明します。バージョンや設定によって実行結果が異なる場合があります。ODPのパラメータ値の確認および設定方法については、パラメータ説明を参照してください。
ビューを使用したテナントセッションの確認
クラスタのMySQLテナントまたはOracleテナントにログインします。
以下のステートメントを実行して、テナントのセッション情報を確認します。
テナント管理者は、現在のテナント内のすべてのセッション情報を確認できますが、通常のユーザーは自身のセッション情報のみを確認できます。
PROCESS権限を持っている場合は、すべてのセッションを確認できます。MySQLモード
obclient [oceanbase]> SELECT * FROM oceanbase.GV$OB_PROCESSLIST\Gクエリ結果は次のとおりです:
*************************** 1. row *************************** SVR_IP: 172.xx.xxx.xxx SVR_PORT: 2882 SQL_PORT: 2881 ID: 3221487622 USER: root HOST: 100.xx.xxx.xxx:49451 DB: test TENANT: mysql001 COMMAND: Sleep TIME: 631.462197 TOTAL_TIME: 631.462197 STATE: SLEEP INFO: NULL PROXY_SESSID: NULL MASTER_SESSID: NULL USER_CLIENT_IP: 100.xx.xxx.xxx USER_HOST: % RETRY_CNT: 0 RETRY_INFO: 0 SQL_ID: TRANS_ID: 3413 THREAD_ID: 0 SSL_CIPHER: NULL TRACE_ID: NULL TRANS_STATE: ACTIVE ACTION: MODULE: CLIENT_INFO: LEVEL: 1 SAMPLE_PERCENTAGE: 10 RECORD_POLICY: SAMPLE_AND_SLOW_QUERY LB_VID: NULL LB_VIP: NULL LB_VPORT: NULL IN_BYTES: 448 OUT_BYTES: 0 USER_CLIENT_PORT: 49451 TOTAL_CPU_TIME: 0 PROXY_USER: SERVICE_NAME: NULL TOTAL_CPU_TIME: 0 TOP_INFO: NULL MEMORY_USAGE: NULL *************************** 2. row *************************** SVR_IP: 172.xx.xxx.xxx SVR_PORT: 2882 SQL_PORT: 2881 ID: 3221487623 USER: root HOST: 100.xx.xxx.xxx:14422 DB: NULL TENANT: mysql001 COMMAND: Query TIME: 0.005717 TOTAL_TIME: 0.005774 STATE: ACTIVE INFO: SELECT * FROM oceanbase.GV$OB_PROCESSLIST PROXY_SESSID: NULL MASTER_SESSID: NULL USER_CLIENT_IP: 100.xx.xxx.xxx USER_HOST: % RETRY_CNT: 0 RETRY_INFO: 0 SQL_ID: 2E175335D36600B7A8EC72C5094888DD TRANS_ID: 0 THREAD_ID: 33799 SSL_CIPHER: NULL TRACE_ID: YB42A************** TRANS_STATE: ACTION: MODULE: CLIENT_INFO: LEVEL: 1 SAMPLE_PERCENTAGE: 10 RECORD_POLICY: SAMPLE_AND_SLOW_QUERY LB_VID: NULL LB_VIP: NULL LB_VPORT: NULL IN_BYTES: 449 OUT_BYTES: 0 USER_CLIENT_PORT: 14422 TOTAL_CPU_TIME: 0 PROXY_USER: SERVICE_NAME: NULL TOTAL_CPU_TIME: 0 TOP_INFO: NULL MEMORY_USAGE: NULL 2 rows in setOracleモード
obclient [SYS]> SELECT * FROM SYS.GV$OB_PROCESSLIST\Gクエリ結果は次のとおりです:
*************************** 1. row *************************** SVR_IP: 172.xx.xxx.xxx SVR_PORT: 2882 SQL_PORT: 2881 ID: 3221487626 USER: SYS HOST: 100.xx.xxx.xxx:25945 DB: SYS TENANT: oracle001 COMMAND: Sleep TIME: 14 TOTAL_TIME: 14 STATE: SLEEP INFO: NULL PROXY_SESSID: NULL MASTER_SESSID: NULL USER_CLIENT_IP: 100.xx.xxx.xxx USER_HOST: % RETRY_CNT: 0 RETRY_INFO: 0 SQL_ID: NULL TRANS_ID: 6343 THREAD_ID: 0 SSL_CIPHER: NULL TRACE_ID: NULL TRANS_STATE: ACTIVE ACTION: NULL MODULE: NULL CLIENT_INFO: NULL LEVEL: 1 SAMPLE_PERCENTAGE: 10 RECORD_POLICY: SAMPLE_AND_SLOW_QUERY LB_VID: NULL LB_VIP: NULL LB_VPORT: NULL IN_BYTES: 447 OUT_BYTES: 0 USER_CLIENT_PORT: 25945 TOTAL_CPU_TIME: 0 PROXY_USER: NULL SERVICE_NAME: NULL TOTAL_CPU_TIME: 0 TOP_INFO: NULL MEMORY_USAGE: NULL *************************** 2. row *************************** SVR_IP: 172.xx.xxx.xxx SVR_PORT: 2882 SQL_PORT: 2881 ID: 3221487625 USER: SYS HOST: 100.xx.xxx.xxx:24782 DB: SYS TENANT: oracle001 COMMAND: Query TIME: 0 TOTAL_TIME: 0 STATE: ACTIVE INFO: SELECT * FROM SYS.GV$OB_PROCESSLIST PROXY_SESSID: NULL MASTER_SESSID: NULL USER_CLIENT_IP: 100.xx.xxx.xxx USER_HOST: % RETRY_CNT: 0 RETRY_INFO: 0 SQL_ID: 0A6CF0E2AB2C1A1917AB1FFDF2BE9CFF TRANS_ID: 0 THREAD_ID: 34190 SSL_CIPHER: NULL TRACE_ID: YB42A*************** TRANS_STATE: NULL ACTION: NULL MODULE: NULL CLIENT_INFO: NULL LEVEL: 1 SAMPLE_PERCENTAGE: 10 RECORD_POLICY: SAMPLE_AND_SLOW_QUERY LB_VID: NULL LB_VIP: NULL LB_VPORT: NULL IN_BYTES: 449 OUT_BYTES: 0 USER_CLIENT_PORT: 24782 TOTAL_CPU_TIME: 0 PROXY_USER: NULL SERVICE_NAME: NULL TOTAL_CPU_TIME: 0 TOP_INFO: NULL MEMORY_USAGE: NULL 2 rows in set
クエリ結果の関連フィールドの説明は以下のとおりです:
SVR_IP:このセッションが属するサーバーのIPアドレス、つまりOBServerノードのIPアドレスを示します。SVR_PORT:このセッションが属するサーバーのRPCポート番号、つまりOBServerノードのRPCポート番号を示します。SQL_PORT:このセッションが属するサーバーのSQLポート番号、つまりOBServerノードのSQLポート番号を示します。ID:このセッションのIDを示します。USER:このセッションが属するユーザーを示します。HOST:このセッションを開始したクライアントのIPアドレスとポート番号を示します。説明
このドキュメントは、OceanBaseデータベースのバージョンV4.3.0、ODPのバージョンV4.2.3、およびODPのパラメータ
client_session_id_version =2を例に説明しています。OceanBaseデータベースV4.3.0以前のバージョン、ODP V4.2.3以前のバージョン、またはODPがV4.2.3バージョンでパラメータがclient_session_id_version =2に設定されていない場合、データベースに直接接続する場合、このフィールドはこのセッションを開始したクライアントのIPアドレスとポート番号を表します。ODPを介してデータベースに接続する場合、このフィールドはODPのホストIPアドレスとポート番号を表します。DB:このセッションが現在接続しているデータベースの名前を示します。Oracleモードでは、ユーザー名と同じ名前のSchema名が表示されます。TENANT:このセッションがアクセスするテナント名を示します。COMMAND:このセッションで実行中のコマンドタイプを示します。TIME:現在のコマンド実行時間を秒単位で示します。コマンドが再試行された場合、システムは時間をリセットして再計算します。TOTAL_TIME:セッション内で実行中のコマンドがある場合、コマンドの開始から現在までの経過時間を示します。実行中のコマンドがない場合、そのセッションが現在の状態で継続している時間を秒単位で示します。STATE:このセッションの現在の状態を示します。INFO:このセッションで実行中のステートメントを示します。PROXY_SESSID:ODPを介してデータベースに接続している場合、この列にはODPノード上のSession IDが表示されます。それ以外の場合はNULLと表示されます。MASTER_SESSID:ODPを介してデータベースに接続している場合、この列にはODPノード上のマスターSession IDが表示されます。これは同一SQLの複数のサブセッションをつなぐために使用されます。それ以外の場合はNULLと表示されます。USER_CLIENT_IP:このセッションを開始したクライアントのIPアドレスです。USER_HOST:このセッションを開始したクライアントのホスト名です。RETRY_CNT:現在のコマンドの再試行回数です。RETRY_INFO:現在のコマンドの再試行情報で、通常は最後の再試行時のエラーコードです。SQL_ID:現在のコマンドに対応するSQL ID情報です。TRANS_ID:トランザクションIDです。THREAD_ID:スレッドIDです。ODPを介してデータベースに接続している場合、このスレッドIDはODPノード上のSession IDを表すこともあります。SSL_CIPHER:暗号化パスワード名です。TRACE_ID:Trace IDです。TRANS_STATE:トランザクションの状態です。IDLE:アイドル状態。トランザクションが開始されていないことを示します。ACTIVE:トランザクションが明示的に開始されました。START TRANSACTION、BEGINなどのステートメントで明示的に開始されます。IMPLICIT_ACTIVE:トランザクションが暗黙的に開始されました。autocommit = onモードで、DMLなどのデータ変更ステートメントを実行するとトランザクションが開始されます。ROLLBACK_SAVEPOINT:トランザクションがセーブポイントまでロールバック中です。IN_TERMINATE:トランザクションが終了中です。内部原因による終了や、ユーザーが発行したトランザクション終了(例えば、COMMIT、ROLLBACKステートメントの実行)が含まれます。ABORTED:トランザクションが異常により内部で終了またはロールバックされました。ROLLED_BACK:トランザクションがロールバックされました。COMMIT_TIMEOUT:トランザクションコミットがタイムアウトしました。COMMIT_UNKNOWN:トランザクションのコミット結果が不明です。COMMITTED:トランザクションが正常にコミットされました。
ACTION:DBMS_APPLICATION_INFO.SET_ACTIONProcedureを呼び出して設定された、現在実行中の操作名です。MODULE:DBMS_APPLICATION_INFO.SET_MODULEProcedureを呼び出して設定された、現在実行中の操作名です。CLIENT_INFO:DBMS_APPLICATION_INFO.SET_CLIENT_INFOプロシージャで設定された情報です。LEVEL:このセッションのエンドツーエンド・トレースのモニタリングレベルを表します。例えば、1はレベル1の診断情報を意味します。SAMPLE_PERCENTAGE:このセッションのエンドツーエンド・トレースのサンプリング頻度を表します。例えば、10は診断情報を10%の確率でサンプリングすることを意味します。RECORD_POLICY:このセッションのエンドツーエンド・トレースの記録ポリシーを表します。主に以下の3つのポリシーをサポートしています:ALL:サンプリングが有効なすべてのトレースのイベント情報をログファイルに出力します。各Span終了時にログファイルに出力されます。ONLY_SLOW_QUERY:サンプリングが有効なすべてのトレースのイベント情報のうち、スロークエリに該当するリクエストのトレースのみをログファイルに出力し、その他は破棄します。この出力ポリシーでは、トレースログの出力タイミングは、リクエストが終了してスロークエリと判定された後です。Proxyでは、ルートSpan、すなわちトランザクションレベルのSpanについては、スロークエリが検出された際にルートSpanを出力します。
SAMPLE_AND_SLOW_QUERY:サンプリングが有効なすべてのトレースのイベント情報のうち、以下のいずれかの条件を満たすトレースをログファイルに出力します:- 隠れパラメータ
_print_sample_ppmを使用して万分の一の確率でサンプリングし、サンプリング結果が選択された場合にのみログに出力する場合 ONLY_SLOW_QUERYポリシーの出力条件を満たす場合
さらに、このモードでは、ログの出力タイミングもSpan終了時ではありません。条件1を満たす場合は、クライアント側でそのトレースログが強制的に出力されるようマークされ、その情報は後続のリンクコンポーネントに渡されます。条件2を満たす場合は、出力タイミングは
ONLY_SLOW_QUERYポリシーと同じです。エンドツーエンド・トレースの詳細については、エンドツーエンド・トレースを参照してください。
- 隠れパラメータ
LB_VID:パブリッククラウド環境でロードバランシングを介してデータベースに直接接続する場合、この列にはロードバランシングサービスのVPC IDが表示されます。その他のシナリオでは常にNULLが表示されます。LB_VIP:パブリッククラウド環境でロードバランシングを介してデータベースに直接接続する場合、この列にはクライアントがロードバランシングサービスに接続するIPアドレスが表示されます。その他のシナリオでは常にNULLが表示されます。LB_VPORT:パブリッククラウド環境でロードバランシングを介してデータベースに直接接続する場合、この列にはクライアントがロードバランシングサービスに接続するポート番号が表示されます。その他のシナリオでは常にNULLが表示されます。IN_BYTES:このセッションのインフロトラフィック。OUT_BYTES:このセッションのアウトフロトラフィック。USER_CLIENT_PORT:このセッションを開始したクライアントのポート番号。PROXY_USER:プロキシユーザーログインシナリオではプロキシユーザー名を表示し、非プロキシユーザーログインシナリオでは空文字を表示します。SERVICE_NAME:このセッションがどのサービス名によって作成されたかを表します。値がNULLの場合、そのセッションはサービス名によって作成されていないことを意味します。TOTAL_CPU_TIME:現在のコマンド実行にかかったCPU時間、単位は秒です。コマンドが再試行された場合、システムはクリアされません。TOP_INFO:実行中のSQLが存在する最上位PLステートメントの情報を表示します。MEMORY_USAGE:単一のSQLステートメントが現在使用しているメモリサイズ、単位はバイトです。
SHOW PROCESSLISTステートメントまたはSHOW FULL PROCESSLISTステートメントでテナントセッションを確認する
SHOW PROCESSLIST ステートメントまたは SHOW FULL PROCESSLIST ステートメントを使用して、テナントのセッションを確認することもできます。
テナントのセッションを確認する際、テナント管理者は現在のテナント内のすべてのセッション情報を確認できますが、通常のユーザーは自身のセッション情報のみを確認できます。PROCESS 権限を持っている場合は、すべてのテナント内のすべてのセッションを確認できます。ユーザー権限の関連操作については、ユーザー権限の確認(Oracleモード)およびユーザー権限の確認(MySQLモード)を参照してください。必要な権限がない場合は、管理者に連絡し、追加してもらってください。ユーザー権限の追加に関する操作については、直接権限付与(Oracleモード)および直接権限付与(MySQLモード)を参照してください。
ユーザーがクラスタのMySQLテナントまたはOracleテナントにログインします。
以下のコマンドを実行して、テナントのセッションを確認します。
SHOW PROCESSLISTステートメントを使用してテナントセッションを確認する注意
このドキュメントは、OceanBaseデータベースバージョンV4.3.0、ODPバージョンV4.2.3、およびODPのパラメータ
client_session_id_version =2を例に説明しています。OceanBaseデータベースV4.3.0以前のバージョン、ODP V4.2.3以前のバージョン、またはODPがV4.2.3バージョンでパラメータがclient_session_id_version =2に設定されていない場合、ODP経由でデータベースに接続すると、SHOW PROCESSLISTステートメントは対応するODPノード上のセッション情報を表示します。直接接続でデータベースに接続すると、SHOW PROCESSLISTステートメントはテナントに対応するOBServerノード上のセッション情報を表示します。obclient [SYS]> SHOW PROCESSLIST;クエリ結果は次のとおりです:
+------------+------+----------------------+------+---------+------+--------+------------------+ | ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO | +------------+------+----------------------+------+---------+------+--------+------------------+ | 3221488068 | SYS | 100.xx.xxx.xxx:18985 | SYS | Sleep | 298 | SLEEP | NULL | | 3221488078 | SYS | 100.xx.xxx.xxx:32489 | SYS | Query | 0 | ACTIVE | SHOW PROCESSLIST | +------------+------+----------------------+------+---------+------+--------+------------------+ 2 rows in set関連フィールドの説明は以下のとおりです:
Id:このセッションのIDを表します。User:このセッションが属するユーザーを表します。Host:このセッションを開始したクライアントのIPアドレスとポート番号を表します。db:このセッションが現在接続しているデータベースの名前を表します。Oracleモードでは、ユーザー名と同じ名前のスキーマ名が表示されます。Command:このセッションが実行しているコマンドのタイプを表します。Time:現在のコマンド実行時間を秒単位で表します。コマンドが再試行された場合、システムは時間をリセットして再計算します。State:このセッションの現在の状態を表します。Info:このセッションが実行しているステートメントを表します。
SHOW FULL PROCESSLISTステートメントを使用してテナントセッションを確認するobclient [SYS]> SHOW FULL PROCESSLIST;クエリ結果は次のとおりです:
+------------+------+-----------+----------------------+------+---------+------+--------+-----------------------+----------------+------+ | ID | USER | TENANT | HOST | DB | COMMAND | TIME | STATE | INFO | IP | PORT | +------------+------+-----------+----------------------+------+---------+------+--------+-----------------------+----------------+------+ | 3221488068 | SYS | oracle001 | 100.xx.xxx.xxx:18985 | SYS | Sleep | 548 | SLEEP | NULL | 172.xx.xxx.xxx | 2881 | | 3221488078 | SYS | oracle001 | 100.xx.xxx.xxx:32489 | SYS | Query | 0 | ACTIVE | SHOW FULL PROCESSLIST | 172.xx.xxx.xxx | 2881 | +------------+------+-----------+----------------------+------+---------+------+--------+-----------------------+----------------+------+ 2 rows in set関連フィールドの説明は以下のとおりです:
ID:このセッションのIDを表します。USER:このセッションが属するユーザーを表します。TENANT:このセッションがアクセスしているテナント名を表します。HOST:このセッションを開始したクライアントのIPアドレスとポート番号を表します。ODPを介してデータベースに接続している場合は、ODPのホストIPアドレスとポート番号を表します。DB:このセッションが現在接続しているデータベースの名前を表します。Oracleモードでは、ユーザー名と同じ名前のスキーマ名として表示されます。COMMAND:このセッションが実行しているコマンドタイプを表します。TIME:現在のコマンド実行時間を秒単位で表します。コマンドが再試行された場合、システムは時間をリセットして再計算します。STATE:このセッションの現在の状態を表します。INFO:このセッションで実行されたステートメントを表します。IP:このセッションが属するサーバーのIPアドレス、すなわちOBServerノードのIPアドレスを表します。PORT:このセッションが属するサーバーのSQLポート番号、すなわちOBServerノードのSQLポート番号を表します。