首页 > 数据库 > MySQL > dble运维命令汇总
一.基本信息
查看所有可用的管理命令
show @@help
显示dble内存使用率,运行时长和字符集等:
show @@server
查看 dble 配置了哪些逻辑库:
show @@database
查看逻辑分片节点信息:
show @@shardingNode
备注:schema_exists 显示的信息不是实时获取的,只表示加载配置时刻,对象是存在的。
查看 dble 最近接收到的1024条SQL语句:
show @@sql
备注:
每5s清理一次,可以充当下 general_log。
查看 SQL 执行频次:
show @@sql.high
备注:执行频次高的和响应延迟慢的都是我们要重点关注的
按用户维度,显示读写次数和比例:
show @@sql.sum.user
备注:
了解负载情况,才好有针对性的优化。读多写少,读写分离;写多读少,优化io或热点拆分。
按用户维度,显示读写次数和比例:
show @@sql.sum.user
备注:了解负载情况,才好有针对性的优化。读多写少,读写分离;写多读少,优化io或热点拆分。
按表维度,显示读写次数和比例:
show @@sql.sum.table
备注:哪个表是热点一目了然。
查看 SQL 执行时间最慢的 top10 :
show @@sql.slow
备注:
没开慢日志,也不影响你快速定位慢 SQL。
查看 dble 配置参数信息:
show @@sysparam
备注:上报问题前,先把参数配置搜集齐了。
查看白名单设置:
show @@white
备注:控制用户通行。
查看当前后端实例的 gtid_executed:
show @@binlog.status
备注:集群的⼀致性备份就靠它。
查看指定表使用的分片算法:
show @@algorithm where schema='testdb'and table='sbtest1'
备注:比看xml配置文件更方便
查看指定表的逻辑分片节点:
show @@shardingNodes where schema='testdb' and table='sbtest1'
查看配置文件 reload 时间:
show @@reload_status
查看用户列表:
show @@user
备注:是否为管理用户,是否为只读用户,用户的最大连接数限制都一目了然。
查看前端访问用户的权限信息:
show @@user.privilege
查看指定表所对应逻辑分片的行数:
show @@data_distribution where table ='testdb.sbtest1'
备注:由此可判断数据分片的分布倾斜。
查看 dble 对于后端实例配置的连接参数:
show @@connection_pool
二.故障诊断
查看后端数据库实例的心跳检测情况:
show @@heartbeat
备注:
需开启心跳检测功能,RS_CODE 为 OK 表示心跳正常,RS_MESSAGE 显⽰⼼跳语句的反馈信息,快速诊断 dble 到后端数据库实例链路连通性。
查看 dble 到后端数据库实例的连接信息:
show @@backend
查看当前活跃的前端连接信息,网络络流量信息:
show @@connection
备注:
可用来诊断前端的连接会话。
查看前端连接接收到的 SQL 信息:
show @@connection.sql
查看当前活跃的后端连接:
show @@session
查看 dble 内部线程负载情况:
show @@thread_used
备注:若观测到线程负载⽐例很⾼,说明线程负载饱和,可适当调⼤线程数量,参考dble性能观测
BussinessExecutorX
前端业务(应⽤客⼾端)处理线程,主要处理前端请求的解析,sql 解析路由,下发查询到 mysql 实例等
bootstrap.cnf 配置⽂件的 ProcessorExecutor 参数控制其数量
backendBusinessExecutorX
后端业务(数据库)处理线程,主要处理后端 mysql 询结果的返回解析,结果聚合,并发回结果到 client
bootstrap.cnf 配置文件的 backendProcessorExecutor 参数控制其数量
_NIO_REACTOR_FRONT_X
负责前端(应用客户端)请求收发的线程,再把数据交给 BussinessExecutor 处理
bootstrap.cnf 配置文件的 processors 参数控制其数量
$_NIO_REACTOR_BACKEND_X
负责后端(数据库)请求收发的线程,再把数据交给 backendBusinessExecutor 处理
bootstrap.cnf 配置⽂件的 backendProcessors 参数控制其数量
启用dble general_log:
enable @@general_log
备注:想了解前端发送些什么 SQL ,就用它了,有开销不宜长期启用。
三.维护操作
杀掉客户端的连接:
kill @@connection
备注:参数为 show @@connection 显⽰的 FRONT_ID 值
重载配置文件:
reload @@config_all
备注:可在不停 dble 服务的情况下,修改 db.xml、user.xml、sharding.xml。
检查下配置文件,看看有哪些潜在问题:
dryrun
检查表定义是否一致:
check full @@metadata
备注:该操作不是实时的⼀致性检查,是最近⼀次加载配置时的⼀致性,执⾏命令时不会向后端实例发送请求。
consistent_in_sharding_nodes 表示分片节点之间的一致性,1代表一致
consistent_in_memory 表示dble 缓存中与后端实例的一致性,1代表一致
检查全局表一致性:
check @@global
备注:执⾏命令时会向后端实例的每个逻辑分片发送 checksum table 命令,关注 DISTINCT_CONSISTENCY_NUMBER ,
若大于1表示有不只一种检查结果,说存在全局表不一致的情况。
把准备导入 dble 集群的大表,按逻辑分片节点拆分成多个 sql 文件,拆分后可以直接并行导入后端实例:
split src dest [-sschema] [-r500] [-w500] [-l10000] [--ignore] [-t2]
暂停逻辑分片的流量:
pause @@shardingNode = 'dn1' and timeout = 10000;
备注:
可在分⽚扩容迁移过程中使⽤。扩容基本流程:
克隆新的分⽚节点
修改 schema.xml 更新 datanode 与新的分⽚节点关系
暂停分⽚访问 pause @@shardingNode = 'dn1' and timeout= 10;
补齐该分片增量 binlog日志
加载生效配置 reload @@config_all
resume 恢复流量
清理掉原实例中已扩容分片和新实例中未扩容分片的数据
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15498/viewspace-2850360/ ,如需转载,请注明出处,否则将追究法律责任。