実行中の全ての処理を強制的に終了したい場合は、CLOSE_ALL_SESSIONS を利用します。
CLOSE_ALL_SESSIONS コマンド
CLOSE_ALL_SESSIONS コマンドの構文およびパラメータの説明は、次のとおりです。構文
CLOSE_ALL_SESSIONS()
パラメータ
なし全てのセッションを終了する場合
1) SESSIONS システムテーブルで、接続されているセッションを確認します。※通常は、SESSIONS システムテーブルを検索することで、各ノードのログイン・セッション情報を取得可能です。しかし、非常に高負荷の状況では、まれに自ノード以外のセッション情報を取得できない事があります(仕様上の動作です)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
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への接続方法。以下のいずれかが出力 ・ADO.NETドライバ ・ODBCドライバ ・JDBCドライバ ・vsql |
CLIENT_OS | クライアントのOS |
2) CLOSE_ALL_SESSIONS で全てのセッションを終了します。
1 2 3 |
dbadmin=> select close_all_sessions(); -[ RECORD 1 ]------+------------------------------------------------------------------------ close_all_sessions | Close all sessions command sent. Check v_monitor.sessions for progress. |
3) 実行中の処理は終了し、ユーザーには以下のエラーが返されます。
1 2 3 4 5 |
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実行中のセッションを強制的に終了する方法http://vertica-tech.ashisuto.co.jp/session-close/
SQL実行中のセッションを強制的に終了する方法②
http://vertica-tech.ashisuto.co.jp/session-close2/
検証バージョンについて
この記事の内容はVertica 10.1で確認しています。更新履歴
2021/08/26 Vertica 10.1用に修正2018/04/19 本記事を公開
- 投稿タグ
- session, CLOSE_SESSION, CLOSE_ALL_SESSIONS, セッション, 強制, 終了, 全て, 特定