5

Windows 2008 Web Edition と SQL 2008 Standard Edition を実行している 2 台のサーバーがありますが、それらの負荷を分散する最善の方法は何ですか?

データベース ミラーリングまたはログ配布を使用する必要がありますか? 私はシステム管理者ではないので、開発者が Win2008 NLB を構成するのは簡単ですか?

私が求めているのは、1 つのサーバーに障害が発生した場合でもサイトを実行できるようにすることと、需要が増大した場合にサーバーを簡単に追加できることです。私のサイトは ASP.Net 3.5 で実行されており、すべてのサイトで既にセッションが SQL Server に保存されています。

4

2 に答える 2

6

SQL Server 自体は負荷分散をサポートしていません。説明したメカニズム (データベース ミラーリングとログ配布) を使用してアクティブ/パッシブ フェールオーバーを行うことができ、クラスタリングやレプリケーションなど、他にも多くのオプションがあります。

開始する 2 つの質問は次のとおりです。

  • どれくらい落ち込む余裕がありますか?(別名、目標復旧時間、または RTO)
  • どのくらいのデータを失うことを許容できますか? (別名、目標復旧時点、または RPO)

ダウンしても許容できる時間が長くなり、失われる可能性があるデータが多ければ多いほど、ソリューションはより簡単かつ安価に実装できるようになります。ダウンタイムとデータが少ないほど、実装は難しくなります。

たとえば、同期データベース ミラーリングにより、トランザクションが失われないことが保証されます。結果がクライアントに返される前に、両方のデータベース サーバーでトランザクションがコミットされます。残念ながら、重い負荷がかかるとパフォーマンスにかなりの影響があり、最小限の管理ユーティリティが組み込まれています。このようなことを管理するには、フルタイムの DBA が必要です。

反対に、15 分ごとにログを配布すると、15 分 (またはそれ以上) のデータが失われる可能性があり、障害後にオンラインに戻るまでに 15 ~ 60 分かかる可能性があります。ただし、安価で、パフォーマンスへの影響が非常に少なく、セットアップもかなり簡単です。

BrentOzar.com でRPO と RTO の紹介、およびSQL Server の HA と DR 機能の紹介を入手しました。それらを確認すると、戻ってきてより具体的な質問をする準備が整います。それが役立つことを願っています!

于 2009-02-21T18:26:15.130 に答える
0

アプリケーションの種類にもよりますが、最初にすべきことは、Web サーバー上であまり変化しないものをキャッシュすることです。このようにして、データベースへのヒットが少なくなります。Web サーバーは、そのデータベースのスケーリングがはるかに簡単です。

これは、このトピックに関する非常に優れた記事です。

于 2009-02-21T18:43:50.987 に答える