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.要么 问题是,选项#2是可行的选择吗? 注意:我们了解在数据库级别提供高可用性的其他方法(例如群集),但我们的目标是提供具有成本效益的解决方案. 解决方法‘data mirrored’是什么意思?您可以拥有数据库镜像,在这种情况下,客户端(即您的DAL)可以在连接字符串中使用FailoverPartner并遵循故障转移事件并连接到新的主体.由于镜像不可用,您的报告将运行数据库快照,而不是数据库本身. 您可以拥有故障转移群集,并且客户端连接到群集资源名称以开始,并且它不知道要开始的活动节点主机名,但是这不会让您访问备用伙伴上的数据. 您可以拥有硬件镜像,但这是一个单独的主题. 有人说复制是一种选择,我不在那个阵营. 并且……几乎就是这样.无论这意味着什么,都没有酿造自己的内部数据镜像技术. 更新 如果使用数据库镜像,则只需在连接字符串中指定故障转移伙伴,请参阅Connecting Clients to a Mirrored Database.您的应用程序必须在故障转移事件面前处理事务一致性.故障转移事件将突然断开客户端连接,并且将在客户端代码中引发异常.任何待处理的交易都将中止.客户端代码必须重新连接,读取持久状态并从数据库中找到的状态恢复工作.正确编写的应用程序将优雅地处理此问题而不会出现问题. 镜像始终处于脱机状态且无法访问.如果要在镜像上运行报告,则必须获取数据库快照并在快照上运行报告.必须定期刷新(删除并重新创建)快照.见Database Mirroring and Database Snapshots. 网络层负载平衡器与镜像无关,也无法解决任何问题. (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |