终止会话(KILL SESSION)¶
KILL SESSION
语句用于关闭未登出的会话(Session)。
Note
- 只有
root
用户可以终止会话。 - 执行
KILL SESSION
命令后,所有的 Graph 服务同步最新的会话信息需要等待2* session_reclaim_interval_secs
秒,默认等待120
秒。
语法¶
KILL SESSION
语句支持终止单个和多个会话,语法如下:
-
终止单个会话
KILL {SESSION|SESSIONS} <SessionId>
{SESSION|SESSIONS}
:支持SESSION
和SESSIONS
的写法。<SessionId>
:指会话 Session 的 ID。可执行 SHOW SESSIONS 命令查看会话 ID。
-
终止多个会话
SHOW SESSIONS | YIELD $-.SessionId AS sid [WHERE <filter_clause>] | KILL {SESSION|SESSIONS} $-.sid
Note
KILL SESSION
语句支持管道操作,即将SHOW SESSIONS
语句与KILL SESSION
语句结合使用,以终止多个会话。[WHERE <filter_clause>]
:- 可选项,使用
WHERE
子句过滤会话;<filter_expression>
指滤过表达式,例如WHERE $-.CreateTime < datetime("2022-12-14T18:00:00")
。如果不加改选项,则关闭所有当前会话。 WHERE
子句中支持的过滤项有:SessionId
、UserName
、SpaceName
、CreateTime
、UpdateTime
、GraphAddr
、Timezone
、ClientIp
。可以执行 SHOW SESSIONS 命令查看这些过滤项的含义。
- 可选项,使用
{SESSION|SESSIONS}
:支持SESSION
和SESSIONS
的写法。
Caution
请谨慎使用过滤条件以防误删会话。
示例¶
-
终止单个会话。
nebula> KILL SESSION 1672887983842984
-
终止多个会话。
- 终止创建时间小于
2023-01-05T18:00:00
的所有会话。nebula> SHOW SESSIONS | YIELD $-.SessionId AS sid WHERE $-.CreateTime < datetime("2023-01-05T18:00:00") | KILL SESSIONS $-.sid
- 终止创建时间最早的两个会话。
nebula> SHOW SESSIONS | YIELD $-.SessionId AS sid, $-.CreateTime as CreateTime | ORDER BY $-.CreateTime ASC | LIMIT 2 | KILL SESSIONS $-.sid
- 终止用户名为
session_user1
创建的所有会话。nebula> SHOW SESSIONS | YIELD $-.SessionId as sid WHERE $-.UserName == "session_user1" | KILL SESSIONS $-.sid
-
终止所有会话
nebula> SHOW SESSIONS | YIELD $-.SessionId as sid | KILL SESSION $-.sid // 或者 nebula> SHOW SESSIONS | KILL SESSIONS $-.SessionId
Caution
终止所有会话时,当前会话也会被终止。请谨慎使用。
- 终止创建时间小于
最后更新:
September 4, 2023