2.0 管理端元数据库dble_information

2.0.0 简介

dble_information 提供了一系列表格来描述dble内部一些元数据,可以通过管理端口连接dble之后,use dble_information之后查询内部的元数据信息。
以下是这些表格的详述:
支持表格的投影(select)
支持表格的选择(where)
支持表格的连接(join)
支持表格的非关联where子查询
支持聚合运算
支持排序
支持标量函数
支持 use dble_information
支持 show tables [ like ]
支持 desc|describe table xxx
支持 show databases; 注意和show @@database不同
部分表格支持INSERT/UPDATE/DELETE

2.0.1 dble_information下的表

2.0.1.0 version

  • 表名:version

  • 含义:dble版本号

  • 字段:

列名 主键 注释
version true 版本号
  • 数据行:
      - dble的版本号
    

2.0.1.1 dble_variables

  • 表名:dble_variables

  • 含义:全局设置

  • 字段:

列名 主键 注释
variable_name true 变量名
variable_value 变量值
comment 说明
read_only 是否只读
  • 数据行:

      - version_comment: 版本信息
      - isOnline: 在线状态
      - heap_memory_max: 堆内存的最大限制(mb)
      - direct_memory_max: 通过-XX:MaxDirectMemorySize设置的值
    
      附加项:show @@sysparam中的所有配置
    

2.0.1.2 dble_status

  • 表名:dble_status

  • 含义:全局状态

  • 字段:

列名 主键 注释
variable_name true 变量名
variable_value 变量值
comment 说明
  • 数据行:
      - uptime: dble启动的时间长度(秒)
      - current_timestamp: dble系统的当前时间
      - startup_timestamp: dble系统的启动时间
      - heap_memory_max: 堆内存的最大限制
      - heap_memory_used: 堆内存的使用量
      - heap_memory_total: 堆内存的总量
      - config_reload_timestamp: 上次config加载时间  
      - direct_memory_max: 通过-XX:MaxDirectMemorySize设置的值
      - direct_memory_pool_size: 内存池的大小,等于bufferpoolpagesize和bufferpoolpagenumber的乘积
      - direct_memory_pool_used: 已经使用的内存池中的directmemory内存
      - questions: 请求数
      - transactions: 事务数
    

2.0.1.3 thread pool系列

2.0.1.3.1 dble_thread_pool
  • 表名:dble_thread_pool

  • 含义:线程池使用情况

  • 字段:

列名 主键 注释
name true 线程池名称
pool_size 实际线程池大小
core_pool_size 理论线程池大小(和所设置值保持一致)
active_count 活跃的线程数
waiting_task_count 等待消费的线程数(如果值较大, 需增大处理线程数)
  • 数据行: 略

  • 注意:这里的 active_count/waiting_task_count 都是只统计 线程数 的变化。但是,dble 针对某些线程池(BusinessExecutor和writeToBackendExecutor)采用了常驻线程的实现方式,故线程数不变,使得这些字段不能反映 "是否消费了任务" 以及 "消费了多少了个任务" ,如需获得线程池执行任务的统计情况,可以考虑使用dble_thread_pool_task表。

2.0.1.3.2 dble_thread_pool_task
  • 表名:dble_thread_pool_task

  • 含义:线程池的任务消费情况

  • 字段:

列名 主键 注释
name true 线程池名称
pool_size 实际线程池大小
active_task_count 正在处理中的任务数
task_queue_size 等待消费的任务数(如果值较大, 需增大处理线程数)
completed_task 已完成的任务数量
total_task 总共任务数量
  • 数据行: 略

2.0.1.4 dble_processor

  • 表名:dble_processor

  • 含义:processor信息

  • 字段:

列名 主键 注释
name true 名称
type 类型(session/backend)
conn_count 其负责处理的连接数
conn_net_in 网络接收流量 (线程不安全)
conn_net_out 网络发送流量 (线程不安全)
  • 数据行:略

2.0.1.5 dble_sharding_node

  • 表名:dble_sharding_node

  • 含义:sharding_node配置及状态

  • 字段:

列名 主键 注释
name true 名称
db_group db_group名
db_schema db_schema名
pause 是否暂停流量
  • 数据行:略

2.0.1.6 dble_db_group

  • 表名:dble_db_group

  • 含义:db_group配置及状态

  • 字段:

