📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

トラブルシューティング



system_history テーブルを使用して、低速クエリ、エラー、リソース使用量、ログインの問題を診断できます。演算子ごとの実行分析(CPU 時間、I/O、スピル、出力行数)には profile_history を使用します。すべてのテーブルはテナントごとに分離されています。

テーブル

system_history.query_history

完全な SQL 実行監査証跡です。すべてのクエリについて、開始/終了ステータスを持つエントリが生成されます。

フィールド型説明
log_typeTINYINTクエリのステータス: 1=Start, 2=Finish, 3=Error, 4=Aborted, 5=Closed
log_type_nameVARCHAR文字列名: "Start", "Finish", "Error", "Aborted", "Closed"
handler_typeVARCHAR使用されたプロトコル(例: HTTPQuery, MySQL)
tenant_idVARCHARテナント識別子
cluster_idVARCHARクラスター識別子
node_idVARCHARノード識別子
sql_userVARCHARクエリを実行したユーザー
sql_user_quotaVARCHARユーザークォータ情報
sql_user_privilegesVARCHARユーザー権限
query_idVARCHAR一意のクエリ識別子
query_kindVARCHARクエリ種別(例: Query, Insert, CopyIntoTable)
query_textVARCHARクエリの SQL テキスト
query_hashVARCHARクエリテキストのハッシュ
query_parameterized_hashVARCHARリテラル値を無視したハッシュ
event_dateDATEイベントの日付
event_timeTIMESTAMPイベントのタイムスタンプ
query_start_timeTIMESTAMPクエリ開始タイムスタンプ
query_duration_msBIGINT合計所要時間(ms、キュー待機 + 実行)
query_queued_duration_msBIGINTキューで待機した時間(ms)
current_databaseVARCHAR使用中のデータベース
written_rowsBIGINT UNSIGNED書き込まれた行数
written_bytesBIGINT UNSIGNED書き込まれたバイト数
join_spilled_rowsBIGINT UNSIGNEDテーブル結合中にスピルした行数
join_spilled_bytesBIGINT UNSIGNEDテーブル結合中にスピルしたバイト数
agg_spilled_rowsBIGINT UNSIGNED集計中にスピルした行数
agg_spilled_bytesBIGINT UNSIGNED集計中にスピルしたバイト数
group_by_spilled_rowsBIGINT UNSIGNEDgroup by 中にスピルした行数
group_by_spilled_bytesBIGINT UNSIGNEDgroup by 中にスピルしたバイト数
written_io_bytesBIGINT UNSIGNEDIO に書き込まれたバイト数
written_io_bytes_cost_msBIGINT UNSIGNEDIO 書き込みコスト(ms)
scan_rowsBIGINT UNSIGNEDスキャンされた行数
scan_bytesBIGINT UNSIGNEDスキャンされたバイト数
scan_io_bytesBIGINT UNSIGNEDスキャン中に読み取られた IO バイト数
scan_io_bytes_cost_msBIGINT UNSIGNEDIO スキャンコスト(ms)
scan_partitionsBIGINT UNSIGNEDスキャンされたパーティション数
total_partitionsBIGINT UNSIGNED関与したパーティション総数
result_rowsBIGINT UNSIGNED結果の行数
result_bytesBIGINT UNSIGNED結果のバイト数
bytes_from_remote_diskBIGINT UNSIGNEDリモートディスクから読み取られたバイト数
bytes_from_local_diskBIGINT UNSIGNEDローカルディスクから読み取られたバイト数
bytes_from_memoryBIGINT UNSIGNEDメモリから読み取られたバイト数
client_addressVARCHARクライアントアドレス
user_agentVARCHARクライアントのユーザーエージェント
exception_codeINT例外コード(0 = 成功)
exception_textVARCHAR例外メッセージ
server_versionVARCHARサーバーバージョン
query_tagVARCHARクエリタグ
has_profileBOOLEANクエリに実行プロファイルがあるかどうか
peek_memory_usageVARIANTピークメモリ使用量(JSON)
session_idVARCHARセッション識別子
session_settingsVARCHARセッション設定

system_history.profile_history

すべてのクエリに対する詳細な実行プロファイルです。演算子ごとの統計情報を抽出するには jq() を使用します。

フィールド型説明
timestampTIMESTAMPプロファイルが記録された時刻
query_idVARCHARクエリ ID
profilesVARIANT演算子の JSON 配列。各要素は id, name, statistics[] を含みます
statistics_descVARIANT統計情報の形式を記述する JSON

統計配列のインデックス: [0]=OutputRows, [1]=OutputBytes, [2]=InputRows, [3]=InputBytes, [4]=CpuTime(ns)。

system_history.log_history

すべての TiDB Cloud Lake ノードおよびコンポーネントからの生ログエントリです。

フィールド型説明
timestampTIMESTAMPログエントリのタイムスタンプ
pathVARCHARソースファイルパスと行番号
targetVARCHAR対象モジュールまたはコンポーネント
log_levelVARCHARログレベル(INFO, ERROR, WARN など)
cluster_idVARCHARクラスター識別子
node_idVARCHARノード識別子
warehouse_idVARCHARWarehouse 識別子
query_idVARCHAR関連するクエリ ID
messageVARCHARログメッセージ(プレーンテキスト)
fieldsVARIANT追加フィールド(JSON)
batch_numberBIGINT内部使用

system_history.access_history

データリネージおよびアクセス制御の監査です。アクセスまたは変更されたすべてのオブジェクトを追跡します。

フィールド型説明
query_idVARCHARクエリ ID
query_startTIMESTAMPクエリ開始時刻
user_nameVARCHARクエリを実行したユーザー
base_objects_accessedVARIANTアクセスされたオブジェクト(JSON 配列)
direct_objects_accessedVARIANT将来の使用のために予約済み
objects_modifiedVARIANTDML によって変更されたオブジェクト(JSON 配列)
object_modified_by_ddlVARIANTDDL によって変更されたオブジェクト(JSON 配列)

JSON オブジェクトのフィールド: object_domain (Database/Table/Stage), object_name, columns[], stage_type, operation_type (Create/Alter/Drop/Undrop), properties。

system_history.login_history

すべてのログイン試行に対する認証監査証跡です。

フィールド型説明
event_timeTIMESTAMPログインイベントのタイムスタンプ
handlerVARCHARプロトコル(例: HTTP, MySQL)
event_typeVARCHARLoginSuccess または LoginFailed
connection_uriVARCHAR接続 URI
auth_typeVARCHAR認証方式(例: Password)
user_nameVARCHARログインを試行したユーザー
client_ipVARCHARクライアント IP アドレス
user_agentVARCHARクライアントのユーザーエージェント
session_idVARCHARセッション ID
node_idVARCHARノード ID
error_messageVARCHAR失敗した場合のエラーメッセージ

簡単な例

直近 1 時間の低速クエリ(>5s)を見つけます。

SELECT query_id, sql_user, query_duration_ms, query_text FROM system_history.query_history WHERE query_duration_ms > 5000 AND event_time > now() - INTERVAL 1 HOUR AND log_type = 2 ORDER BY query_duration_ms DESC LIMIT 20;

失敗したクエリを見つけます。

SELECT query_id, sql_user, exception_code, exception_text, query_text FROM system_history.query_history WHERE exception_code != 0 AND event_time > now() - INTERVAL 1 HOUR ORDER BY event_time DESC;

ログイン失敗を確認します。

SELECT event_time, user_name, client_ip, error_message FROM system_history.login_history WHERE event_type = 'LoginFailed' AND event_time > now() - INTERVAL 24 HOUR ORDER BY event_time DESC;

このページは役に立ちましたか?