如何为高使用率的 ASP.NET 应用程序对 SQL Server 2008 进行负载平衡?

Yak*_*MIK 12 sql .net cache load-balancing sql-server

假设您有一个成功的 Web 应用程序,它使用 ASP.NET 和 IIS 7。它会生成对 SQL Server 2008 数据库的许多调用,并且预计将以 99.9% 的正常运行时间(停机时间为 8 小时,每次 45 分钟)向公众开放。年)。

我们的目标是:

  • 在服务器上安装 Windows 更新而不会导致我们的客户停机
  • 防止服务器上的硬件崩溃因超时而减慢 ASP.NET 应用程序的速度

与负载平衡 ASP.NET 应用程序不同,负载平衡 SQL 似乎要困难得多。为使用 Microsoft 堆栈的 Micro-ISV 设置简单负载平衡 SQL Server 2008 R2 群集的最佳做法是什么?

小智 4

如果您需要高可用性,那么 Windows/SQL Server 集群或 SQL Server 数据库镜像可以提供解决方案。如果您以前从未做过集群,那么它确实需要大量的规划和熟悉,但它对应用程序来说是透明的。

SQL Server 可以实现负载平衡,但胆小者不适合。这是一个在 SQL Server 前面使用 Windows 网络负载平衡 (NLB) 的解决方案。NLB 中的 SQL Server 本身如果是只读的,则更易于管理,但如果您将事务复制与可更新订阅者一起使用,则它们可以是读写的。不过,这种类型的复制已标记为在未来版本中弃用。

最后一种可能性是可扩展共享数据库,但它们绝对是只读的。

更多阅读:

查看 Allan Hirt 的 Apress 书籍,了解 Apress 的 SQL Server 2005 高可用性和 Pro SQL Server 2005/2008 复制。

可扩展的共享数据库: http://technet.microsoft.com/en-us/library/ms345392.aspx