我们正在为即将推出的网络产品建立我们的生产环境。对于此堆栈,主Server 2008将用于活动数据库操作,辅助Server 2008将从主Server (通过Server的内置镜像功能)镜像其数据。我们将在辅助Server上运行报表服务,而当主Server不可用时,报表服务具有热备用状态。
在应用程序级别,我们有两个选项:
问题是,选择2是一个可行的选择吗?
注意:我们理解在数据库级别提供高可用性的其他方法(例如集群),但我们的目标是找到一种成本效益高的解决方案。
发布于 2010-01-29 08:02:11
你所说的“数据镜像”是什么意思?
您可以让数据库镜像,在这种情况下,客户端(即。您的DAL)可以在连接字符串中使用FailoverPartner,并跟踪故障转移事件并连接到新的主体。您的报告将运行数据库快照,而不是数据库本身,因为镜像不可用。
您可以有一个故障转移群集,客户端首先连接到群集资源名,并且它不知道要开始使用的活动节点主机名,但这不能使您访问备用伙伴上的任何数据。
您可以使用硬件镜像,但这是一个单独的主题。
有人说复制是一种选择,我不是那个阵营的人。
还有..。差不多就是这样。除了自己的内部数据镜像技术,不管这意味着什么。
如果使用数据库镜像,则只需在连接字符串中指定故障转移伙伴,请参阅将客户端连接到镜像数据库。在遇到故障转移事件时,应用程序必须处理事务一致性。故障转移事件将突然断开客户端的连接,并在客户端代码中引发异常。任何挂起的事务都将被中止。客户端代码必须重新连接,读取持久化状态,并从数据库中找到的状态恢复工作。正确编写的应用程序将优雅地、无问题地处理此问题。
镜像始终处于脱机状态,无法访问。如果要在镜像上运行报表,则必须获取数据库快照并在快照上运行报表。快照必须定期刷新(删除和重新创建)。见数据库镜像和数据库快照数据库镜像和数据库快照。
网络层负载平衡器与镜像无关,也不解决任何问题。
发布于 2010-01-29 10:43:42
以上任何一项都不行吗?
请澄清镜像sql服务器的含义。您是使用某种SAN来进行镜像,还是使用Server内置的镜像函数?
我可以看到您如何在web层上使用HAProxy,但是为什么要使用Server呢?在Server中还有其他更受支持的HA选项,如群集、镜像和复制。我会先调查这些。
https://serverfault.com/questions/107447
复制相似问题