Percona社が公開しているRDBMSの運用のためのツールキットであるPercona Toolkitに含まれるツールのひとつ。Perlで書かれていて1万行くらいの大きめるCLIツール。処理の流れとかは以下の記事を参考に読んでみた。
- スキーマ変更対象のテーブルと同じスキーマのテーブルを作成
- 新しいテーブルに対してALTER TABLEを実施
- 既存テーブルと新しいテーブル間でレコードを同期するためのトリガーを作成
- 元のテーブルのレコードを新しいテーブルにコピーする
- 元のテーブルと新しいテーブルをスワップする
- ALTER TABLE実施前のテーブルを削除する
細かい挙動を変えるオプションは公式かUsageを見ると良さそう