3

私は新しいサーバーに移動しており、2 つの MySQL サーバーのデータの一貫性を維持する方法を考えているため、睡眠と髪の毛の両方が失われています。その過程で何も失うことがないように、Master-Master セットアップを使用することを考えていました。それはどれほど実行可能です。潜在的な落とし穴はありますか?

4

1 に答える 1

1

新しいサーバーに書き込まれたデータを古いサーバーが認識する必要があるのはなぜですか? このため、マスタースレーブ構成にしてください。

たとえば、同じタイプの構成に対処する必要があります。古いサーバーは奇数の ID のみを使用し、新しいサーバーは偶数の ID のみを使用するようにしてください。

古いサーバー (マスター) をシャットダウンしたらすぐに、誰もそこに書き込めないようにします。

Web サイト全体で、DB と Web ホスティングの両方に 1 つのサーバーを使用していると想定しています。この場合、次のことを追加したいと思います。

DNS に依存してサイトを移行しないでください。特定のユーザーにとっては非常に長い時間がかかる可能性があります。

次の点を考慮してください。

  • old.example.org は古いマシンのサイトです
  • new.example.org は、新しいマシン上のサイトです。
  • www.example.org は old.example.org の CNAME です。

カットオーバーを行うときは、次の手順を実行します。

  • 古い DB サーバーがシャットダウンされているか、読み取り専用に設定されています。
  • www.example.org が new.example.org の CNAME になる
  • old.example.org は、人々を new.example.org に自動的にリダイレクトする Web サイトをホストするようになりました。

これは、ユーザーがしばらくの間、URL new.example.org を直接参照する可能性があることを意味します。DNS が完全に伝播されると、ユーザーはリダイレクトされなくなり、www.example.org を使用すると自動的に新しいサーバーにヒットします。

トラフィックの少ないサイトの場合、これははるかに簡単です.古いアプリケーションが新しい MySQL データベースを使用するように指定するだけです。確かに、ネット経由で mysql サーバーに接続するのは少しばかげているように思えるかもしれません。しかし、あまりにも多くのデータを扱っていない場合、これは他のどのソリューションよりもはるかに簡単です..

于 2010-01-04T09:31:07.427 に答える