我需要配置 SQL 或 Windows 2008 Clustering 才能获得无数据包丢失的 HA。
我配置了 SQLcluster,但当我重新启动一个节点时,我丢失了一个 ping。我尝试不丢失 ping,以便我的查询在所有者节点集群重新启动时继续执行而不会超时。
是否可以 ?
答案1
集群不允许查询在故障转移时继续执行。集群故障转移意味着实例从冷状态重新启动,在所有数据库上运行待处理的恢复,并将它们放在新节点上。所有客户端都断开连接,所有待处理的事务都回滚,所有正在运行的查询都中止。客户端必须重新连接并从上次提交的事务恢复。
顺便说一句,这也适用于镜像。唯一透明地抽象故障转移事件以便应用程序不会注意到该事件的技术是基于消息传递的,例如 Service Broker,因为所有工作都首先在本地提交并异步交付到集群/镜像,但这并不适用于绝大多数应用程序。
答案2
您是否有一个辅助“心跳”网卡连接两台服务器?第二台服务器需要知道第一台服务器的“问题”才能“接管”,这意味着它不能在毫秒级上....可能会有 1 个 ping 丢失,如果它们之间有一条心跳线,可能会更早检测到,而且 - 如果一台服务器开始处理查询并关闭(电源),查询将丢失...