4

次の数か月でSQL Server 2005クラスタを実装する予定です。私はこれを達成しようとしているときにデータベース開発者としてどのような手順/予防措置を講ずる必要があるかを知りたがっていますか?私たちはどんなado.netコード(フロントエンドで)/ stored procsなどを変更する必要がありますか?それに続くべきベストプラクティスはありますか?SQL Serverクラスタリング用のデータベースの準備

私はこの問題について質問しています:asp.netロードバランシングでは、セッション/アプリケーション/キャッシュ用のコードがすべて負荷分散環境に準拠していることを確認する必要があります。 (したがって、inprocセッションを使用している場合は、負荷分散環境で動作するようにそのコードを書き直す必要があります)。これはあなたのWebサーバーレベルにあります。私はちょうどデータベースサーバーレベルでスケールアウトしようとするときに適切なことをしたかった

この質問は愚かな場合は申し訳ありません。

答えて

3

SQL Serverクラスタを実装するためにフロントエンドを変更する必要はありません。通常はSQL Serverインスタンスに接続するだけです。

ただし、SQL Serverのフェールオーバークラスタリングは負荷分散されません。プライマリノードでハードウェアに障害が発生した場合は、冗長性を追加するために使用されます。プライマリに障害が発生するまで、他の(セカンダリ)ノードは何も実行していません。この場合、フェールオーバーは自動的に行われ、データベースは10〜20秒後に接続を再開します。

もう1つの問題は、セカンダリ・ノードのキャッシュが空であることです。そのため、フェイルオーバー後にパフォーマンスに影響を与える可能性があります。 SQL Server database mirroringを使用してミラーサーバーに "ウォーム"キャッシュを実装することはできますが、クラスタリングと似たような方法はありません。

2

データベースクラスタリングは負荷分散とは異なります。これは、高可用性、基本的に

「スケールアウト」ではないです:

  • 2のサーバ(またはノード)共有ディスクと(それが唯一の任意の時間に1つのノードが所有することができます)
  • 1「がアクティブであります仮想WindowsサーバーとSQL Serverインスタンスの実行
  • 仮想サーバーに接続すると、他の( "パッシブ")
  • を監視しています。

ノード1がオフラインになると、ノード2が引き継ぎます。または、手動でフェイルオーバーすることもできます。

これは、サービスがノード1でシャットダウンされ、ノード2がディスクとサービスを制御して起動することを意味します。すべての接続が切断され、状態やセッションは転送されません。

関連する問題