列名 主键 注释
name true 名称
heartbeat_stmt 心跳用的sql语句
heartbeat_timeout 心跳超时时间(秒)
heartbeat_retry 心跳重试次数
rw_split_mode 读写分离模式
delay_threshold 延迟时间
disable_ha 是否停用高可用
active 是否落盘
  • 数据行:略

2.0.1.7 dble_db_instance

  • 表名:dble_db_instance

  • 含义:db_instance配置及状态

  • 字段:

列名 主键 注释
name true 名称
db_group true db_group的主键
addr 地址
port 端口
primary 是否是主节点
user 账号
password_encrypt 加密后的密码
encrypt_configured 是否启用加密
active_conn_count 当前活动的后端连接数量
idle_conn_count 当前空闲的后端连接数量
read_conn_request 获取读连接的次数
write_conn_request 获取写连接的次数
disabled 是否被标记为disabled
last_heartbeat_ack_timestamp 上次收到心跳回复时间戳
last_heartbeat_ack init/ok/error/timeout
heartbeat_status idle/checking
heartbeat_failure_in_last_5min 过去5分钟, 心跳失败的次数
min_conn_count 最小后端连接数量
max_conn_count 最大后端连接数量
read_weight 读负载
id id
connection_timeout 获取连接的超时时间
connection_heartbeat_timeout 空闲连接检测后的超时时间
test_on_create 连接创建后是否检测有效性
test_on_borrow 连接被借出后是否检测有效性
test_on_return 连接被返回时是否检测有效性
test_while_idle 连接空闲时是否检测有效性
time_between_eviction_runs_millis 扩缩容线程的检测周期
evictor_shutdown_timeout_millis 扩缩容线程停止的超时时间
idle_timeout 连接空闲多久之后被回收
heartbeat_period_millis 连接池的心跳周期
flow_high_level 流量控制的连接高水位
flow_low_level 流量控制的连接低水位
  • 数据行:略

2.0.1.8 dble_schema

  • 表名:dble_schema

  • 含义:schema配置

  • 字段:

列名 主键 注释
name true 版本号
sharding_node sharding_node表的主键
function 拆分规则
sql_max_limit 最大返回结果集限制
  • 数据行:略

2.0.1.9 session_variables

  • 表名:session_variables

  • 含义:前端连接变量

  • 字段:

列名 主键 注释
session_conn_id true 前端连接id
variable_name true 变量名
variable_value 变量名值
variable_type 变量类型(sys/user)
  • 数据行:
      已知变量 :
      - tx_read_only:只读事务(mysql8.0)
      - transaction_read_only:只读事务(mysql5.7)
      - character_set_client:字符集
      - collation_connection:字符集
      - character_set_results:字符集
      - tx_isolation_level:隔离级别(mysql8.0)
      - transaction_isolation:隔离级别 (mysql5.7)
      - autocommit:自动提交
      - 其他被特别设置的变量
    

2.0.1.10 session_connections

  • 表名:session_connections

  • 含义:前端连接

  • 字段:

列名 主键 注释
session_conn_id true 前端连接id
remote_addr 远端地址
remote_port 远端端口
local_port 本地端口
processor_id 负责处理连接的处理器id
user 登录用户名
tenant 租户
schema 当前schema? (分库分表/读写分离 功能不同)
sql 最后运行的sql(如果长度大于1024个字符,将会被截断为1024)
sql_execute_time 已完成sql的响应时间, 或未完成的sql的持续时间(单位为ms)(由于实现方式的原因,可能出现正负20ms的误差)
sql_start_timestamp sql的开始时间戳
sql_stage 运行的当前阶段,结束时会变成finished
conn_net_in 网络接收流量
conn_net_out 网络发送流量
conn_estab_time 连接建立时长(毫秒)
conn_recv_buffer 接收缓冲区大小(字节) (若值较大, 说明正在接收较大的数据包, 或者接收的数据包没有及时被消费)
conn_send_task_queue 网络发送任务队列(个) (若值较大, 说明没有线程对数据包进行及时发送)
conn_recv_task_queue 网络接收任务队列(个) (若值较大, 说明没有线程对数据包进行及时消费)
in_transaction 该连接是否在事务中
xa_id 该连接中的xid, 如果存在具体值,说明处于XA事务中
entry_id 入口id
  • 数据行:略

2.0.1.11 backend_variables

  • 表名:backend_variables

  • 含义:后端连接变量

  • 字段:

