5

我有两台运行 Windows 2008 Web 版和 SQL 2008 标准版的服务器,如何对它们进行负载平衡?

我应该使用数据库镜像还是日志传送?由于我不是系统管理员,开发人员是否易于配置 Win2008 NLB?

我正在寻找的是能够让我的网站在单个服务器发生故障的情况下运行,并且能够在需求增长时轻松添加更多服务器。我的站点在 ASP.Net 3.5 中运行,并且所有站点都已将会话存储在 SQL Server 中。

4

2 回答 2

6

SQL Server 本身不支持负载平衡。您可以使用您描述的机制(数据库镜像和日志传送)进行主动/被动故障转移,还有很多其他选项,例如集群或复制。

开始的两个问题是:

  • 你能承受多久的情绪低落?(又名您的恢复时间目标,或 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 回答