実行中の全ての処理を強制的に終了したい場合は、CLOSE_ALL_SESSIONS を利用します。
CLOSE_ALL_SESSIONS コマンド
CLOSE_ALL_SESSIONS コマンドの構文およびパラメータの説明は、次のとおりです。
構文
CLOSE_ALL_SESSIONS()
パラメータ
なし
全てのセッションを終了する場合
1) SESSIONS システムテーブルで、接続されているセッションを確認します。
※通常は、SESSIONS システムテーブルを検索することで、各ノードのログイン・セッション情報を取得可能です。しかし、非常に高負荷の状況では、まれに自ノード以外のセッション情報を取得できない事があります(仕様上の動作です)。
dbadmin=> \x
Expanded display is on.
dbadmin=> select node_name, user_name, client_hostname, session_id,
dbadmin-> client_label, statement_start, current_statement, client_type, client_os
dbadmin-> from sessions
dbadmin-> order by statement_start desc;
-[ RECORD 1 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
node_name | v_testdb_node0003
user_name | dbadmin
client_hostname | ::1:49274
session_id | v_testdb_node0003-4324:0x192
client_label |
statement_start | 2018-04-18 15:51:52.29687+09
current_statement | select node_name, user_name, client_hostname, session_id, client_label, statement_start, current_statement, client_type, client_os from sessions order by statement_start desc; //自セッションのSELECT実行
client_type | vsql
client_os | Linux 3.10.0-693.el7.x86_64 x86_64
-[ RECORD 2 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
node_name | v_testdb_node0001
user_name | dbadmin
client_hostname | 172.16.21.61:41958
session_id | v_testdb_node0001-5333:0x2c1
client_label | MC //MCから接続中
statement_start | 2018-04-18 15:51:43.991613+09
current_statement |
client_type | JDBC Driver
client_os | Linux 3.10.0-693.el7.x86_64 amd64
-[ RECORD 3 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
node_name | v_testdb_node0002
user_name | dbadmin
client_hostname | ::1:41926
session_id | v_testdb_node0002-4303:0x1ac
client_label |
statement_start | 2018-04-18 15:50:55.544173+09
current_statement | select * from lineorder order by 1,2,3,4,5,6,7,8 desc; //vsqlからSELECT実行中
client_type | vsql
client_os | Linux 3.10.0-693.el7.x86_64 x86_64
-[ RECORD 4 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
node_name | v_testdb_node0001
user_name | dbadmin
client_hostname | ::1:48562
session_id | v_testdb_node0001-5333:0x35
client_label |
statement_start | 2018-04-18 15:50:01.041859+09
current_statement | copy LINEORDER from '/nfs/ssbm/csv/lineorder_100000000.tbl'; //vsqlからCOPY実行中
client_type | vsql
client_os | Linux 3.10.0-693.el7.x86_64 x86_64
-[ RECORD 5 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
node_name | v_testdb_node0001
user_name | dbadmin
client_hostname | ::1:49268
session_id | v_testdb_node0001-5333:0x349
client_label |
statement_start | 2018-04-18 15:43:04.135239+09
current_statement |
client_type | vsql //vsqlから接続中
client_os | Linux 3.10.0-693.el7.x86_64 x86_64[SESSIONS]
カラム名 | 説明 |
|---|---|
NODE_NAME | 接続先のVerticaノード名 |
USER_NAME | 接続しているDBユーザ名 |
CLIENT_HOSTNAME | クライアント側のホスト名 |
SESSION_ID | セッションID |
CLIENT_LABEL | クライアントから接続する時に指定されたユーザー定義のラベル名 |
STATEMENT_START | ステートメントが開始された時間 |
CURRENT_STATEMENT | 現在実行中のステートメント |
CLIENT_TYPE | Verticaへの接続方法。以下のいずれかが出力 |
CLIENT_OS | クライアントのOS |
2) CLOSE_ALL_SESSIONS で全てのセッションを終了します。
dbadmin=> select close_all_sessions();
-[ RECORD 1 ]------+------------------------------------------------------------------------
close_all_sessions | Close all sessions command sent. Check v_monitor.sessions for progress.3) 実行中の処理は終了し、ユーザーには以下のエラーが返されます。
dbadmin=> select * from lineorder order by 1,2,3,4,5,6,7,8 desc;
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.参考情報
SQL実行中のセッションを強制的に終了する方法
https://www.ashisuto.co.jp/cm/analytics-database/session-close.html
SQL実行中のセッションを強制的に終了する方法②
https://www.ashisuto.co.jp/cm/analytics-database/session-close2.html
検証バージョンについて
この記事の内容はVertica 10.1で確認しています。
更新履歴
2021/08/26 Vertica 10.1用に修正
2018/04/19 本記事を公開