web-dev-qa-db-ja.com

中止されたPT-online-schema変更コマンドの問題

テーブル定義を変更するために、pt-online-schema changeコマンドを中止しました。ここで、pt-online-schema changeを再度実行すると、次のエラーが発生します。

テーブル <db name>.<table name>にはトリガーがあります。このツールは独自のトリガーを作成する必要があるため、テーブルにトリガーを設定することはできません。

Pt-online-schema changeを再度実行するにはどうすればよいですか?

MySQLを使用しています。

2
Thorkil Værge

Percona Online Schema Changeが実行されると、新しいテーブルを古いテーブル(以前のテーブル定義を使用して)に対して行われた更新と同期させるトリガーが作成されます。

Pt-online-schema changeを再度実行する前に、これらのトリガーを削除する必要があります。

MySQLでは、show triggers like '<table name>'\Gと記述することでトリガーを見つけることができます。

そして、次のように入力して、これらのトリガーを削除できます

drop trigger <trigger name>;

テーブルの定義にpt-online-schema changeによって作成されたトリガー以外のトリガーがない場合にのみ、このレシピに従う必要があります。それらの名前は「pt_osc_」で始まります。

4
Thorkil Værge