TDSQL新增子set报错,DB资源异常告警解决实战

在创建TDSQL分布式实例的子set时遇到报错和挂起问题,经过排查发现是DB资源异常告警导致。通过检查scheduler和manager的日志,定位到资源无法锁定,进一步发现DB存在隔离和故障端口。清除故障端口后,问题得到解决,成功创建子set。文章详细描述了整个问题排查和解决过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:我在听风想你 

       大家好,这次给大家带来一个新的问题解决实战,废话不多说,直接上干货。

现象:新创建分布式实例后,分布式实例新增实例子set失败(报错与Hang住)。

       这个问题我们是这么发现的,需要创建一个新的分布式实例。新版本创建分布式实例默认会创建两个set此版本TDSQL为10.3.14.1.0,此版本创建实例时会默认新增一个set,如需添加其他set需进入实例后手动新增。于是我们进入到实例内手动新增set。

image.png

如图为新增子set配置,分片这里不需要指定,会根据创建实例的设置,自动从以创建的子set中分出一半。(不一定都是一半,要看具体子set数量)

于是我们进行创建:

image.png

我们认为可能是配置的时候误操作导致找不到可用资源,于是随后又试着创建了一遍,这一次发现创建子set未报错,但是一直Hang在50%这个进度不动。

image.png

进入到分布式实例中发现子set竟然创建出来了,这就很奇怪,之后细看有一点很不正常。

image.png

    我们可以发现数据分片数并没有分过来,每台机器的延迟都超高,而且我们这个实例是最新创建的,一共也没几个实例,按道理说主机的端口是会按照顺序去排列的,不会是之前4005,一下子蹦到4011。(不适用之间有创建其他实例或在其他实例中添加子set的情况)

排查过程与问题解决:

    通过报错我们可以发现是获取资源失败,没有有效的主机。(由于场景无法再复现,我便复述一遍。)首先我们要知道创建实例的流程,赤免运营平台以jason格式通过http传参给OSS API,OSS调用创建实例的函数,然后在zookeeper创建job,通知manager创建实例,manager在创建实例前要检查资源是否够,并且lock 资源后再创建资源。

    那么问题应该是出在这个流程中的某一环节。我们先进到scheduler和manager的日志中查看是否会有更多的报错信息。经过排查,下发的流程都是没有问题的,已经到zookeeper,zookeeper也不是找不到可用的主机,而是无法lock住资源,指出DB资源异常。于是我们查看一下DB的监控。

image.png

    我们发现DB设备存在告警。(但是这个告警并没有在赤兔告警页面显示出来)通过告警我们可以知道是DB机器存在隔离或故障的端口,这也证明了上文中说到的新增set的端口跳跃问题。于是我们去清除一下故障端口。登录到scheduler机器上的bin下/data/application/scheduler/bin/。查看所有资源的端口状态(看看有没有故障端口)

./resource_tool status_res all |grep port

端口的状态有如下:

used:成功运行的set的节点的端口状态

disabled:初始化set中,本节点运行失败,端口状态处于disabled(故障端口)

isolated:初始化set中,本节点运行成功,该set下其它节点运行失败,本节点的端口状态被置为isolated(隔离端口)

我们发现确实存在isolated端口和disabled端口。

清除故障端口(其中最后一个参数ip填的是资源组里available状态的ip 赤兔前台可以看到)

./resource_tool recover_res ip(master_ip)

如:./resource_tool recover_res 10.1.2.17

之后我们再次查看有没有故障端口,以及在chitu前台观察资源有没有被释放

后台:./resource_tool status_res all |grep port

赤兔前台:

image.png

    之后我们再次验证创建,便没有问题了。超高延迟和数据分片未成功的问题我们将会在以后找机会复现,之后根据这两个问题的维度再给出解决办法。文章未尽之处欢迎读到此文章的各位老师们指证和讨论,让我们更加的了解和更好的维护这个产品。

【云贝教育】 腾讯云TDSQL认证课程上线,有不定期公开课

*禁止转载,可转发(转发文章请注明出处)

TDSQL新增子set报错,DB资源异常告警解决实战

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值