会话管理 #
SphereEx-DBPlusEngine 支持会话管理,可通过原生数据库的 SQL 查看当前会话或杀掉会话。目前此功能仅限于存储节点为 MySQL 的情况,支持 MySQL show processlist
命令和 kill
命令。
相关操作 #
查看会话 #
针对不同关联数据库支持不同的查看会话方法,关联 MySQL 数据库可使用 show processlist
命令查看会话。SphereEx-DBPlusEngine 会自动生成唯一的 UUID 标识作为 ID,并将 SQL 执行信息存储在各个实例中。当执行此命令时,SphereEx-DBPlusEngine 会通过治理中心收集并同步各个计算节点的 SQL 执行信息,然后汇总返回给用户。
mysql> show processlist;
+----------------------------------+------+-----------+-------------+---------+------+---------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----------------------------------+------+-----------+-------------+---------+------+---------------+------------------+
| 05ede3bd584fd4a429dcaac382be2973 | root | 127.0.0.1 | sharding_db | Execute | 2 | Executing 0/1 | select sleep(10) |
| f9e5c97431567415fe10badc5fa46378 | root | 127.0.0.1 | sharding_db | Sleep | 690 | | |
+----------------------------------+------+-----------+-------------+---------+------+---------------+------------------+
输出说明
模拟原生 MySQL 的输出,但
Id
字段较为特殊为随机字符串。
杀掉会话 #
用户根据 SHOW PROCESSLIST
返回的结果,判断是否需要执行 KILL
语句,SphereEx-DBPlusEngine 会根据 KILL
语句中的 ID 取消正在执行中的 SQL。
mysql> kill 05ede3bd584fd4a429dcaac382be2973;
Query OK, 0 rows affected (0.04 sec)
mysql> show processlist;
Empty set (0.02 sec)