pt-online-schema-change - 重命名表时出现巨大的复制延迟
P粉331849987
2023-09-01 11:39:37
<p>我们在 Percona MySQL 5.7 数据库上使用 ptosc,在该过程结束时,我们在所有副本上遇到了 2-3 分钟的巨大复制延迟。</p>
<p>我们使用以下命令,当遇到复制延迟时,它确实会暂停数据的复制,但在过程接近尾声时,大概在重命名表时,我们确实遇到了巨大的复制延迟。</p>
<p>这是我们正在使用的命令:</p>
<pre class="brush:php;toolbar:false;">pt-online-schema-change -u 'username' -p 'password' \
--max-lag 5 \
--max-load Threads_running=30 \
--critical-load Threads_running=200 \
--pause-file /tmp/pt-pause-file \
--alter-foreign-keys-method drop_swap \
--alter "ADD COLUMN test TINYINT(1) DEFAULT '0' NOT NULL" \
--recurse 1 \
D=db,t=table</pre></p>
我们可能已经发现了问题。我们对外键使用
drop_swap
方法。虽然重命名过程非常快,但需要等待表被删除,这在大表上需要一些时间。因此整个“切换”过程确实需要更长的时间。
对我们来说,解决方案是远离 FK,并在对其进行迁移时考虑停机时间。