目次
はじめに
クエリの処理中にVerticaが検出したエラーとワーニングをシステムテーブルを
検索して確認する方法をご紹介します。
システムテーブル
ERROR_MESSAGES
カラム名 | データ型 | 説明 |
---|---|---|
NODE_NAME | TIMESTAMPTZ | ノードの名前 |
USER_ID | VARCHAR | ユーザーの識別子 |
USER_NAME | INTEGER | ユーザーの名前 |
SESSION_ID | VARCHAR | セッションの識別子 |
REQUEST_ID | VARCHAR | クエリリクエストの一意の識別子 |
TRANSACTION_ID | INTEGER | トランザクションの識別子 |
STATEMENT_ID | INTEGER | ステートメントの一意の識別子 |
ERROR_LEVEL | VARCHAR | エラーの重大度。 ・LOG ・INFO ・NOTICE ・WARNING ・ERROR ・ROLLBACK ・INTERNAL ・FATAL ・PANIC |
ERROR_CODE | INTEGER | エラーコード |
MESSAGE | VARCHAR | エラーメッセージ |
DETAIL | VARCHAR | エラーメッセージに関する詳細情報 |
HINT | VARCHAR | エラーに関する実用的なヒント。 例えば: HINT: Set the locale in this session to en_US@collation=binary using the command "\locale en_US@collation=binary" |
実行例
システムテーブル(ERROR_MESSAGES)を検索
1 2 3 4 5 6 7 8 9 10 11 12 |
dbadmin=> SELECT event_timestamp, user_name, message,transaction_id,statement_id FROM error_messages ORDER BY event_timestamp DESC; event_timestamp | user_name | message | transaction_id | statement_id -------------------------------+-----------+--------------------------------------------------------------------------------------------------------------+-------------------+-------------- 2020-07-09 03:15:18.246526+09 | test | Insufficient resources to execute plan on pool general [Request exceeds session memory cap: 5696KB > 0KB] | 45035996273893802 | 1 ★ ① 2020-07-09 02:05:35.107844+09 | dbadmin | Relation "test" does not exist | 45035996273891681 | 1 ★ ② 2020-07-09 02:04:04.675791+09 | | Invalid username or password | 45035996273891669 | -1 ★ ③ (3 rows) 【上記エラーの内容】 ①:メモリが不足していたためエラーとなっています。 ②:"test"テーブルが存在しないためエラーになっています。 ③:ログイン時のパスワードが違うためエラーになっています。 |
エラーになったクエリを確認することが可能
①の”transaction_id”と”statement_id”を条件にシステムテーブル(query_requests)を検索します。
1 2 3 4 5 |
dbadmin=> select request from query_requests where transaction_id = 45035996273893802 and statement_id = 1; request ------------------------- select * from test_tbl; ★①で実行されたクエリ (1 row) |
注意事項
ERROR_MESSAGESに保存期間はありませんが、格納されるサイズが10MBに制限されています。
10MBを超えた場合は、古い情報から削除されていきます。
長期間保存されたい場合は、ERROR_MESSAGESの検索結果を定期的にファイルに出力するか、下記の参考情報にあるサイズの拡張を行ってください。
【参考情報】
「システムテーブルの保存条件について」
http://vertica-tech.ashisuto.co.jp/datacollector/
検証バージョンについて
この記事の内容はVertica 10.0で確認しています。
更新履歴
2020/07/10 本記事を公開