データベースの実行中に、必要に応じて現在のクラスタ内のスレッドの状態を確認し、問題のトラブルシューティングやパフォーマンス診断を行うことができます。
背景
スレッドはワーカースレッドとバックグラウンドスレッドに分類されます。ワーカースレッドはテナントごとに区別され、テナントワーカースレッドとも呼ばれます。バックグラウンドスレッドには、サブテナントを持つスレッドと持たないスレッドがあります。
手順
管理者ユーザーとして、クラスタのMySQLテナントまたはOracleテナントにログインします。
以下のコマンドを実行して、スレッドの状態を確認します。
MySQLモード
SELECT * FROM oceanbase.GV$OB_THREAD;クエリの一部の結果例を以下に示します。
+----------------+----------+-----------+------+-----------------+--------+------------+------------+-----------------------------------+ | SVR_IP | SVR_PORT | TENANT_ID | TID | TNAME | STATUS | LATCH_WAIT | LATCH_HOLD | TRACE_ID | +----------------+----------+-----------+------+-----------------+--------+------------+------------+-----------------------------------+ | xx.xx.xx.xx | 2882 | 1002 | 7268 | T1002_MFLaunch | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7267 | T1002_MergeSche | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7266 | T1002_FrzInfoDe | Wait | | | YB42AC1E87F4-0005FBC6A0F81772-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7265 | T1002_ServerPro | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7264 | T1002_Occam | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7263 | T1002_L0_G2 | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7262 | T1002_L0_G2 | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7102 | T1002_L0_G0 | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7101 | T1002_L0_G0 | Wait | | | Y0-0000000000000000-0-0 | | xx.xx.xx.xx | 2882 | 1002 | 7100 | T1002_L0_G0 | Wait | | | Y0-0000000000000000-0-0 | +----------------+----------+-----------+------+-----------------+--------+------------+------------+-----------------------------------+ 10 rows in setOracleモード
SELECT * FROM SYS.GV$OB_THREAD;クエリの一部の結果例を以下に示します。
+----------------+----------+-----------+------+--------------+--------+------------+------------+-------------------------+ | SVR_IP | SVR_PORT | TENANT_ID | TID | TNAME | STATUS | LATCH_WAIT | LATCH_HOLD | TRACE_ID | +----------------+----------+-----------+------+--------------+--------+------------+------------+-------------------------+ | xx.xx.xx.xx | 2882 | 1004 | 7372 | T1004_CdcSrv | Sleep | NULL | NULL | Y0-0000000000000000-0-0 | +----------------+----------+-----------+------+--------------+--------+------------+------------+-------------------------+ 1 row in set
クエリ結果の各行は1つのスレッドを表します。異なる時間にクエリを実行した場合、結果は異なる場合があります。新しいスレッドが作成されるたびに、システムはテーブルにそのスレッド情報の新しい行を追加します。同様に、スレッドが終了すると、システムはそのスレッドが存在する行をテーブルから削除します。
クエリ結果の一部のフィールドについて説明します。
フィールド説明SVR_IP 現在のスレッドが存在するOBServerノードのIPアドレス SVR_PORT 現在のスレッドが存在するOBServerノードのポート番号 TENANT_ID 現在のスレッドが属するテナント。プロセスレベルのスレッドでは tenant_idは500になります。TID スレッド番号 TNAME スレッド名 STATUS スレッドの状態: - Run:スレッドが実行状態にあることを示す
- Wait:スレッドが待機状態にあることを示す
- Sleep:スレッドがスリープ状態にあることを示す
- Join:スレッドが別のスレッドの終了を待っていることを示す
LATCH_WAIT 現在のスレッドが待機中のLatchのアドレス LATCH_HOLD 現在のスレッドが保持しているLatchのアドレス。複数含まれる場合あります TRACE_ID 現在のスレッドで実行中のTraceのID ビュー
GV$OB_THREADのフィールドについて詳しくは、GV$OB_THREADを参照してください。
詳細を見る
OceanBaseデータベースのスレッドの詳細については、スレッドの概要を参照してください。