sql-server – 使用HAProxy为镜像SQL Server提供容错功能

前端之家收集整理的这篇文章主要介绍了sql-server – 使用HAProxy为镜像SQL Server提供容错功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在为即将推出的网络产品构建我们的生产环境.对于此堆栈,主sql Server 2008将用于实时数据库操作,而辅助sql Server 2008将从主sql Server镜像(通过sql Server的内置 Mirroring功能).我们将针对辅助sql Server运行报表服务,同时在主sql Server不可用时具有热备用.

在应用程序级别,我们有2个选项:

>在应用层中实现故障检测,因此如果主sql Server没有响应,请让我们的DAL命中辅助sql Server.要么
>让应用层指向一个VIP并让HAProxy处理故障检测.

问题是,选项#2是可行的选择吗?

注意:我们了解在数据库级别提供高可用性的其他方法(例如群集),但我们的目标是提供具有成本效益的解决方案.

解决方法

‘data mirrored’是什么意思?

您可以拥有数据库镜像,在这种情况下,客户端(即您的DAL)可以在连接字符串中使用FailoverPartner并遵循故障转移事件并连接到新的主体.由于镜像不可用,您的报告将运行数据库快照,而不是数据库本身.

您可以拥有故障转移群集,并且客户端连接到群集资源名称以开始,并且它不知道要开始的活动节点主机名,但是这不会让您访问备用伙伴上的数据.

您可以拥有硬件镜像,但这是一个单独的主题.

有人说复制是一种选择,我不在那个阵营.

并且……几乎就是这样.无论这意味着什么,都没有酿造自己的内部数据镜像技术.

更新

如果使用数据库镜像,则只需在连接字符串中指定故障转移伙伴,请参阅Connecting Clients to a Mirrored Database.您的应用程序必须在故障转移事件面前处理事务一致性.故障转移事件将突然断开客户端连接,并且将在客户端代码中引发异常.任何待处理的交易都将中止.客户端代码必须重新连接,读取持久状态并从数据库中找到的状态恢复工作.正确编写的应用程序将优雅地处理此问题而不会出现问题.

镜像始终处于脱机状态且无法访问.如果要在镜像上运行报告,则必须获取数据库快照并在快照上运行报告.必须定期刷新(删除并重新创建)快照.见Database Mirroring and Database Snapshots.

网络层负载平衡器与镜像无关,也无法解决任何问题.

猜你在找的MsSQL相关文章