我们计划在未来几个月内实施sql server 2005集群。我想知道在尝试实现这一目标时,需要采取哪些步骤/预防措施作为数据库开发人员?我们需要更改任何ado.net代码(在前端)/存储过程等等吗?有什么最好的做法可以遵循吗?
我之所以问这个问题的原因是:对于asp.net负载均衡,你必须确保你的会话/应用程序/缓存代码都符合负载均衡环境。 (因此,如果您正在使用inproc会话,则必须重写该代码,以使其在负载平衡环境中工作)。现在这是在您的Web服务器级别。我只是想在尝试扩展数据库服务器级别时做正确的事情
如果这个问题很愚蠢,我很抱歉。请原谅我对这个主题的有限知识: - )
答案 0 :(得分:3)
您必须不进行前端更改才能实现SQL Server群集,只需正常连接到SQL Server实例。
但SQL Server故障转移群集不是负载平衡。如果主节点上的任何硬件发生故障,它将用于添加冗余。您的其他(辅助)节点在主服务器出现故障之前无法执行任何操作,在这种情况下,故障转移会自动发生,并且您的数据库会在10-20秒延迟后再次提供服务连接。
另一个问题是辅助节点上的缓存为空,因此您可能会在故障转移后看到一些性能影响。您可以使用SQL Server database mirroring在镜像服务器上实现“热”缓存,但无法通过群集执行类似的操作。
答案 1 :(得分:2)
数据库群集与负载平衡不同。这是高可用性,而不是“向外扩展”
基本上:
如果节点1离线,则节点2接管。或者可以手动进行故障转移。
这意味着:节点1上的服务关闭,节点2控制磁盘和服务并启动。任何连接都将被破坏,并且不会传输任何状态或会话。