乐趣区

关于mysql:实践案例丨Ptosc工具连接rds-for-mysql-数据库失败

本文分享自华为云社区《Pt-osc 工具连贯 rds for mysql 数据库失败》,原文作者:云技术搬运工。

【景象】

主机能够 telent 通 rds 端口,并且应用 mysql-client 连贯失常;

如下图所示:应用 pt-osc 工具连贯时,始终没有响应,始终卡在哪里

等了 4 - 5 分钟左右后,会有响应,如下图所示:提醒不能连贯到 x.x.x.x, 而这个 ip 地址查到是备节点的 ip。

【排查】

在 rds 侧查看工作流如下图:发现 pt-osc 先连进来执行了一下 show full processlist,而后卡了 4 - 5 分钟左右。联合下面截图中卡了 4 - 5 分钟后客户端的返回看,pt-osc 工具先 show full processlist 失去备库的 ip,而后去连贯备库了,然而备库因为作为高可用性而做的备份,不间接提供内部服务,所以是连贯不上的。

【解决】

Pt-osc 有一个参数:-recursion-method

【type:array; 默认值:processlist,host

用于判断是否存在从库的形式,能够的形式有:

processlist:show processlist;

hosts:show slave hosts

dsn=DSN:DSNs from a table

none:不查找从库】

pt-osc 连贯时 加上 –recursion-method=none 意为不查找从库,就失常了。具体命令为 #pt-online-schema-change –user=root –password=xxxxx –host=xx.xx.xx.xx P=3306,D=xx,t=xx –charset=utf8 –alter=”ENFINE=InnoDB” –nocheck-replication-files –alter-foreign-keys-method=auto –recursion-method=none –execute。

【总结】

Pt-osc 工具连贯数据库时会先通过 sql 失去备库的 ip,而后连贯备库。然而咱们 rds 的备库是无奈连贯的,因而会卡住。而连贯单机类型的 rds for mysql 则失常。

点击关注,第一工夫理解华为云陈腐技术~

退出移动版