分布式 | dble 运维命令知多少

作者:洪斌
爱可生南区负责人,MySQL ACE 数据库行业老兵。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
dble 作为 MySQL 流?的分布式开源中间件,在性能、稳定性、可?性已经过?规模用户使?考验,成为许多用户替换 mycat 不?之选。
作为 MySQL DBA 熟悉 dble ?法和运维?段,是掌握 MySQL 分布式架构的必备技能之?,这?我们整理了?些常?的运维命令,在你运维过程中能帮你快速诊断重要信息。
dble 有两个访问端?,默认服务端?是8066,接收业务请求,管理端?是9066,接收管理请求。
在 conf/bootstrap.cnf 配置?件中可调整这两个的端?监听
分布式 | dble 运维命令知多少
文章图片

在 conf/user.xml 配置?件中,分别定义了管理?户 managerUser 、业务?? shardingUser 、读写分离?户 rwSplitUser ,登陆管理端?的?户需要配置管理??。
分布式 | dble 运维命令知多少
文章图片

我们使? mysql 客户端?具可以登陆 dble 的两种端?。
分布式 | dble 运维命令知多少
文章图片

## 1.基本信息
show @@help
查看所有可?的管理命令,记住它就不会忘记有哪些命令了。
show @@server
显?dble内存使?率,运?时?,字符集
分布式 | dble 运维命令知多少
文章图片

show @@database
查看 dble 配置了哪些逻辑库。
分布式 | dble 运维命令知多少
文章图片

show @@shardingNode
查看逻辑分?节点信息。schema_exists 显?的信息不是实时获取的,只表?加载配置时刻,对象是存在的。
分布式 | dble 运维命令知多少
文章图片

show @@sql
查看 dble 最近接收到的1024条 SQL 语句,每5s清理?次,可以充当下 general_log 。
show @@sql.high
查看 SQL 执?频次,执?频次?的和响应延迟慢的都是我们要重点关注的。
分布式 | dble 运维命令知多少
文章图片

show @@sql.sum.user
按?户维度,显?读写次数和?例,了解负载情况,才好有针对性的优化。读多写少,读写分离;写多读少,优化io或热点拆分。
分布式 | dble 运维命令知多少
文章图片

show @@sql.sum.table
按表维度,显?读写次数和?例,哪个表是热点??了然。
分布式 | dble 运维命令知多少
文章图片

show @@sql.slow
查看 SQL 执?时间最慢的 top10 ,没开慢?志,也不影响你快速定位慢 SQL 。
分布式 | dble 运维命令知多少
文章图片

show @@sysparam
查看 dble 配置参数信息,上报问题前,先把参数配置搜集?了
分布式 | dble 运维命令知多少
文章图片

show @@white
查看?名单设置,控制??通?。
分布式 | dble 运维命令知多少
文章图片

show @@binlog.status
查看当前后端实例的 gtid_executed ,集群的?致性备份就靠它了
分布式 | dble 运维命令知多少
文章图片

show @@algorithm where schema='testdb'and table='sbtest1'
查看指定表使?的分?算法,?看xml配置?件?便。
分布式 | dble 运维命令知多少
文章图片

show @@shardingNodes where schema='testdb' and table='sbtest1'
查看指定表的逻辑分?节点
分布式 | dble 运维命令知多少
文章图片

show @@reload_status
查看配置?件 reload 时间,每 reload ?次 index 会加1
分布式 | dble 运维命令知多少
文章图片

show @@user
查看?户列表,是否为管理?户,是否为只读?户,?户的最?连接数限制都??了然。
分布式 | dble 运维命令知多少
文章图片

show @@user.privilege
查看前端访问?户的权限信息
分布式 | dble 运维命令知多少
文章图片

show @@data_distribution where table ='testdb.sbtest1'
查看指定表所对应逻辑分?的?数,可判断数据分?的分布倾斜
分布式 | dble 运维命令知多少
文章图片

show @@connection_pool
查看 dble 对于后端实例配置的连接参数
分布式 | dble 运维命令知多少
文章图片

file @@list 3.21.06已废弃
查看 dble 配置?录 conf ?件夹中的?件名和最后?次修改时间,有安全?险在 3.21.06 版本已移除。
分布式 | dble 运维命令知多少
文章图片

file @@show filename 3.21.06 已废弃
可显? dble 配置?录 conf ?件下指定?件内容,不包括注释信息,有安全?险在 3.21.06 版本已移除
file @@upload filename content 3.21.06 已废弃
上传?件到 dble 的 conf ?录下,filename 是?件名,content 是向?件中写?的内容,有安全?险在 3.21.06 版本已移除
分布式 | dble 运维命令知多少
文章图片

