暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TDSQL数据库故障诊断-分区表的路由信息不存在报错处理

146

1问题描述

开发人员反馈通过客户端可以看到TDSQL数据库业务表,但是查询该业务表会出现表不存在错误,即“660-Proxy ERROR Table xxx does not exist”。 

2处理过程

1、根据开发人员提供的数据库访问地址和端口信息,使用DBeaver客户端验证问题是否可以重现。登录数据库后,在客户端上点击该表的外键、引用等按键会弹出错误660。

2、在赤兔管理平台的“实例管理”列表中找到对应的实例,可以看到这是一个分布式实例,由4个set组成。

3、在“调度与管理系统“找到Zookeeper集群对应的服务器地址,并登录到Leader服务器。

4、登录zookeeper服务台,查看这个表对应的路由表信息。

    cd data/application/zookeeper/bin
    ./zkCli.sh -server 127.0.0.1:2181
    ls tdsqlzk/group_1720751957_78/routes/rtns@shardkeys/rt@pubserv_db
    需要将group_1720751957_78换成实际的实例group名称。

    5、TDSQL架构图及各组件的关系说明

    当业务访问时,首先通过负载均衡LVS转发流量,负载均衡是基于TCP/IP协议高性能的连接,然后通过SQL引擎解析路由信息,解析其中的SQL语句,读写分离判断,产生全局唯一值。SQL引擎通常设置3台,且没有主备之分全是对等的。解析完之后的SQL语句分发到对应的set上的MySQL底层,再由MySQL去执行。MySQL上有一个agent,通过agent与zookeeper关联。在部署的时候,agent和MySQL部署在一起。整个架构的核心是SQL引擎,MySQL存储引擎和zookeeper管理节点。

    Zookeeper分布式调度系统管理维护整个集群元数据管理和通知作用。Hadoop负责备份,数据库的数据。Kafka主要是负责SQL的审计、多源同步。操作整个系统则是通过前台赤兔管理平台,通过赤兔平台设置任务,监控,采集,备份以完成日常基本的运维服务。

    6、Zookeeper存储分片表对应的路由信息,但是却未查询到这个表对应的路由信息。

      ls /tdsqlzk/group_1633417155_6280/routes/rtns@shardkeys/rt@pubserv_db.intf_call_log_hl_202407
      get /tdsqlzk/group_1633417155_6280/routes/rtns@shardkeys/rt@pubserv_db.intf_call_log_hl_202407
      查询记录为空

      7、随机找一张分片表,并查看其路由信息

        get /tdsqlzk/group_1633417155_6280/routes/rtns@shardkeys/rt@库名.表名


        将{}中的字段复制出来并更改为异常表的相关内容。修改后的内容如下。

        8、手动创建分片表对应的路由信息,即定义如何根据特定的分片键(Shard Key)将查询或数据操作路由到特定的分片(Shard)上。

          create /tdsqlzk/group_1633417155_6280/routes/rtns@shardkeys/rt@pubserv_db.intf_call_log_hl_202407{"auto_inc":"","auto_inc_step":0,"auto_inc_type":0,"dbtable":"pubserv_db.intf_call_log_hl_202407","keytype":15,"shardkey":"ttp_intf_url"}

          9、在zookeeper上创建这个分片表对应的路由信息后,再次使用客户端可以查询到对应的表数据。

          3参考资料

          1、TDSQL核心技术架构原理解析 

          https://www.bilibili.com/read/cv13146984/

          2、TDSQL(MySQL)架构原理总结 

          https://blog.51cto.com/u_15721050/6038871

          3、TDSQL产品架构

          https://cloud.tencent.com/privatecloud/document/70392120434782208/70392134170079232

          4、zookeeper故障恢复方案

          https://cloud.tencent.com/privatecloud/document/78770101602512896/78770102719246336

          5、https://blog.csdn.net/PWY13148/article/details/138133897


          全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

          欢迎关注公众号!

          文章转载自数据库运维之道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论