ビューまたは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モードでは、ユーザー名と同じ名前のスキーマ名が表示されます。TENANT:このセッションがアクセスしているテナント名を表します。COMMAND:このセッションが実行しているコマンドタイプを表します。TIME:現在のコマンド実行時間を秒単位で表します。コマンドが再試行された場合、システムはゼロリセットして再計算します。TOTAL_TIME:セッション内で実行中のコマンドがある場合、コマンドの開始から現在までの経過時間を表します。実行中のコマンドがない場合、現在の状態でのセッションの継続時間を秒単位で表します。STATE:このセッションの現在の状態を表します。INFO:このセッションが実行しているステートメントを表します。PROXY_SESSID:ODPを介してデータベースに接続している場合、この列にはODPノード上のSession IDが表示されます。それ以外の場合はNULLと表示されます。MASTER_SESSID:ODPを介してデータベースに接続している場合、この列にはODPノード上のマスターSession IDが表示されます。これは、同一SQLの複数のサブSessionを連携させるために使用されます。それ以外の場合は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を満たす場合、クライアント側でそのtraceログが強制的に出力されるようマークされ、その情報は後続のリンクコンポーネントに伝達されます。条件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:このSessionがどのサービス名によって作成されたかを表します。値がNULLの場合、そのSessionはサービス名によって作成されていないことを意味します。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ポート番号を表します。