我有两台运行Windows 2008 Web Edition和SQL 2008 Standard Edition的服务器,如何才能最好地平衡它们?
我应该使用数据库镜像还是日志传送?Win2008 NLB是否易于由开发人员配置,因为我不是系统管理员?
我正在寻找的是能够在单个服务器出现故障的情况下运行我的站点,并且能够在需求增长时轻松添加更多服务器.我的网站在ASP.Net 3.5中运行,所有这些网站都已将会话存储在SQL Server中.
SQL Server本身不支持负载平衡.您可以使用您描述的机制(数据库镜像和日志传送)进行主动/被动故障转移,还有许多其他选项,如群集或复制.
开始的两个问题是:
你能承受多久才能垮台?(又名你的恢复时间目标,或RTO)
您可以承受多少数据丢失?(又名您的恢复点目标,或RPO)
您可以负担得起的时间越多,您可以承受的损失越多,那么实施的解决方案就越容易和便宜.停机时间越少,数据越少,实施起来就越困难.
例如,同步数据库镜像将保证您永远不会丢失事务.在将结果返回给客户端之前,将在两个数据库服务器上提交事务.不幸的是,您在重负载下会受到相当大的性能影响,而且内置的管理实用程序很少 - 您希望有一个全职DBA来管理这类事情.
另一种极端情况是,每15分钟一次日志传送意味着您可能会丢失15分钟的数据(或更多),并且可能需要15-60分钟才能在失败后重新上线.但是,它价格便宜,性能影响非常小,而且设置起来相当容易.
我在BrentOzar.com上有一个RPO和RTO介绍,并介绍了SQL Server的HA和DR功能.如果你经历过那些,你会更好地武装回来并提出更具体的问题.希望有所帮助!