列名 主键 注释
backend_conn_id true 后端连接id
variable_name true 变量名
variable_value 变量值
variable_type 变量类型(sys/user)
  • 数据行:
      已知行:
      - tx_read_only, 只读事务(mysql8.0)
      - transaction_read_only, 只读事务(mysql5.7)
      - character_set_client, 字符集
      - collation_connection, 字符集
      - character_set_results, 字符集
      - tx_isolation_level, 隔离级别(mysql8.0)
      - transaction_isolation, 隔离级别(mysql5.7)
      - autocommit, 自动提交
      - 其他被特别设置的变量
    

2.0.1.12 backend_connections

  • 表名:backend_connections

  • 含义:后端连接

  • 字段:

列名 主键 注释
backend_conn_id true 后端连接id
db_group_name db组
db_instance_name db实例
remote_addr 远端地址
remote_port 远端端口
remote_processlist_id 远端的mysql线程id
local_port 本地端口
processor_id 负责处理连接的处理器id
user 登录用户名
schema 当前schema? (分库分表/读写分离 功能不同)
session_conn_id 与之对应的前端连接id, 未使用时可为空
sql 最后运行的sql(如果长度大于1024个字符,将会被截断为1024)
sql_execute_time 响应时间或者未完成sql持续时间(由于实现方式的原因,可能出现正负20ms的误差)
mark_as_expired_timestamp 该连接被标记为退休的时间, 退休连接将不返还连接池, 当前任务结束后即关闭
conn_net_in 网络接收流量
conn_net_out 网络发送流量
conn_estab_time 连接建立时长(秒)
borrowed_from_pool 是否从连接池中取出使用(这列可以按照当前连接池属性扩展为多列)
state 后端连接在连接池中的状态,比如是否空闲等
conn_recv_buffer 接收缓冲区大小(字节) (若值较大, 说明正在接收较大的数据包, 或者接收的数据包没有及时被消费)
conn_send_task_queue 网络发送任务队列(个) (若值较大, 说明没有线程对数据包进行及时发送)
used_for_heartbeat 该连接是否被用于心跳检测
conn_closing 该连接是否正在被关闭
xa_status 该连接的xa状态
in_transaction 该连接是否在事务中
  • 数据行:略

2.0.1.13 dble_table系列

2.0.1.13.0 dble_table
  • 表名:dble_table

  • 含义:table基本信息

  • 字段:

列名 主键 注释
id true 自增序列(配置中的table前缀为C、schema配置单个mysql节点中的table的前缀为M、schema配置多个mysql节点中的table的前缀为FC)
name 名称
schema schema名称
max_limit 最大返回结果集限制
type global/single/sharding/child/no sharding
  • 逻辑主键
    name、schema

  • 数据行:略

2.0.1.13.1 dble_global_table
  • 表名:dble_global_table

  • 含义:全局表信息

  • 字段:

列名 主键 注释
id true dble_table的id字段
check 是否开启一致性检查
checkClass 开启一致性检查的class
cron 开启一致性检查的定时任务
  • 数据行:略
2.0.1.13.2 dble_sharding_table
  • 表名:dble_sharding_table

  • 含义:分片表信息

  • 字段:

列名 主键 注释
id true dble_table的id字段
increment_column 全局序列
sharding_column 拆分列
sql_required_sharding sqlRequiredSharding配置
algorithm_name 拆分算法的名称
  • 数据行:略
2.0.1.13.3 dble_child_table
  • 表名:dble_child_table

  • 含义:分片子表信息

  • 字段:

列名 主键 注释
id true dble_table的id字段
parent_id 父表的id
increment_column 全局序列
join_column 关联列
paren_column 父表的列
  • 数据行:略
2.0.1.13.4 dble_table_sharding_node
  • 表名:dble_table_sharding_node

  • 含义:表和sharding_node关联信息

  • 字段:

    列名 主键 注释
    id true dble_table的id字段
    sharding_node true 分片节点
    order sharding_node的顺序(对拆分表意义重大,从0开始计数)
  • 数据行:略

2.0.1.14 dble_algorithm

  • 表名:dble_algorithm

  • 含义:拆分算法的配置

  • 字段:

    列名 主键 注释
    name true 名称
    key true 属性名称
    value 属性值
    is_file mapfile的显示格式(true:file,false:content)有些算法由于使用了mapfile,可能导致属性过多,这种情况最多展示1024字节,超过则显示文件名称
  • 数据行:略

2.0.1.15 dble_entry系列

2.0.1.15.0 dble_entry
  • 表名:dble_entry

  • 含义:登录入口表(目前是用户或者用户+租户的模式)

  • 字段:

