加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2021-05-20 10:37:35 所属栏目:编程 来源:网络整理
导读:我们正在为即将推出的网络产品构建我们的生产环境.对于此堆栈,主SQL Server 2008将用于实时数据库操作,而辅助SQL Server 2008将从主SQL Server镜像(通过SQL Server的内置 Mirroring功能).我们将针对辅助SQL Server运行报表服务,同时在主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.

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

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读