我如何知道集群中的哪个节点应答?

我如何知道集群中的哪个节点应答?

我已经设置了一个 NLB,其中有两台运行相同服务的服务器(节点)。过滤是单主机的,因为我不希望它们同时运行,因为缓存数据库中有数据,所以每次有新数据或故障转移时,我都需要重新启动第二个服务来更新它。

我如何知道集群中的哪个服务器正在应答?(我不介意这是否使用命令、脚本、C# 或其他什么。我还没有决定使用什么:我只想要最简单的。)

我正在使用 SQL Server 2008 R2。

其次(不太重要):是否有适合此目的的良好监控工具?我正在研究 Spiceworks、Zabbix 或 Nagios。

答案1

如果不知道您如何“调用集群”,我们就无法回答这个问题。

如果您正在使用可以获取本地 shell 的东西,则可以请求系统变量 COMPUTERNAME。然后,无论您如何操作,都可以配置您的监控解决方案以相同的方式连接并发出相同的查询。

有些协议在连接时会返回名称(通常可配置,通常默认为主机名),例如 SMTP。因此,如果您建立的是自定义连接,也许您可​​以将一些诊断信息放入协议本身中。

我的观点依然正确 - 如果您使用 NLB 来集群 SQL,那么您做错了。如果您使用实际的 Windows 群集服务,则可以确保特定服务始终在主动节点上运行,而不是被动节点,因此知道哪个主机不应该是您的客户端需要询问的问题。

相关内容