Pt-osc工具连接rds for mysql 数据库失败

举报
云技术搬运工 发表于 2021/04/21 11:23:53 2021/04/21
【摘要】 主机可以telent 通rds 端口,并且使用mysql-client 连接正常

【现象】

主机可以telent rds 端口,并且使用mysql-client 连接正常;

如下图所示:使用pt-osc工具连接时,一直没有响应,一直卡在哪里

1.png

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

2.png【排查】

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

3.png【解决】

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

typearray; 默认值:processlist,host

用于判断是否存在从库的方式,可以的方式有:

processlistshow processlist;

hostsshow slave hosts

dsn=DSNDSNs 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 则正常

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。