2.故障诊断 *show @@heartbeat
查看后端数据库实例的?跳检测情况,需开启?跳检测功能,RS_CODE 为 OK 表??跳正常,RS_MESSAGE 显??跳语句的反馈信息,快速诊断 dble 到后端数据库实例链路连通性。
分布式 | dble 运维命令知多少
文章图片

show @@backend
查看 dble 到后端数据库实例的连接信息。
分布式 | dble 运维命令知多少
文章图片

show @@connection
查看当前活跃的前端连接信息,?络流量信息,可?来诊断前端的连接会话。
分布式 | dble 运维命令知多少
文章图片

show @@connection.sql
查看前端连接接收到的 SQL 信息
分布式 | dble 运维命令知多少
文章图片

show @@session
查看当前活跃的后端连接
分布式 | dble 运维命令知多少
文章图片

show @@thread_used
查看 dble 内部线程负载情况,若观测到线程负载?例很?,说明线程负载饱和,可适当调?线程数量,参考dble性能观测
  • BussinessExecutorX
    • 前端业务(应?客?端)处理线程,主要处理前端请求的解析,sql 解析路由,下发查询到 mysql 实例等
    • bootstrap.cnf 配置?件的 ProcessorExecutor 参数控制其数量
  • backendBusinessExecutorX
    • 后端业务(数据库)处理线程,主要处理后端 mysql 询结果的返回解析,结果聚合,并发回结果到 client
    • bootstrap.cnf 配置?件的 backendProcessorExecutor 参数控制其数量
  • 【分布式 | dble 运维命令知多少】_NIO_REACTOR_FRONT_X
    • 负责前端(应?客?端)请求收发的线程,再把数据交给 BussinessExecutor 处理
    • bootstrap.cnf 配置?件的 processors 参数控制其数量
  • $_NIO_REACTOR_BACKEND_X
    • 负责后端(数据库)请求收发的线程,再把数据交给 backendBusinessExecutor 处理
    • bootstrap.cnf 配置?件的 backendProcessors 参数控制其数量
分布式 | dble 运维命令知多少
文章图片

enable @@general_log
启? dble general_log ,想了解前端发送些什么 SQL ,就?它了,有开销不宜?期启?。
分布式 | dble 运维命令知多少
文章图片

3.维护操作 kill @@connection
杀掉客?端的连接,参数为 show @@connection 显?的 FRONT_ID 值
分布式 | dble 运维命令知多少
文章图片

reload @@config_all
重载配置?件,可在不停 dble 服务的情况下,修改 db.xml、user.xml、sharding.xml
dryrun
检查下配置?件,看看有哪些潜在问题。
分布式 | dble 运维命令知多少
文章图片

check full @@metadata
检查表定义是否?致,该操作不是实时的?致性检查,是最近?次加载配置时的?致性,执?命令时不会向后端实例发送请求。
  • consistent_in_sharding_nodes 表?分?节点之间的?致性,1代表?致
  • consistent_in_memory 表? dble 缓存中与后端实例的?致性,1代表?致
分布式 | dble 运维命令知多少
文章图片

check @@global
检查全局表?致性,执?命令时会向后端实例的每个逻辑分?发送 checksum table 命令,关注 DISTINCT_CONSISTENCY_NUMBER ,若?于1表?有不只?种检查结果,说存在全局表不?致的情况。
分布式 | dble 运维命令知多少
文章图片

split src dest [-sschema] [-r500] [-w500] [-l10000] [--ignore] [-t2]
把准备导? dble 集群的?表,按逻辑分?节点拆分成多个 sql ?件,拆分后可以直接并?导?后端实例。
分布式 | dble 运维命令知多少
文章图片

pause @@shardingNode = 'dn1' and timeout = 10000;
暂停逻辑分?的流量,可在分?扩容迁移过程中使?。扩容基本流程:
  1. 克隆新的分?节点
  2. 修改 schema.xml 更新 datanode 与新的分?节点关系
  3. 暂停分?访问 pause @@shardingNode = 'dn1' and timeout= 10;
  4. 补?该分?增量 binlog ?志
  5. 加载?效配置 reload @@config_all
  6. resume 恢复流量
  7. 清理掉原实例中已扩容分?和新实例中未扩容分?的数据

    推荐阅读