我有一个运行MySQL 5.5.46的RDS实例,它有一个主键为int的表,它目前有19亿条记录,接近21亿条限制,大小约为425GB。我试图使用pt-online-schema-change将列更改为大整数。
我成功地在一个测试服务器(m3.2xlarge)上测试了更改,虽然花了大约7天的时间,但它确实成功地完成了。此测试服务器没有额外负载。(注:7天似乎是一段很长的时间)。
对于生产环境,目前没有复制/从机(但有Multi-AZ),为了帮助资源争用和加快速度,我使用了r3.8xlarge实例类型。
在两次尝试之后,生产迁移将达到大约50%,还剩下1天,然后RDS似乎会停止接受连接,迫使pt-osc两次都回滚或完全失败,因为RDS需要重新启动。
我在RDS控制台或日志中没有看到任何明显的东西来帮助说明为什么会发生这种情况,我觉得实例类型应该能够处理大量的连接/负载。
在我第三次尝试时,看看CloudWatch的指标,数据库服务器本身似乎没有太多的负载:5%的CPU, 59个DB连接,45GB的可用内存,写IOPS ~2200-2500。
想知道是否有人遇到过这种情况,如果有,是什么帮助解决了连接问题?
如果有人对如何加快这个过程有建议,我很乐意听到。我正在考虑尝试更大的块大小和休息时间,但不确定这最终会如何影响应用程序。
嗨,瑞安,
我知道你已经很久没有发表这篇文章了。你最后做了什么?
我也面临着同样的问题。