From bea954e45d054de742152d910d8ef2a6de534d10 Mon Sep 17 00:00:00 2001 From: Abby <78209557+abby-cyber@users.noreply.github.com> Date: Thu, 5 Jan 2023 14:47:08 +0800 Subject: [PATCH] kill sessions --- .../2.kill-session.md | 81 +++++++++++++++++++ .../6.show/17.show-sessions.md | 5 +- mkdocs.yml | 1 + 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 docs-2.0/3.ngql-guide/17.query-tuning-statements/2.kill-session.md diff --git a/docs-2.0/3.ngql-guide/17.query-tuning-statements/2.kill-session.md b/docs-2.0/3.ngql-guide/17.query-tuning-statements/2.kill-session.md new file mode 100644 index 00000000000..9e79c8d857d --- /dev/null +++ b/docs-2.0/3.ngql-guide/17.query-tuning-statements/2.kill-session.md @@ -0,0 +1,81 @@ +# 终止会话(KILL SESSION) + +`KILL SESSION`语句用于关闭未登出的会话(Session)。 + +!!! note + + - 只有`root`用户可以终止会话。 + - 执行`KILL SESSION`命令后,所有的 Graph 服务同步最新的会话信息需要等待 `2* session_reclaim_interval_secs`秒。 + +## 语法 + +`KILL SESSION`语句支持终止单个和多个会话,语法如下: + +- 终止单个会话 + + ``` + KILL {SESSION|SESSIONS} + ``` + - `{SESSION|SESSIONS}`:支持`SESSION`和`SESSIONS`的写法。 + - ``:指会话 Session 的 ID。可执行 [SHOW SESSIONS 命令](../../3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md)查看会话 ID。 + + +- 终止多个会话 + + ``` + SHOW SESSIONS + | YIELD $-.SessionId AS sid [WHERE ] + | KILL {SESSION|SESSIONS} $.sid + ``` + + !!! note + + `KILL SESSION`语句支持管道操作,即将`SHOW SESSIONS`语句与`KILL SESSION`语句结合使用,以终止多个会话。 + + - `[WHERE ]`: + - 可选项,使用`WHERE`子句过滤会话;``指滤过表达式,例如`WHERE $-.CreateTime < datetime("2022-12-14T18:00:00")`。如果不加改选项,则关闭所有当前会话。 + - `WHERE`子句中支持的过滤项有:`SessionId`、`UserName`、`SpaceName`、`CreateTime`、`UpdateTime`、`GraphAddr`、`Timezone`、`ClientIp`。可以执行 [SHOW SESSIONS 命令](../../3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md)查看这些过滤项的含义。 + + - `{SESSION|SESSIONS}`:支持`SESSION`和`SESSIONS`的写法。 + + !!! caution + + 请谨慎使用过滤条件以防误删会话。 + + +## 示例 + +- 终止单个会话。 + + ``` + nebula> KILL SESSION 1672887983842984 + ``` + +- 终止多个会话。 + + - 终止除创建时间小于`2022-12-14T18: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 + 终止所有会话时,当前会话也会被终止。请谨慎使用。 + + diff --git a/docs-2.0/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md b/docs-2.0/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md index fd1f214a77a..d33599cebdf 100644 --- a/docs-2.0/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md +++ b/docs-2.0/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md @@ -4,7 +4,7 @@ ## 注意事项 -- 执行`exit`退出登录时,客户端会调用 API `release`,释放会话并清除会话信息。如果没有正常退出,且没有在配置文件 [nebula-graphd.conf](../../../5.configurations-and-logs/1.configurations/3.graph-config.md) 设置空闲会话超时时间(`session_idle_timeout_secs`),会话不会自动释放。对于未自动释放的会话,需要手动删除指定会话 (TODO: coding)。 +- 执行`exit`退出登录时,客户端会调用 API `release`,释放会话并清除会话信息。如果没有正常退出,且没有在配置文件 [nebula-graphd.conf](../../../5.configurations-and-logs/1.configurations/3.graph-config.md) 设置空闲会话超时时间(`session_idle_timeout_secs`),会话不会自动释放。对于未自动释放的会话,需要手动删除指定会话,详情参见[终止会话](../../17.query-tuning-statements/2.kill-session.md)。 - `SHOW SESSIONS`查询所有 Graph 服务上的会话信息。 @@ -52,3 +52,6 @@ nebula> SHOW SESSION 1635254859271703; |`GraphAddr`|会话的 Graph 服务地址和端口。| |`Timezone`|保留参数,暂无意义。| |`ClientIp`|会话的客户端 IP 地址。| + + + diff --git a/mkdocs.yml b/mkdocs.yml index d22f4750607..1fe5eabbb14 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -436,6 +436,7 @@ nav: - 查询调优与终止: - EXPLAIN和PROFILE: 3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md - 终止查询: 3.ngql-guide/17.query-tuning-statements/6.kill-query.md + - 终止会话: 3.ngql-guide/17.query-tuning-statements/2.kill-session.md - 作业管理: 3.ngql-guide/4.job-statements.md - 安装部署: