MySQL マスター/マスター レプリケーション システムを新しいシステムに移行する方法

MySQL マスター/マスター レプリケーション システムを新しいシステムに移行する方法

私は、マスター/マスター レプリケーションで MySQL を実行している 2 台のマシンを備えたシステムを使用しています。

システムを、マスター/マスター レプリケーションも実行している新しいマシンに移動したいと考えています。古いクラスターから 1 つのノードを削除して新しいノードに置き換え、最初の新しいノードから 2 番目のノードへの新しいレプリケーションを作成せずに、これを行うことは可能ですか?

アクティブでマスター/マスターを実行している 2 つのノード node1 と node2 があるとします。ダウンタイムをあまりかけずに、クラスターを new1 および new2 という新しいノードに「魔法のように」移動するにはどうすればよいですか。

答え1

M1 <=> M2 があり、最終的には新しいハードウェア M3 <=> M4 にしたいと考えています。

  1. (短時間の中断) すべてのクライアント (ライターとリーダー) を M2 に移動します。
  2. M1 をダウンさせてクローンを作成し、次のトポロジで M3 を作成します: M1 <=> M2 -> M3。(M3 は M2 のスレーブにすぎません。)
  3. M3 から M4 を構築します: M1 <=> M2 -> M3 -> M4。(M3 はまだ使用されていないため、中断はありません。)
  4. (短時間の中断) すべてのクライアントを M1 と M2 から移動して、M3 を指すようにします。このプロセスでは、すべてのレプリケーションが少なくとも M3 に到達していることを確認します。
  5. M1 と M2 を破棄します。これで、M3 -> M4 のみになります。
  6. (短時間の中断) デュアルマスター (M3 <=> M4) を設定し、必要に応じてクライアントを再配置します。

3 つの中断はそれぞれ、マスターの停止による障害に相当することに注意してください。

デュアル マスターを使用する場合の一般的な推奨事項: 2 つのサーバーのうち 1 つにのみ書き込み、もう 1 つをバックアップおよび読み取りスケーリングとして使用します。

さらに良いのは、自動フェイルオーバーなどを実現するために、Galera Cluster(またはInnoDB Cluster)に切り替えることです。これにより、将来のトポロジ変更がさらに容易になります。このような移行は、似ている今説明した内容に当てはまります。

関連情報