OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

セッションを全てクローズする方法

公開日:
更新日:
基本操作
FAQ
#セッション

実行中の全ての処理を強制的に終了したい場合は、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への接続方法。以下のいずれかが出力

・ADO.NETドライバ
・ODBCドライバ
・JDBCドライバ
・vsql

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 本記事を公開