功能版本说明
当 DRDS 版本号小于 5.1.28-1408022 时,DRDS 仅支持物理连接的 SHOW PROCESSLIST 与 KILL 功能,请继续阅读此文档。
当 DRDS 版本号大于等于 5.1.28-1408022 时,DRDS 支持逻辑连接与物理连接的 SHOW PROCESSLIST 与 KILL 功能,请参考文档 SHOW PROCESSLIST 指令与 KILL 指令。
获取 DRDS 版本号,DRDS自助升级的方法以及更多的版本介绍请参考版本说明文档。
SHOW PROCESSLIST 指令
DRDS 中,可以使用SHOW PROCESSLIST指令查看底层所有 MySQL/RDS 上正在执行的 SQL 信息。
语法:
SHOW [FULL] PROCESSLIST
当 SQL 比较长的时候,SHOW PROCESSLIST会截断,这时可以使用SHOW FULL PROCESSLIST获取完整 SQL。
返回结果中每一列的含义与 MySQL 的SHOW PROCESSLIST指令等价,请参考 SHOW PROCESSLIST Syntax。
示例:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
ID: 0-0-521414
USER: tddl5
DB: tddl5_00
COMMAND: Query
TIME: 0
STATE: init
INFO: show processlist
ROWS_SENT: NULL
ROWS_EXAMINED: NULL
ROWS_READ: NULL
*************************** 2. row ***************************
ID: 0-0-521570
USER: tddl5
DB: tddl5_00
COMMAND: Query
TIME: 0
STATE: User sleep
INFO: /*DRDS /88.88.88.88/b67a0e4d8800000/ */ select sleep(1000)
ROWS_SENT: NULL
ROWS_EXAMINED: NULL
ROWS_READ: NULL
2 rows in set (0.01 sec)
KILL 指令
KILL 指令用于终止一个正在执行的 SQL。
DRDS 使用 DRDS 在 MySQL/RDS 上创建的用户名连接 MySQL/RDS,所以一般直接连接 MySQL/RDS 是没有权限对 DRDS 发起的请求进行 KILL 操作的。
如果需要终止一个 DRDS 上正在执行的 SQL,需要使用 MySQL 命令行、DMS 等工具连接 DRDS,在 DRDS 上执行 KILL 指令。
语法:
KILL 'PROCESS_ID' | 'ALL'
有两种用法:
终止一个特定的 SQL:KILL 'PROCESS_ID'
其中的 PROCESS_ID 来自SHOW PROCESSLIST指令返回的 ID 列。
注意:与 MySQL 不同,DRDS 返回的 ID 列为一个字符串,并非一个数字,因此 KILL 指令中,PROCESS_ID 需要使用单引号括起来。
示例:
mysql> KILL '0-0-521570';
Query OK, 0 rows affected (0.01 sec)
终止当前库上所有通过 DRDS 执行的 SQL: KILL 'ALL'
当底层 MySQL/RDS 因为一些 SQL 导致压力非常大的时候,可以使用KILL 'ALL'指令终止当前 DRDS 库上所有正在执行的 SQL。
符合以下条件的 PROCESS 会被KILL 'ALL'指令终止:
该 PROCESS 的 User 是 DRDS 在 MySQL/RDS 上所创建的用户名;
该 PROCESS 正在执行查询,即 COMMAND 为 Query。
注意:较低版本的 DRDS 实例不支持KILL 'ALL'功能,执行的时候会报错。可以将 DRDS 实例升级到最新版本,升级方法请参考升级实例版本。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。