データベースの実行中に、必要に応じて現在のクラスタ内のスレッド状態を確認し、問題のトラブルシューティングやパフォーマンス診断を行うことができます。
背景
スレッドは、ワーカースレッドとバックグラウンドスレッドに分類されます。ワーカースレッドはテナントごとに区別され、テナントワーカースレッドとも呼ばれます。一方、バックグラウンドスレッドには、サブテナントを区別するスレッドと区別しないスレッドの両方が含まれます。
手順
管理者ユーザーがクラスタの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データベースのスレッドに関する詳細は、スレッドの概要を参照してください。