Что делает инструмент pt-online-schema-change, если он прерывается?

Я планирую использовать pt-online-schema-change инструмент для изменения таблицы на рабочем сервере в среде репликации. Хотел понять, какие шаги выполняются когда pt-online-schema-change инструмент прерывается из-за серверного инструмента. Можно ли возобновить работу после ее прерывания из-за нагрузки на сервер? он удалит временную таблицу и триггеры, которые он создал? Нужно ли начинать все сначала?

1 ответ

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.

Другие вопросы по тегам