Percona MySQL 5.7 データベースで ptosc を使用していますが、プロセスの最後に、すべてのレプリカで 2 ~ 3 分の巨大なレプリケーション レイテンシが発生しています。
次のコマンドを使用すると、レプリケーションの遅延が発生したときにデータのコピーが一時停止されますが、プロセスの終わりに近づくと、おそらくテーブルの名前が変更されるときに、大幅なレプリケーションの遅延が発生します。
これは使用しているコマンドです:
pt-online-schema-change -u 'ユーザー名' -p 'パスワード' \ --max-lag 5 \ --max-load Threads_running=30 \ --critical-load Threads_running=200 \ --pause-file /tmp/pt-pause-file \ --alter-foreign-keys-methoddrop_swap \ --alter "ADD COLUMN テスト TINYINT(1) DEFAULT '0' NOT NULL" \ --再帰 1 \ D=db,t=table
問題を発見した可能性があります。外部キーには
drop_swap
メソッドを使用します。名前変更プロセスは非常に高速ですが、テーブルが削除されるまで待機する必要があり、大きなテーブルでは時間がかかります。したがって、「切り替え」プロセス全体にはさらに時間がかかります。
私たちにとっての解決策は、FK を避け、移行時のダウンタイムを考慮することでした。