pt-online-schema-change - テーブルの名前変更時のレプリケーションの大幅な遅延
P粉331849987
2023-09-01 11:39:37
<p>Percona MySQL 5.7 データベースで ptosc を使用していますが、プロセスの最後に、すべてのレプリカで 2 ~ 3 分の巨大なレプリケーション レイテンシが発生しています。 </p>
<p>次のコマンドを使用すると、レプリケーションの遅延が発生したときにデータのコピーが一時停止されますが、プロセスの終わりに近づくと、おそらくテーブルの名前が変更されるときに、大幅なレプリケーションの遅延が発生します。 </p>
<p>これは使用しているコマンドです: </p>
<pre class="brush:php;toolbar:false;">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</pre></p>
問題を発見した可能性があります。外部キーには
drop_swap
メソッドを使用します。名前変更プロセスは非常に高速ですが、テーブルが削除されるまで待機する必要があり、大きなテーブルでは時間がかかります。したがって、「切り替え」プロセス全体にはさらに時間がかかります。
私たちにとっての解決策は、FK を避け、移行時のダウンタイムを考慮することでした。