pt-onlineをご覧ください。 -スキーマ変更 Perconaツールキットから。基本的にそれが行うことは次のとおりです:
- 元のテーブル構造をコピーし、ALTERを実行します。
- 古いテーブルから新しく作成されたテーブルに行をコピーします。
- トリガーを使用して、コピー中の変更を追跡および同期します。
- すべてが終了すると、両方の名前を変更してテーブルを交換します。
シングルインスタンスデータベースでは非常にうまく機能しますが、レプリケーションを使用していて、スレーブを停止して後で再構築する余裕がない場合は、かなり注意が必要になる可能性があります。
この
PS:これは古い質問だと思います。誰かが検索エンジンを介してこれにぶつかった場合に備えて、答えるだけです。