5

そこにいる DBA に質問があります。1 つの Web/DB サーバーのセットアップから 2 つの Web/2 つの DB サーバーのセットアップにスケーリングし、Web サーバーの前にロード バランサーを配置して、受信クエリを均等にルーティングする場合...どのように解決策を講じますか? MySQL Cluster のように、1 つの DB サーバーに加えられた変更がすぐに他のサーバーに認識されるように (そうしないと、他の DB サーバーにルーティングされたユーザーはデータを表示しないか、古いデータになります)、または少なくとも他の Web サーバーが「ダーティデータ」を読み取っていることを認識し、最新のデータを取得するために X 秒後に再試行する必要がありますか?

ありがとうございました。

4

3 に答える 3

3

これを行う2つの方法。アクティブ/アクティブまたはアクティブ/パッシブ。アクティブ/パッシブが最も一般的 データはパッシブ ノードで同期されます。クラスターは、アクティブ ノードがダウンしてもすぐにパッシブ ノードに切り替わるため、ダウンタイムがないという点で便利な構成です。クラスタリングは、クラスタ内の 2 つのノードを継続的に同期します。

私は SQL サーバーを使用していますが、クラスタリングの基本的な前提は mySQL でも同じだと思います。つまり、ハードウェア障害によるダウンタイムがない (または目立たない) ことです。

EDIT:さらに、クラスタリングソフトウェアが同期を処理します。心配する必要はありません。クラスタ ノードは、Windows の 1 つのサーバーのように動作する仮想ディレクトリとして表示されます。

ここにこれを説明するドキュメントがあります

http://www.sql-server-performance.com/articles/clustering/clustering_intro_p1.aspx

于 2009-06-17T07:32:52.080 に答える
2

Windows サーバー クラスタリング (ハイ パフォーマンス クラスタリングと区別するため) には、共有外部ストレージ アレイがあります。アクティブ ノードはストレージの所有権/制御を取得し、そのノードに障害が発生すると、ストレージは以前のパッシブ ノード (現在はアクティブ ノード) に「フェールオーバー」します。共有ストレージとは対照的に、各ノードで独立したストレージを可能にするさまざまなスキームもあります。ただし、これらのアプリケーションでは、アプリケーションがクラスター化されていることを認識し、2 つのストレージ セットの同期を維持するのに十分なインテリジェンスを備えている必要があります。

于 2009-06-17T07:46:17.187 に答える
0

クラスタリングは、多数のノードがワークロードを処理する場所でもあります。これは、アクティブ/アクティブ クラスタと呼ばれることもあります。つまり、すべてのノードがワークロードを共有し、アクティブです。これは通常、Oracle RDBMS データベース用のOracle RAC ( RAC@Wikipedia ) などの専門的なソフトウェアによって処理されます。RAC により、Oracle は非常に大きなワークロードに拡張できます。

于 2009-06-17T07:53:49.057 に答える