そのため、現在、Maxscaleに1つのマスターと1つのスレーブがあり、読み取り/書き込み分割を行うアーキテクチャがあります。スレーブに障害が発生すると、Maxscaleはスレーブを正しく認識し、それに応じて情報を表示し(Webサイトをダウンさせません)、マスターでの読み取りと書き込みの両方を許可します。ただし、マスターに障害が発生すると、mysqlfailoverはスレーブをマスターにプロモートしますが、Maxscaleはスレーブがマスターになったことを認識しません。書き込み権限を付与していないようです(これにより、Webサイトがダウンします)。
2つのデータベースのいずれかに障害が発生すると、MySQLはトポロジに変更があったことを認識しますが、Maxscaleは認識しません。
どのMaxscale構成で、Maxscaleにこの新しいトポロジを正しく認識させることができますか(スレーブが新しいマスターになりました)? Maxscaleに新しいマスターに適切な読み取り/書き込み権限を正しく与えるために選択する必要があるオプションはありますか?
私たちのトポロジーは非常に単純なので、Maxscaleは、新しいスレーブがマスターになったことを認識し、それに応じて調整するのに十分スマートでなければならないと感じています
問題は、mysqlfailoverがmaxscaleとの競合を引き起こしていたことでした。マスターに障害が発生すると、mysqlfailoverは自動的に新しいスレーブをマスターに昇格させます。ただし、これを行うと、Maxscaleとの競合が発生するため(通常は独自に実行するため)、どのサーバーがマスターで、どのサーバーがスレーブであるかが追跡できなくなります。