本文介绍了 ODP 上终止指定 Client Session 和 Server Session 的方法。
您可以通过 KILL PROXYSESSION (cs_id | connection_id) 语句可以终止指定 Client Session。
参数说明:
id既可以是cs_id,也可以是CONNECTION_ID,显示结果相同。cs id为 ODP 内部标记的每个 Client 的id号,connection_id为整个 OceanBase 数据库标记的每个 Client 的id号。与
KILL connection_id的作用一致。有关KILL语句的详细介绍,请参见 KILL 。
您还可以通过 KILL PROXYSESSION (cs_id | connection_id) ss_id 语句来终止指定 Client Session 上的 Server Session。
参数说明:
id既可以是cs_id,也可以是connection_id,显示结果相同。cs_id为 ODP 内部标记的每个 Client 的id号,connection_id为整个 OceanBase 数据库标记的每个 Client 的id号。ss_id表示 ODP 内部标记每个 Server 端会话( Server Session)的id号,可以从SHOW PROXYSESSION ATTRIBUTE id中获取。详细的获取操作请参见 展示 Session 详细状态。
通过 KILL PROXYSESSION (cs_id | connection_id) 语句来终止指定 Client Session。示例如下:
obclient> SHOW PROXYSESSION;
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
| proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid |
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
| 756006681247547400 | 7 | ob1.jianhua.sjh | sys | root | 127.0.0.1:23706 | NULL | 0 | 1 | MCS_ACTIVE_READER | 2230520 | 2230520 |
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
1 row in set
obclient> KILL PROXYSESSION 7;
ERROR 1317 (70100): Query execution was interrupted
obclient> SHOW PROXYSESSION;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
| proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid |
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
| 756006681247547401 | 8 | ob1.jianhua.sjh | sys | root | 127.0.0.1:23715 | NULL | 0 | 1 | MCS_ACTIVE_READER | 2230520 | 2230520 |
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
1 row in set
obclient> SELECT CONNECTION_ID ();
+-----------------+
| connection_id() |
+-----------------+
| 2147549203 |
+-----------------+
1 row in set
obclient> KILL PROXYSESSION 2147549203;
ERROR 1317 (70100): Query execution was interrupted
obclient> SHOW PROXYSESSION;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 9
Current database: *** NONE ***
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
| proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid |
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
| 756006681247547402 | 9 | ob1.jianhua.sjh | sys | root | 127.0.0.1:23734 | NULL | 0 | 1 | MCS_ACTIVE_READER | 2230520 | 2230520 |
+--------------------+------+-----------------+--------+------+-----------------+------+-------------+-------------------+-------------------+---------+---------+
1 row in set
通过指定 cs_id 或 CONNECTION_ID 来 KILL 当前的 Session 时,当前的连接中断,命令执行成功。使用 SHOW PROXYSESSION 查看时,OBClient 会重新建立 Session 连接,并执行 SQL 显示结果。




