MySQL 8.0にしてからレプリカに対してxtrabackupをやるとたまにデータの不整合が起きてSQLスレッドがたまに止まるな。毎回じゃないのはなんだろ。
— RyuichiWatanabe@gurasan (@ryuichi_1208) 2024年4月28日
マルチスレッドレプリケーション(MTS: Multi-Threaded Replication)を使用する場合、MySQL 8.0.27以降でGTIDを使用せずにレプリケーションを行っていると、特定のシナリオで問題が発生することがあります。MTSがデフォルトで有効になっているため、複数のワーカースレッドが並行して異なるトランザクションを処理します。これにより、バイナリログのポジションが一番遅れているスレッドのポジションとして更新され、不整合が発生する可能性があります。
取れる対策
- GTIDの使用を検討する
- シングルスレッドレプリケーションへの切り替えを検討する
- レプリカのエラー検出とスキップ設定