列名 主键 注释
id true 自增序列
type 入口类型(username/conn_attr), 通过用户名识别或通过连接属性识别
user_type 是否为管理用户/读写分离用户/sharding用户
username 用户名
password_encrypt 密码
encrypt_configured 原本密码是否加密
conn_attr_key 连接属性键 ,目前支持tenant或者空
conn_attr_value 连接属性值
white_ips 白名单
readonly 是否只读 (读写分离用户不支持,填写-)
max_conn_count 最大连接数限制
blacklist 黑名单
  • 数据行:略
2.0.1.15.1 dble_entry_schema
  • 表名:dble_entry_schema

  • 含义:分库用户对应的schema的关系表

  • 字段:

列名 主键 注释
id true dble_entry表的id
schema true 虚拟schema的名字
  • 数据行:略
2.0.1.15.2 dble_rw_split_entry
  • 表名:dble_rw_split_entry

  • 含义:分库用户对应的schema的关系表

  • 字段:

列名 主键 注释
id true 自增序列(需要实现)
type 入口类型(username/conn_attr), 通过用户名识别或通过连接属性识别
username 用户名
password_encrypt 密码
encrypt_configured 是否启用加密
conn_attr_key 连接属性键 ,目前支持tenant或者空
conn_attr_value 连接属性值
white_ips 白名单
max_conn_count 最大连接数限制
blacklist 黑名单
db_group 对应的db_group的名字
  • 逻辑主键
    username、conn_attr_key、conn_attr_value

  • 数据行:略

2.0.1.15.3 dble_entry_table_privilege
  • 表名:dble_entry_table_privilege

  • 含义:分库用户的对于表的privilege权限

  • 字段:

列名 主键 注释
id true dble_entry表的id
schema true 对应的schema的名字
table true 对应的table的名字
exist_metas 对应table的元数据在dble中是否存在
insert 是否允许insert
update 是否允许update
select 是否允许select
delete 是否允许delete
is_effective 配置是否生效
  • 数据行:略

2.0.1.16 dble_blacklist

  • 表名:dble_blacklist

  • 含义:黑名单信息

  • 字段:

列名 主键 注释
name true 名称
property_key true 黑名单属性key
property_value 黑名单属性value
user_configured 是否是用户配置的
  • 数据行:略

2.0.1.17 processlist

  • 表名:processlist

  • 含义:查看前端连接和后端连接对应关系(若前端连接没有对应的后端连接,显示NULL)

  • 字段:

列名 主键 注释
front_id true 前端连接id
db_instance 对应后端的实例name
mysql_id true 后端连接对应的 mysql 线程id
user 用户名
front_host 客户端主机名
mysql_db 后端连接默认数据库,来自于 mysql 'show processlist' 字段 db
command mysql线程正在执行的指令类型,来自于 mysql 'show processlist' 字段 command
time mysql线程处于当前state的时间,来自于 mysql 'show processlist' 字段 time
state mysql线程执行状态,来自于 mysql 'show processlist' 字段 state
info mysql线程执行语句,来自于 mysql 'show processlist' 字段 info
  • 数据行:略(类似show @@processlist)

2.0.1.18 dble_thread_usage

  • 表名:dble_thread_usage

  • 含义:线程使用率

  • 字段:

列名 主键 注释
thread_name true 线程名称
last_quarter_min 最近15s平均使用率
last_minute 最近1min平均使用率
last_five_minute 最近5min平均使用率
  • 数据行:略(类似show @@thread_used;)

2.0.1.19 dble_reload_status

  • 表名:dble_reload_status

  • 含义:最近的reload信息

  • 字段:

列名 主键 注释
index true reload对应的编号,能与日志中的[ RL ]日志编号相对应
cluster 当前dble使用的集群方式
reload_type 最近的reload的类型 reload_matadata/reload_all/manager_insert/manager_update/mamager_delete
reload_status 最近一次reload的执行状状态not_reloading/self_reload/meta_reload/waiting_others
last_reload_start 起始时间
last_reload_end 结束时间
trigger_type 触发类型local_command/cluster_notify
end_type 结束原因
  • 数据行:略(类似show @@reload_status)

2.0.1.20 dble_xa_session

  • 表名:dble_xa_session

  • 含义:后端重试xa事务信息

  • 字段:

列名 主键 注释
front_id true 前端连接id
xa_id xa事务id
xa_state xa事务状态
sharding_node true xa提交失败的sharding_node名称,需要展开成多行
  • 数据行:略(show @@session.xa)

