3

私は現在、Cisco ロード バランサーの背後にある 2 つの Web サーバーでホストされている asp.net Web サイトを持っています。2 つの Web サーバーは、1 つの MSSQL データベース サーバーを参照します。

このデータベース サーバーは単一障害点であるため、バックアップ用に MSSQL サーバーを追加します。両方の MSSQL サーバーにすべてを書き込むように web.config ファイルをセットアップしたいと思いますが、何らかの理由でアクセスできない場合を除き、「プライマリ」データベース サーバーからのみ読み取ります。その時点で、バックアップ MSSQL サーバーが使用されます。

これは web.config ファイルの設定で可能ですか、それともコードで行う必要がありますか? 助けてくれてありがとう。

新しい情報: このトピックについて、過去数日間調査した結果、さらに情報を追加したいと思いました - Microsoft TechNet には、「Implementing Application Failover with Database Mirroring」( http://www.microsoft.com/technet/ prodtechnol/sql/bestpractice/implappfailover.mspx#EMD )。

これは特に、Microsoft SQL Server 2005 のデータベース ミラーリング機能と、1 つの接続文字列で 2 つの server/db インスタンスを指定できる新しい "Failover Partner" 接続文字列キーワードを対象としています。

このタイプの機能の実装に興味がある場合は、この記事を読む価値があります。

4

4 に答える 4

3

必要なのは「フェイルオーバー」と呼ばれ、1 つのデータベースで障害が発生した場合、クエリは自動的に別のデータベースにリダイレクトされます。これは、アプリケーションではなく、データベース レベルで達成されます。フェールオーバー クラスターを設定するためのウォークスルーなどが多数あります。SQL 2000用とSQL 2005用があります。基本的に、設定が完了すると、プライマリ データベースはすべてのアクティビティをセカンダリ データベースに伝達します。プライマリに障害が発生した場合、セカンダリは (ほぼ) 最新であり、引き継ぎます。

サーバーはクラスターを形成し、単一のユニットのように見えます。これは、負荷分散された Web サーバーが外部から見える方法と似ています。バックアップはプライマリを監視し、プライマリが応答を停止すると、バックアップがクエリの受信を引き継ぎます。グーグルで検索している場合は、「データベース ミラーリング」と「クォーラム」というキーワードも追加してみてください。

于 2008-10-27T20:36:51.670 に答える
0

MSSQL データベース ミラーリングをセットアップする方法と、マネージド コードの観点から実際に使用する方法を示すブログ エントリを書きました: http://www.improve.dk/blog/2008/03/23/sql-server -実践的なアプローチのミラーリング

于 2008-10-28T00:51:48.690 に答える
0

それよりも少し複雑です。Web ページはデータベースに書き込みますか? それとも読むだけ?

彼らが書いた場合、おそらくミラーリングまたはログ配布を使用して、2 つのデータベースの同期を維持することについて心配する必要があります。

しかし、あなたが (本質的に) 話していることは、SQL クラスターをセットアップすることです。

于 2008-10-27T20:28:39.377 に答える
0

「リック」からの素晴らしい回答ですが、2 セントの情報を追加したかっただけです。通常、多くの高価な機器を使用せずにフェイルオーバーを設定する場合、次のように設定します。

2 台の SQL Server ボックスでリクエストを待機し、3 台​​目のボックスでローエンド システムに SQL Server 2005 Express を「ヘルス モニタリング」として使用できます。節約できるのは、ボックスと 1 つの SQL Server ライセンスで 10,000 ドルです。SQL Server Express (Free と同様) は、2 つのデータベース サーバー間の正常性監視を問題なく実行できます。

それが私のセットアップです:)

于 2008-10-31T11:48:42.917 に答える