首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pt-online-schema-change增加了这么多复制线程?

pt-online-schema-change增加了这么多复制线程?
EN

Stack Overflow用户
提问于 2017-08-18 23:36:44
回答 1查看 148关注 0票数 0

前几天,我使用pt-online-schema-change向一个表中添加了一个列和索引,该表大约有100万行,.ibd文件大小约为5G字节。

我尝试了几次,每次我得到一个错误,说进程由于达到临界负载而中止(这是threads_running=60,我总是使用它,以前从未失败过)

我在使用show full process list时发现了一些奇怪的东西:有很多复制线程,比如:

代码语言:javascript
复制
REPLACE INTO `db`.`_some_table_new` ...

运行了很长时间(数十秒和数百秒),并且处于“更新”状态。

因为我知道pt-online-schema-change只使用了一个复制线程,并且我多次使用这个工具,每次我只能观察到一个线程的分块和复制,但这次一切都改变了,有很多复制线程阻塞在那里。

我在percona.com中搜索了文档,但没有找到有关多线程复制选项的任何信息。

我这次修改的表被访问得非常频繁,但我认为只要有一个复制线程,这就不会造成问题。

有人能帮我一下吗,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-08-19 01:38:51

REPLACE语句由pt-online-schema-change创建的触发器运行。

pt-online-schema-change只运行一个线程。但触发器可能由许多其他在原始表上执行插入/更新/删除操作的客户端线程执行。

pt-online-schema-change不是免费执行alter table的神奇方法。这是有代价的。对该表的每次更新都会变成两次更新。

这听起来像是您的服务器无法处理运行pt-online-schema-change的额外负载,而您有大量的流量在原始表上运行更新。服务器不能像客户端执行这些更新一样快地执行这些更新。因此,他们落在后面,排队等候。

您可以升级到功能更强大的服务器。更多的CPU核心和更快的I/O系统可能会有所帮助。但这将是非常昂贵的。

更简单的解决方案是将表更改安排到流量较少的较晚时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45760329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档