2.0.1.21 dble_ddl_lock

  • 表名:dble_ddl_lock

  • 含义:当前dble内部未释放的ddl

  • 字段:

列名 主键 注释
schema true schema名称
table true table名称
sql ddl sql语句
  • 数据行:略(类似show @@ddl)

2.0.1.22 sql_statistic_by_frontend_by_backend_by_entry_by_user

  • 表名:sql_statistic_by_frontend_by_backend_by_entry_by_user

  • 含义:统计前端业务用户下发sql至分片(后端节点)的执行情况

  • 字段:

列名 主键 注释
entry true dble_entry表的id
user true 业务用户(不包含管理端用户)
frontend_host true 登录的ip地址
backend_host true 后端服务的ip地址
backend_port true 后端服务的端口
sharding_node true 分片节点
tx_count false 事务次数
tx_rows false 事务中影响或者检索的行数
tx_time false 事务耗时
sql_insert_count false insert命令执行的次数
sql_insert_rows false insert返回的影响行数
sql_insert_time false insert的耗时
sql_update_count false update命令执行的次数
sql_update_rows false update返回的影响行数
sql_update_time false update的耗时
sql_delete_count false delete命令执行的次数
sql_delete_rows false delete返回的影响行数
sql_delete_time false delete的耗时
sql_select_count false select命令执行的次数
sql_select_rows false dble获取后端节点返回的行数
sql_select_time false select的耗时
last_update_time false 此条记录的更新时间
  • 数据如:
    mysql> select  * from sql_statistic_by_frontend_by_backend_by_entry_by_user;
    +-------+------+---------------+--------------+--------------+---------------+-------------+----------+---------+---------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+-------------------------+
    | entry | user | frontend_host | backend_host | backend_port | sharding_node | db_instance | tx_count | tx_rows | tx_time | sql_insert_count | sql_insert_rows | sql_insert_time | sql_update_count | sql_update_rows | sql_update_time | sql_delete_count | sql_delete_rows | sql_delete_time | sql_select_count | sql_select_rows | sql_select_time | last_update_time        |
    +-------+------+---------------+--------------+--------------+---------------+-------------+----------+---------+---------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+-------------------------+
    |     3 | test | 127.0.0.1     | 10.186.63.8  |        24801 | dn1           | instanceM1  |        1 |       1 |   15293 |                0 |               0 |               0 |                0 |               0 |               0 |                0 |               0 |               0 |                1 |               1 |           15293 | 2021-07-09 11:18:10.525 |
    |     3 | test | 127.0.0.1     | 10.186.63.7  |        24801 | dn2           | instanceM2  |        1 |       3 |   13819 |                0 |               0 |               0 |                0 |               0 |               0 |                0 |               0 |               0 |                1 |               3 |           13819 | 2021-07-09 11:18:10.525 |
    +-------+------+---------------+--------------+--------------+---------------+-------------+----------+---------+---------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+-------------------------+
    2 rows in set (0.00 sec)
    

2.0.1.23 sql_statistic_by_table_by_user_by_entry

  • 表名:sql_statistic_by_table_by_user_by_entry

  • 含义:统计前端业务用户下发sql各个表的情况

  • 字段:

列名 主键 注释
entry true dble_entry表的id
user true 业务用户(不包含管理端用户)
table true
sql_insert_count false insert命令执行的次数
sql_insert_rows false insert返回的影响行数
sql_insert_time false insert的耗时
sql_update_count false update命令执行的次数
sql_update_rows false update返回的影响行数
sql_update_time false update的耗时
sql_delete_count false delete命令执行的次数
sql_delete_rows false delete返回的影响行数
sql_delete_time false delete的耗时
sql_select_count false select命令执行的次数
sql_select_examined_rows false dble获取后端节点返回的行数
sql_select_rows false 发送前端的行数
sql_select_time false select的耗时
last_update_time false 此条记录的更新时间
  • 数据如:
    mysql> select * from sql_statistic_by_table_by_user_by_entry;
    +-------+------+---------------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
    | entry | user | table               | sql_insert_count | sql_insert_rows | sql_insert_time | sql_update_count | sql_update_rows | sql_update_time | sql_delete_count | sql_delete_rows | sql_delete_time | sql_select_count | sql_select_rows | sql_select_examined_rows | sql_select_time | last_update_time        |
    +-------+------+---------------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
    |     3 | test | testdb.tb_jump_hash |                0 |               0 |               0 |                0 |               0 |               0 |                0 |               0 |               0 |                1 |               4 |                        4 |          290440 | 2021-07-09 11:18:10.536 |
    |     3 | test | null                |                0 |               0 |               0 |                0 |               0 |               0 |                0 |               0 |               0 |                1 |               1 |                        0 |            2131 | 2021-07-09 11:09:30.755 |
    +-------+------+---------------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
    2 rows in set (0.01 sec)
    

