目次
はじめに
Verticaの各種ログファイルについて紹介します。ユーザが参照する一般的なログファイルとして、以下の4種類のログファイルがあります。
1. vertica.log
2. startup.logとdbLog
3. COPYコマンドのエラーログ
4. Database Designerの実行ログ
2. startup.logとdbLog
3. COPYコマンドのエラーログ
4. Database Designerの実行ログ
各種ログファイル
それぞれのログファイルの特徴は以下の通りです。vertica.log
vertica.logにはクエリの実行内容、Move Out/Merge Outの実行、エラーなどデータベース起動中に発生した様々なできごとが出力されます。
・出力先
カタログ・ディレクトリ/データベース名_ノード名_catalog/
・ファイル名
vertica.log
・ログローテート
週次、またはログファイルのサイズが10MBを超えた場合にローテート。
・ログ出力例
この例では、vsqlから「SELECT * FROM table1;」を実行した場合の出力内容(該当箇所のみ抜粋)
カタログ・ディレクトリ/データベース名_ノード名_catalog/
・ファイル名
vertica.log
・ログローテート
週次、またはログファイルのサイズが10MBを超えた場合にローテート。
・ログ出力例
この例では、vsqlから「SELECT * FROM table1;」を実行した場合の出力内容(該当箇所のみ抜粋)
1 |
2018-12-25 19:27:25.673 Init Session:7f1dfa7fc700 [Session] <INFO> [Query] TX:0(v_dwh_node0001-430301:0xcad00) select * from table1; |
ログの内容(下線部分)から、2018-12-25 19:27:25に該当クエリが実行されたことがわかります。
startup.logとdbLog
startup.logにはデータベース起動中の情報が出力されます。dbLogはデータベースの起動時にvertica.logが初期化される前のログが出力されます。
データベースの起動に失敗した際などでの診断で使います。
・出力先
カタログ・ディレクトリ/データベース名_ノード名_catalog/
・ファイル名
startup.log
・ログローテート
なし(Verticaが起動する度にstartup.logは上書きされるので、時間経過によってサイズが肥大化する事はありません。)
・ ログ出力例
この例では、「どのノード」が「どうなった」、「いつ」の情報が読み取れます。
カタログ・ディレクトリ/データベース名_ノード名_catalog/
・ファイル名
startup.log
・ログローテート
なし(Verticaが起動する度にstartup.logは上書きされるので、時間経過によってサイズが肥大化する事はありません。)
・ ログ出力例
この例では、「どのノード」が「どうなった」、「いつ」の情報が読み取れます。
1 2 3 4 5 6 |
{ "node" : "v_testdb_node0001", "stage" : "Startup Complete", "text" : "Node is UP", "timestamp" : "2018-12-11 10:23:39.088" } |
・出力先
カタログ・ディレクトリ/データベース名/
・ファイル名
dbLog
・ログローテート
週次のローテート、52世代分をキープ(52週間=13ヶ月分)
カタログ・ディレクトリ/データベース名/
・ファイル名
dbLog
・ログローテート
週次のローテート、52世代分をキープ(52週間=13ヶ月分)
COPYコマンドのエラーログ
データロード時に使うCOPYコマンドのログファイルです。このログファイルはCOPY実行時に問題が発生した場合にのみ作成されます。
・出力先ディレクトリ
カタログ・ディレクトリ/v_データベース名_ノード名_catalog/CopyErrorLogs/
・ファイル名
テーブル名-csvファイル名-copy-from-exceptions(ロードに失敗した理由が出力されます)
テーブル名-csvファイル名-copy-from-rejected-data(ロードに失敗した行データが出力されます)
テーブル名-STDIN-copy-from-exceptions(ロードに失敗した理由が出力されます)
テーブル名-STDIN-copy-from-rejected-data(ロードに失敗した行データが出力されます)
以下のように、CSVを標準出力から読み込んでロードし、なおかつエラーになった場合はログファイル名にSTDINが含まれます。
カタログ・ディレクトリ/v_データベース名_ノード名_catalog/CopyErrorLogs/
・ファイル名
テーブル名-csvファイル名-copy-from-exceptions(ロードに失敗した理由が出力されます)
テーブル名-csvファイル名-copy-from-rejected-data(ロードに失敗した行データが出力されます)
テーブル名-STDIN-copy-from-exceptions(ロードに失敗した理由が出力されます)
テーブル名-STDIN-copy-from-rejected-data(ロードに失敗した行データが出力されます)
以下のように、CSVを標準出力から読み込んでロードし、なおかつエラーになった場合はログファイル名にSTDINが含まれます。
1 |
$ cat csvファイル | vsql -w データベース名 -c "COPY テーブル名 FROM STDIN DELIMITER '区切り文字' DIRECT" |
・ログローテート
なし
・ログ出力例
この例では、3列のテーブルに対して、4列のCSVをロードした場合のエラーログを記載しています。
1 2 3 |
COPY: Input record 1 has been rejected (The 15-byte value is too long for type Varchar(10), column 3 (店舗)). Please see /home/dbadmin/test/v_test_node0001_catalog/CopyErrorLogs/table1-cp_err.csv-copy-from-rejected-data, record 1 for the rejected record. COPY: Loaded 0 rows, rejected 1 rows. |
Database Designerの実行ログ
Database Designer(以下、DBD)を実行した時に、出力されるログファイルです。・出力先
DBD実行時に指定
・ファイル名
designer.log
・ログローテート
なし
・ログ出力例:この例では、クエリスペシフィックプロジェクション用に指定したSQLファイルの内容に誤りがあった場合の例を記載しています。
指定したSQLファイル内のクエリ
DBD実行時に指定
・ファイル名
designer.log
・ログローテート
なし
・ログ出力例:この例では、クエリスペシフィックプロジェクション用に指定したSQLファイルの内容に誤りがあった場合の例を記載しています。
指定したSQLファイル内のクエリ
SELECT 日付,顧客ID,売上高 FROM table1 WHERE 日付 > 20150705;
1 2 3 4 5 6 |
2018-12-25 19:39:17 [Designer.sendCommand] Status: 0. Result: ['', 'DETAIL: Operator does not exist: date > int', ' Number of accepted queries =0', ' Number of queries referencing non-design tables =0', ' Number of unsupported queries =0', ' Number of illegal queries =1', ''] |
ログの内容(DETAIL:の箇所)から、WHERE句の比較がdate型 > int型になっていたためエラーが発生していたこと がわかります。
なお、Database Designerを実行した画面上にも簡易的なログが出力されますが、エラーの原因までは出力されません。
Database Designerの画面出力内容(エラー出力箇所のみ抜粋)
1 2 3 4 5 6 |
Loading queries from '/home/dbadmin/testd/cs_pro.sql'. Processed 1 SQL statement(s), only 0 accepted and considered in the design. Identified issues: 1 SQL statement(s) are invalid - REJECTED. Unknown error while running Database Designer. |