我们在 Percona MySQL 5.7 数据库上使用 ptosc,在该过程结束时,我们在所有副本上遇到了 2-3 分钟的巨大复制延迟。
我们使用以下命令,当遇到复制延迟时,它确实会暂停数据的复制,但在过程接近尾声时,大概在重命名表时,我们确实遇到了巨大的复制延迟。
这是我们正在使用的命令:
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
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我们可能已经发现了问题。我们对外键使用
drop_swap方法。虽然重命名过程非常快,但需要等待表被删除,这在大表上需要一些时间。因此整个“切换”过程确实需要更长的时间。
对我们来说,解决方案是远离 FK,并在对其进行迁移时考虑停机时间。