如何选择SQL Server 2008的扩展解决方案(复制等)的帮助

5

我目前正在穿越 SQL Server 的众多扩展技术,如复制、日志传送、镜像等... 我对选择有以下限制:

  • 我希望只读负载可以分散在主服务器和辅助服务器(镜像、订阅者)之间
    • 写入负载可以直接发送到主服务器
    • 解决方案应该几乎不需要维护。模式更改应当仅被复制到辅助服务器(注意:此处似乎有一些严重的限制)
    • 写入数据应该能够非常快速地(在 1 秒内,但最好是瞬间)在辅助服务器上访问
    • 在服务器故障时,我可以容忍高达一小时的数据丢失。我更关心易于扩展性

以下是我可以选择的一些选项:http://msdn.microsoft.com/en-us/library/bb510414.aspx。你有什么经验可以分享吗?

1个回答

5
这些都是高可用性解决方案,而不是可扩展性解决方案。SQL Server没有简单的可扩展性解决方案,其他(关系型)数据库也是如此。使用主从复制只能在主写入规模上限内进行扩展。使用主主复制会多路复用写入并带来一致性问题。几乎所有尝试基于复制的解决方案的大规模部署都不得不放弃。
另一种选择是重新考虑应用程序,采用通过消息通信的独立数据领地方式来扩展,就像MySpace scales out那样。
另一种选择是放弃一些约束条件(写一致性、读一致性、可恢复性、类型化模式、引用完整性),选择一个可以在解除这些约束后自由扩展的nosql引擎(CassandraHBaseMongoDB)。

最终,扩展性是一个如此基本的要求,以至于您必须围绕解决方案设计应用程序,并拥抱由扩展性带来的所有(严格的)限制。请注意,所有关系型引擎都可以大幅度地缩放,而需要超越数据库可扩展性的部署数量在全球范围内也少得可数。


是的,我认为你最后一段所说的适用于我们,因为我们可以购买更大的服务器。但是我担心成本,因为那些大型服务器非常昂贵...复制可能会使过渡到更大的系统(目前只有1个小型服务器)更便宜,但麻烦可能不值得努力。我们的域模型非常丰富和关系密切。有许多表和约束。 - usr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接