MySQLドキュメント から 、マスタースレーブアーキテクチャを設定する方法は2つあります。ログファイルを使用してトランザクションを複製する従来の方法と、GTID(グローバルトランザクション識別子)を使用する新しいバージョン(5.6以降)。
GTIDを使用してフェイルオーバー処理を行う場合は、 mysqlfailover 効用。ユーティリティは、データベース管理者が定義した3つの方法のいずれかでマスターの障害を処理します。
- auto(デフォルト):マスターになるために優先されるスレーブのリストで検索が行われ、使用可能なスレーブがない場合は、別のスレーブが選択されます。選択したスレーブは最初に他のすべてのスレーブのスレーブになり、他のスレーブからのすべての変更がコピーされます。これにより、新しいマスターが可能な限り最新のバージョンになります。
- 選択:上記と同じですが、リストに使用可能なスレーブがない場合、エラーが返され、終了します(フェイルオーバーなし)
- 失敗:フェイルオーバーは発生しませんmysqlfailoverはデータベースを監視し、失敗が発生した場合はエラーを返します。
従来の方法では、データベース管理に独自のスクリプトを実装する必要があり、ここ 。