2.0.1.24 sql_statistic_by_associate_tables_by_entry_by_user

  • 表名:sql_statistic_by_associate_tables_by_entry_by_user

  • 含义:统计前端业务用户下发sql关联表的情况

  • 字段:

列名 主键 注释
entry true dble_entry表的id
user true 业务用户(不包含管理端用户)
tables true 关联的表
sql_select_count false select命令执行的次数
sql_select_examined_rows false dble获取后端节点返回的行数
sql_select_rows false 发送前端的行数
sql_select_time false select的耗时
last_update_time false 此条记录的更新时间
  • 数据如:
    mysql> select * from sql_statistic_by_associate_tables_by_entry_by_user;
    +-------+------+-----------------------------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
    | entry | user | associate_tables                  | sql_select_count | sql_select_rows | sql_select_examined_rows | sql_select_time | last_update_time        |
    +-------+------+-----------------------------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
    |     3 | test | testdb.tabler,testdb.tb_jump_hash |                1 |             168 |                       46 |           92004 | 2021-07-09 11:20:16.392 |
    +-------+------+-----------------------------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
    1 row in set (0.00 sec)
    

2.0.1.25 sql_log

  • 表名:sql_log

  • 含义:采样统计前端业务用户下发sql

  • 字段:

列名 主键 注释
sql_id true sql id
sql_stmt false SQL语句(最长保留1024个字节)
sql_digest false SQL语句digest(最长保留1024个字节)
sql_type false SQL类型
tx_id true 事务ID(仅作用与统计的事务ID,与业务中实际事务ID无关)
entry false dble_entry表的id
user false 用户名
source_host false 来源IP
source_port false 来源port
rows false 返回前端的行数
examined_rows false 从后端抽取的行数
start_time false 开始时间,单位纳秒
duration false 持续时间,单位毫秒
  • 数据如:
    mysql> select * from sql_log;
    +--------+----------------------------------+----------------------------------+----------+-------+-------+------+-------------+-------------+------+---------------+---------------------+----------+
    | sql_id | sql_stmt                         | sql_digest                       | sql_type | tx_id | entry | user | source_host | source_port | rows | examined_rows | start_time          | duration |
    +--------+----------------------------------+----------------------------------+----------+-------+-------+------+-------------+-------------+------+---------------+---------------------+----------+
    |      1 | show databases                   | show databases                   | Show     |     1 |     3 | test | 127.0.0.1   |        8066 |    7 |             0 | 2021-07-09 11:09:30 |  7919460 |
    |      2 | show tables                      | show tables                      | Show     |     2 |     3 | test | 127.0.0.1   |        8066 |   32 |             0 | 2021-07-09 11:09:30 | 14972767 |
    |      3 | select @@version_comment limit 1 | SELECT @@version_comment LIMIT ? | Select   |     3 |     3 | test | 127.0.0.1   |        8066 |    1 |             0 | 2021-07-09 11:09:30 |  2131628 |
    |      4 | show tables                      | show tables                      | Show     |     4 |     3 | test | 127.0.0.1   |        8066 |   32 |             0 | 2021-07-09 11:09:34 |  1428683 |
    +--------+----------------------------------+----------------------------------+----------+-------+-------+------+-------------+-------------+------+---------------+---------------------+----------+
    4 rows in set (0.04 sec)
    

2.0.1.26 sql_log_by_tx_by_entry_by_user

  • 表名:sql_log_by_tx_by_entry_by_user

  • 含义:sql log汇总统计

  • 字段:

