AustinDatabases

什么PolarDB MySQL 线程被阻塞了5个小时,到底怪谁?

❝

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群加群请联系 liuaustin3 ,(共3600人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 )(1 2 3 4 5 6 7 8群已经爆满  9群 为纯聊天群,默认不加入不得发广告,自己公众号文章链接等,发一次直接踢,默认加入8群,开10群PolarDB专业学习群115+)

昨天早上刚到单位,就被架构师喊了,数据库DOWN机了,POALRDB 不行了。听音辨别问题,说话的是某个核心项目的负责人,咱们不敢怠慢,一般来说POLARDB是十分皮实的,不容易出问题。上次出问题还是去年代理的问题。

赶紧打开电脑,登录到POLARDB的页面,CPU不高,内存不高,说明不是数据库的性能故障。赶紧切换到一键分析,打开页面,满屏的数据查询因为超时被查杀的,且系统通过异常告知有300多个SQL被阻塞的情况。(这里幸亏我们有自动查杀超时SQL的设置,否则全线业务就会被影响)

通过页面定位到一条核心的阻塞语句,一条ALTER的语句,是一条添加字段的语句,添加了一个 BIGINT的字段且没有默认值,根据我们的经验,POLARDB DDL 被阻塞有以下几种情况

1 RW 有长期未提交的事务导致DDL一直等待

2 RW 被长期运行的慢查询阻塞DDL的执行

3 从节点的长期查询导致主节点的DDL失效

4 RO节点回放慢导致的问题

注意这里是说 DDL在等待其他语句的锁释放后的问题,不是DDL本身执行中的问题。

经过排查,是一个事务长时间运行倒是的问题,阻塞了DDL的执行。

Image

解决方案很简单,

1 查杀DDL

2 查杀这个长时间没有COMMIT的事务

那么在凌晨,这样的问题发生如何解决

Image

这里有一个新功能在10月6日推出的文档,我们可以开启loose_polar_nonblock_ddl=ON 参数来避免 DDL 阻塞后面的操作。注意版本,低版本的POLARDB 不支持此操作。

通过loose_polar_nonblock_ddl_mode参数开启Nonblock DDL功能,并通过loose_polar_nonblock_ddl_retry_times参数设置获取MDL-X锁超时重试的次数、loose_polar_nonblock_ddl_retry_interval参数设置获取MDL-X锁超时重试的时间间隔、loose_polar_nonblock_ddl_lock_wait_timeout参数设置获取MDL-X锁超时的时间。

另外在修改参数的时候有一个参数在官方文档中我没有搜到对应的这个参数的解释。

Image
Image

通过和客服的沟通,告知这个参数是老版本的参数,可以不管,好的,这就修改参数,如果下次还有长事务,应该就不会阻塞被DLL阻挡的后续操作了。

另外我们的监控有相关的MDL锁的监控设置,但这次没有报出来,不知道是什么问题,不过我们又设置了新的告警参数,对被锁阻塞的线程数进行一个阀值的告警。

通过此事 

1  需要经常和阿里云的客服沟通,获得最新的解决方案和参数说明文档

2  设置长事务告警机制,(虽然阿里云POLARDB里面没有这个设置),不行我们就自己来做一个判断告警的程序。

3  通过阿里云POLARDB 自身的 突发连接增长的方式来暂时进行这方面情况发生的判断和告警。

最后到底怪谁,其实已经不重要了,重要的是从里面学到了新的知识,避免下次再遇到类似情况。

MongoDB  软蛋一个,逮谁谁掐一下,咱能硬气点吗?

国产数据库免费时代会结束吗?从星巴克“消费入座”看国产数据库的免费终局

AI 删库到底是AI Agent 的问题,还是DBA的

Oracle 2028 会倒闭吗? 为什么那么多国外的投资界在赌 ORACLE 2028是一个坎

那些离开 IT 行业的人,都去哪里了?Google 云 伦敦大面积宕机,云弹性为什么大

火冒三丈怼了某国产数据库,差不多完了!

普通人的AI 终极武器,怎么3分钟把一周的活干完--workbuddy

MySQL Json 怎么处理,8.021后有什么变化,哪些不应该用JSON

世界知名餐饮企业迁移到POLARDB FOR POSTGRESQL 为整体迁移工作画上圆满句号!

普通人的AI 终极武器,怎么3分钟把一周的活干完--workbuddy

GEQO 是什么,POSTGRESQL SQL优化核心原理为什么在这里

AI技术,太早夭折,太晚吃不上热的,要得就是这半生不熟的  workbuddy 大托拉斯

MongoDB  软蛋一个,逮谁谁掐一下,咱能硬气点吗?

数据库公众号,你停更了吗?

我和OceanBase集中式滚了4个月,其实OB想做的并不只是数据库

我和OceanBase集中式滚了4个月,其实OB想做的并不只是数据库

我和OceanBase集中式 滚了4个月回顾,MySQL兼容性的惊喜

与OceanBase集中式摸爬滚打的4个月,我得到了什么 ?
醋评 数据库行业 “不行了”  ---来自五彩斑斓乌鸦的 3336个字
《没有人为不需要的性能付费 经济下行,正在倒逼数据库"做减法"》

PostgerSQL 14-17备份的变化 PG17更贴近商业数据库 与 实际命令

PostgreSQL 怎么用好高版本的PG调优--PG14-PG18

同学问 PG17 的备份比老的版本 好哪了? 你给总结总结 !!

算法领主与数据农奴:AI时代的不能说的问题-- 此文为AI临时工所做与公众号作者无关

《AI为什么迟迟进不了企业核心系统?我总结了八个原因》

《AI不是出事了,而是我们开始看到它的代价》
NOSQL 怎么翻盘,降本增效为企业节省资源,--DTCC 通过NOSQL给企业系统瘦身

怎么AI设定评估成本模型思考

MySQL 写不进去数据,程序报错,谁的问题?

从亚马逊 AGI 部门裁员看 AI 商业逻辑的必然转向  -- 资本不会给AGI 半点脸

比起简单的Skill技能,我更想建立Agent Skill的系统思维能力--- 感谢本书作者答疑解惑

MongoDB 全文索引 与 展示查询数据的一部分,提高性能

体现价值-我们靠PostgreSQL迁移PolarDB,给公司省下了100万 “巨款”

《告别迁移焦虑:OceanBase MySQL 模式能否兼容 DBA 的“祖传”运维 SQL?》

干数据库不是买白菜:光盯着License几毛钱,看不见300台机器的电费?

一个秘密,不是你 SQL 写对了,是优化器帮“擦了屁股”  客户问迁移后为什么快了--迁移到PolarDB后的故事

AI 时代,我却用不上一个靠谱的数据库产品

AI 引入后,MySQL 列权限控制,插入,更新,读取,删除 --有了AI 真是越帮越忙

PostgreSQL 大表改字段卡死的问题解决了吗?  解决了方案在此

AI 引入DBA 工作,造成工作量增加,忙不过来,根本忙不过来!!!

三无项目导致MongoDB 持续1406% CPU 问题解决

Image