4

我们计划在未来几个月内实施 sql server 2005 集群。我想知道作为数据库开发人员在尝试实现这一目标时需要采取哪些步骤/预防措施?我们是否需要更改任何 ado.net 代码(在前端)/存储的 procs 等?有什么最佳做法可以遵循吗?

我问这个问题的原因是:对于 asp.net 负载平衡,您必须确保会话/应用程序/缓存的代码都符合负载平衡环境。(因此,如果您使用的是 inproc 会话,则必须重写该代码以使其在负载平衡环境中工作)。现在这是在您的 Web 服务器级别。我只是想在尝试在数据库服务器级别扩展时做正确的事情

如果这个问题很愚蠢,我很抱歉。请原谅我对这个主题的有限知识:-)

4

2 回答 2

3

您无需对前端进行任何更改即可实现 SQL Server 集群,您只需像往常一样连接到 SQL Server 实例。

然而,SQL Server 故障转移群集不是负载平衡。如果主节点上的任何硬件出现故障,它用于添加冗余。在您的主节点发生故障之前,您的另一个(辅助)节点什么都不做,在这种情况下,故障转移会自动发生,并且您的数据库会在 10-20 秒延迟后再次提供连接。

另一个问题是辅助节点上的缓存是空的,因此您可能会在故障转移后看到一些性能影响。您可以使用SQL Server 数据库镜像在镜像服务器上实现“热”缓存,但无法对集群执行类似操作。

于 2009-04-08T13:00:19.720 回答
2

数据库集群不同于负载平衡。这是高可用性,而不是“向外扩展”

基本上:

  • 2台共享磁盘的服务器(或节点)(任何时候只能由一个节点拥有)
  • 一个是“活动的”,运行虚拟 Windows 服务器和 SQL Server 实例
  • 一个正在监视另一个(“被动”)
  • 您连接到虚拟 Windows 服务器。

如果节点 1 下线,则节点 2 接管。或者可以手动进行故障转移。

This means: services are shut down on node 1, node 2 takes control of the disks and services and starts up. Any connections will be broken, and no state or session is transferred.

于 2009-04-08T13:00:51.733 回答