我计划在复制环境中的生产服务器上使用pt-online-schema-change工具执行table alter。想要了解当pt-online-schema-change工具由于服务器工具而中止时执行的步骤。是否可以在由于服务器负载而中止后恢复?它会删除临时表和它创建的触发器吗?我需要重新开始吗?
发布于 2015-06-12 16:44:04
pt-online-schema-change对它所做的事情非常冗长。所以,当某些东西失败时,我总是能够读到最后一行,它会告诉我该怎么做。
特别是当迁移由于负载而失败时,触发器并没有被删除。在这种情况下,输出已经准确地说明了我需要执行什么操作才能删除它们。它们有可能被保留下来,以便能够恢复。我不知道这个。在我的例子中,我总是丢弃触发器,在调整参数或降低数据库使用率后从头开始。如果你不是在编写pt-online-schema-change执行的脚本,我想我的方法是可行的。
关于自动删除临时表和触发器;默认情况下,它会删除它们(参见documentation)。但是,您始终可以指定--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中的说明删除我的巨型表。
https://stackoverflow.com/questions/29254425
复制相似问题