Dot-Net

如何對高使用率 ASP.NET 應用程序的 SQL Server 2008 進行負載平衡?

  • May 8, 2011

想像一下,您有一個使用 ASP.NET 和 IIS 7 的成功 Web 應用程序。它生成對 SQL Server 2008 數據庫的許多呼叫,並有望以 99.9% 的正常執行時間(停機時間為 8 小時,每次 45 分鐘)向公眾提供年)。

我們的目標是:

  • 在伺服器上安裝 Windows 更新,而不會給我們的客戶造成停機時間
  • 防止伺服器上的硬體崩潰因超時而減慢 ASP.NET 應用程序的速度

與負載平衡 ASP.NET 應用程序不同,負載平衡 SQL 似乎要困難得多。為使用 Microsoft 堆棧的 Micro-ISV 設置簡單的負載平衡 SQL Server 2008 R2 群集的最佳實踐是什麼?

如果您需要高可用性,那麼 Windows/SQL Server 集群或 SQL Server 數據庫鏡像可以提供解決方案。如果您以前從未做過集群,則確實需要大量的計劃和熟悉,但它對應用程序是透明的。

SQL Server 可以實現負載平衡,但它不適合膽小的人。這是一種在 SQL Server 前使用 Windows 網路負載平衡 (NLB) 的解決方案。如果 NLB 中的 SQL Server 本身是只讀的,則它們本身更易於管理,但如果您將事務複製與可更新訂閱者一起使用,它們可以是讀寫的。這種類型的複制在未來的版本中被標記為棄用。

最後一種可能性是可擴展共享數據庫,但它們絕對是只讀的。

更多閱讀:

查看 Allan Hirt 關於 SQL Server 2005 高可用性和來自 Apress 的 Pro SQL Server 2005/2008 複製的 Apress 書籍。

可擴展的共享數據庫: http ://technet.microsoft.com/en-us/library/ms345392.aspx

引用自:https://serverfault.com/questions/267422