列名 主键 注释
tx_id false 事务ID(仅作用与统计的事务ID,与业务中实际事务ID无关)
entry false dble_entry表的id
user false 用户名
source_host false 来源IP
source_port false 来源port
sql_ids false 事务包含的sql_id的聚合(最长保留1024个字节)
sql_exec false 事务包含的SQL的个数
tx_duration false 事务经历的时间
busy_time false 事务内SQL的总运行时间
examined_rows false 从后端抽取的行数
  • 数据如:
    mysql> select * from sql_log_by_tx_by_entry_by_user;
    +-------+-------+------+-------------+-------------+---------+----------+-------------+-----------+---------------+
    | tx_id | entry | user | source_host | source_port | sql_ids | sql_exec | tx_duration | busy_time | examined_rows |
    +-------+-------+------+-------------+-------------+---------+----------+-------------+-----------+---------------+
    |     1 |     3 | test | 127.0.0.1   |        8066 | 1       |        1 |     7919460 |   7919460 |             0 |
    |     2 |     3 | test | 127.0.0.1   |        8066 | 2       |        1 |    14972767 |  14972767 |             0 |
    |     3 |     3 | test | 127.0.0.1   |        8066 | 3       |        1 |     2131628 |   2131628 |             0 |
    |     4 |     3 | test | 127.0.0.1   |        8066 | 4       |        1 |     1428683 |   1428683 |             0 |
    +-------+-------+------+-------------+-------------+---------+----------+-------------+-----------+---------------+
    4 rows in set (0.05 sec)
    

2.0.1.27 sql_log_by_digest_by_entry_by_user

  • sql_log_by_digest_by_entry_by_user

  • 含义:sql log汇总统计

  • 字段:

列名 主键 注释
sql_digest false sql语句digest
entry false dble_entry表的id
user false 用户名
exec false 相同sql digest的sql语句执行次数
duration false sql语句的执行总时间
rows false 返回前端的行数
examined_rows false 从后端抽取的行数
avg_duration false 平均sql语句执行时间
  • 数据如:
    mysql> select * from sql_log_by_digest_by_entry_by_user;
    +----------------------------------+-------+------+------+----------+------+---------------+--------------+
    | sql_digest                       | entry | user | exec | duration | rows | examined_rows | avg_duration |
    +----------------------------------+-------+------+------+----------+------+---------------+--------------+
    | SELECT @@version_comment LIMIT ? |     3 | test |    1 |  2131628 |    1 |             0 | 2131628.0000 |
    | show databases                   |     3 | test |    1 |  7919460 |    7 |             0 | 7919460.0000 |
    | show tables                      |     3 | test |    2 | 16401450 |   64 |             0 |  714341.5000 |
    +----------------------------------+-------+------+------+----------+------+---------------+--------------+
    3 rows in set (0.02 sec)
    

2.0.1.28 sql_log_by_tx_digest_by_entry_by_user

  • sql_log_by_tx_digest_by_entry_by_user

  • 含义:sql log汇总统计

  • 字段:

列名 主键 注释
tx_digest false sql_digest的聚合
exec false 相同tx_digest事务的执行次数
entry false dble_entry表的id
user false 用户名
sql_exec false 事务包含的SQL的执行次数
source_host false 来源IP
source_port false 来源port
sql_ids false 事务包含的sql_id的聚合(最长保留1024个字节)
tx_duration false 事务经历的时间
busy_time false 事务内SQL的总运行时间
examined_rows false 从后端抽取的行数
  • 数据如:
    mysql> select * from sql_log_by_tx_digest_by_entry_by_user;
    +----------------------------------+------+------+-------+----------+-------------+-------------+---------+-------------+-----------+---------------+
    | tx_digest                        | exec | user | entry | sql_exec | source_host | source_port | sql_ids | tx_duration | busy_time | examined_rows |
    +----------------------------------+------+------+-------+----------+-------------+-------------+---------+-------------+-----------+---------------+
    | SELECT @@version_comment LIMIT ? |    1 | test |     3 |        1 | 127.0.0.1   |        8066 | 3       |     2131628 |   2131628 |             0 |
    | show databases                   |    1 | test |     3 |        1 | 127.0.0.1   |        8066 | 1       |     7919460 |   7919460 |             0 |
    | show tables                      |    2 | test |     3 |        2 | 127.0.0.1   |        8066 | 2,4     |    16401450 |  16401450 |             0 |
    +----------------------------------+------+------+-------+----------+-------------+-------------+---------+-------------+-----------+---------------+
    3 rows in set (0.03 sec)
    

2.0.1.29 dble_config

  • 表名:dble_config

  • 含义:当前dble内存中的配置信息(db、sharding、user、sequence)

  • 字段:

列名 主键 注释
content false db、sharding、user、sequence的配置信息(json字符串)

2.0.1.30 dble_xa_recover

  • 表名:dble_xa_recover

  • 含义:查看所有存活的主节点下XA情况

  • 字段:

