3

我计划pt-online-schema-change在复制环境中的生产服务器上使用表更改工具。想了解pt-online-schema-change由于服务器工具而导致工具中止时执行的步骤。由于服务器负载而中止后是否可以恢复?它会删除临时表和它创建的触发器吗?我需要重新开始吗?

4

1 回答 1

2

pt-online-schema-change对它正在做什么非常冗长。所以,当某些事情失败时,我总是能够阅读最后几行,它会告诉我该怎么做。

特别是当迁移由于负载而失败时,触发器并没有被删除。在那种情况下,输出已经准确地说明了我需要执行什么来删除它们。他们有可能保持能够恢复。我不知道那件事。就我而言,在调整参数或降低数据库使用率后,我总是放弃触发器并从头开始。如果您不编写脚本pt-online-schema-change执行,我想我的做法是可行的。

关于自动删除临时表和触发器;默认情况下,它会丢弃它们(请参阅文档)。但是,您始终可以指定--nodrop-old-table和。对于较大的表(当我有磁盘空间时),我通常总是指定. 这使我能够快速回滚到旧表,以防在换入时出现问题,只需发出--nodrop-new-table--nodrop-triggers--nodrop-old-table

RENAME TABLE mytable TO mytable_failedmigration, old-table TO mytable;

如果迁移成功,我会按照https://serverfault.com/a/566710/37237中的说明删除我的巨型表。

于 2015-06-12T08:44:03.517 回答