gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:30:06 25 4
gpt4 key购买 nike

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

我尝试了几次,每次都出现错误,表示进程因以下原因而中止达到临界负载(即threads_running = 60,我总是使用它并且以前从未失败过)

我使用显示完整进程列表发现了一些奇怪的事情:那里有很多复制线程,例如:

REPLACE INTO `db`.`_some_table_new` ...

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

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

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

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

谁能给我一些帮助,谢谢!

最佳答案

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

pt-online-schema-change 仅运行一个线程。但是触发器可能由在原始表上执行 INSERT/UPDATE/DELETE 的许多其他客户端线程执行。

pt-online-schema-change 并不是免费修改表的神奇方法。它是有成本的。该表的每次更新都会变成两次更新。

听起来您的服务器无法处理运行 pt-online-schema-change 的额外负载,而您的原始表运行更新的流量很大。服务器无法像客户端执行这些更新一样快地继续执行这些更新。所以他们落后了并排队。

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

更简单的解决方案是将表格更改安排在稍后流量较少的时间。

关于mysql - pt-online-schema-change 增加了这么多复制线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com