【六六互联】长期出售【美国抗投诉服务器】【欧洲抗投诉服务器】【亚洲抗投诉服务器】

完整的高可用机制除了后端节点的切换,还包括发生故障转移

完整的高可用机制除了后端节点的切换,还包括发生故障转移

一个完整的高可用机制除了后端节点的切换,还包括发生故障转移后,客户端如何能够快速地连接到冗余节点,继续业务读写。常用的实现,包括 Driver 层解决方案,例如 mongoDB replication set,也有通过二层内的广播方式实现 vip,例如 keepalived,当然还包括 proxy,以及三层 DNS 的实现。

SQL Server 的实现采用了 Driver 层处理的方式,开发者要实现自动的故障转移,在连接数据库时,除了必须要指定初始节点的 IP 和端口,还要指定故障转移的节点的 IP 和端口。客户端首先尝试使用初始节点创建连接,如果初始节点指向的实例当前为 principal,则连接会建立成功,可以正常的读写。当发生故障切换时,principal 会切断所有已有客户端连接,然后客户端建立到初始节点连接也会失败,通过一定的重试策略失败后,会尝试连接之前指定的故障转移节点,从而实现服务入口的切换。

SQL Server 常用的访问接口:OLE DB、ODBC、ADO 均支持指定故障转移节点,格式如下:

Server=250.65.43.21,4734; Failover_Partner=250.65.43.22,4734;

集群监控

镜像集群的监控可以通过 SQL Server Management stdio 启动镜像监视器,或者系统内置的存储过程来实现,监控的主要指标包括:

○ 未发送日志:principal 上未发送的日志超过指定的阈值,会在 principal 上生成一个警告,在高性能模式下,强制服务时可以作为评估 principal 上事务丢失数量的依据,同样也适用于在高安全模式切换成异步模式状态下(mirror 失去连接)。

完整的高可用机制除了后端节点的切换,还包括发生故障转移

○ 未还原日志:重做队列中的未被应用的事务日志数量(KB),超过阈值,会在 mirror 上生成一个警告,该值可以作为评估故障转移时间的主要因素。

○ 最早未被发送的事务:principal 发送队列中,最早未被发送的事务距离现在的时间,单位时分钟,超过阈值,会在 principal 上生成警告,与未发送日志量一起,从时间维度,衡量高性能模式下和高安全异步模式下,数据丢失数量。

○ 镜像提交开销:高安全模式下,principal 上事务从提交到等到 mirror 响应的时间开销的平均值,如果超过阈值,则在 principal 上生成一个警告,在同步模式下,该值可以衡量同步开销。