列名 主键 注释
dbgroup false 节点组
instance false 节点名
ip false 节点ip
port false 节点端口
formatid false mysql中xa_recover表中的formatid字段
gtrid_length false mysql中xa_recover表中的gtrid_length字段
bqual_length false mysql中xa_recover表中的bqual_length字段
data false mysql中xa_recover表中的data字段
  • 数据行:略

2.0.1.31 dble_flow_control

  • 表名:dble_flow_control

  • 含义:查看所有连接的流量控制状态

  • 字段:

列名 主键 注释
connection_type true 连接的类型,固定为MySQLConnection/ServerConnection其中之一
connection_id true 连接在dble中的ID信息,可以通过ID查找日志
connection_info false 接详细信息,使用端口,IP地址,用户,MySQL中的连接ID等
writing_queue_bytes false 当前连接的准备写出的队列里积压的字节数
reading_queue_bytes false 当前连接的已经读取的队列里积压的字节数,前端连接不支持此功能,恒为null
flow_controlled false 当前连接是否处于被流控的状态
  • 数据行:略

2.0.2 支持INSERT/UPDATE/DELETE的语法&表格

为满足读写分离的场景,对部分配置表格支持增删改功能

2.0.2.0 INSERT Syntax

INSERT 
    [INTO] tbl_name 
    [(col_name [, col_name] ...)]
    {VALUES | VALUE} (value_list) [, (value_list)] ... 

INSERT  
    [INTO] tbl_name 
    SET assignment_list

注意:

  • 不支持 INSERT ...SELECT ,LOW_PRIORITY,DELAYED,HIGH_PRIORITY,IGNORE,ON DUPLICATE KEY UPDATE,PARTITION

2.0.2.1 UPDATE Syntax

UPDATE table_reference 
    SET assignment_list 
    WHERE where_condition
value:
    {expr | DEFAULT}
assignment:
    col_name = value
assignment_list:
    assignment [, assignment]

注意:

  • 不支持多表更新
  • 不支持子查询
  • 不支持修改主键(物理主键、逻辑主键)
  • 不支持LOW_PRIORITY,IGNORE,ORDER BY,LIMIT ,PARTITION
  • 不支持不带条件(where)
  • 不支持别名

2.0.2.2 DELETE Syntax

DELETE FROM tbl_name WHERE where_condition

注意:

  • 不支持多表删除
  • 不支持子查询
  • 不支持LOW_PRIORITY,IGNORE,ORDER BY,LIMIT ,PARTITION
  • 不支持不带条件(where)
  • 不支持别名

2.0.2.3 TRUNCATE Syntax

TRUNCATE [TABLE] tbl_name

注意:

  • 暂无

2.0.2.4 支持INSERT/UPDATE/DELETE的表格

2.0.2.4.0 dble_db_group
  • 不可写列:active
2.0.2.4.1 dble_db_instance
  • 不可写列:active_conn_count、idle_conn_count、read_conn_request、write_conn_request、last_heartbeat_ack_timestamp、last_heartbeat_ack、heartbeat_status、heartbeat_failure_in_last_5min

注:由于dble_db_group、dble_db_instance的结构特殊性(整体存储在配置文件db.xml文件中),所以插入一个新的Mysql实例组时需先插入dble_db_group,紧接着插入相对应的dble_db_instance,才能保证实例组准确落盘;如果不遵循该插入顺序会导致数据不一致等未知问题

2.0.2.4.2 dble_rw_split_entry
  • 不可写列:id、blacklist、type
2.0.2.4.3 dble_thread_pool
  • 只支持UPDATE,不支持INSERT/DELETE
  • 只能更新列:core_pool_size,其余列不可更新

注:

1、由于JDK原生线程池(ThreadPoolExecutor)扩缩容机制问题,新建的线程和即将被回收的线程需要一定的时机才会被处理,所以设置core_pool_size后可能并不是立即生效,有一定的延迟性

2、不支持调整AIO场景下的processors 、backendProcessors参数,只支持NIO场景下的processors($_NIO_REACTOR_FRONT-) 、backendProcessors($_NIO_REACTOR_BACKEND-)参数

3、避免在高并发的时候调整线程池数目

2.0.2.5 支持TRUNCATE的表格

sql_statistic_by_frontend_by_backend_by_entry_by_user、sql_statistic_by_table_by_user_by_entry、sql_statistic_by_associate_tables_by_entry_by_user、 sql_log

results matching ""

    No results matching ""