我目前有一个asp.net网站托管在思科负载均衡器后面的两个Web服务器上。这两个Web服务器引用一个MSSQL数据库服务器。

由于这个数据库服务器是单点故障,我正在添加一个额外的MSSQL服务器进行备份。我想设置我的web.config文件,将所有内容写入两个MSSQL服务器,但只能读取“主要”文件。数据库服务器,除非由于某种原因无法访问,此时将使用备份MSSQL服务器。

这可以通过web.config文件设置实现,还是必须在代码中完成?提前感谢您的帮助。

新信息: 我只是想在过去几天研究之后添加有关此主题的更多信息 - Microsoft TechNet有一篇很好的文章标题“使用数据库镜像实现应用程序故障转移” ( http://www.microsoft.com/technet/prodtechnol /sql/bestpractice/implappfailover.mspx#EMD )。

这特别涵盖了Microsoft SQL Server 2005中的数据库镜像功能以及新的“故障转移合作伙伴”功能。 connection string关键字,允许您在单个连接字符串中指定两个服务器/ db实例。

如果您对实现此类功能感兴趣,那么这篇文章非常值得一读。

有帮助吗?

解决方案

您想要的是“故障转移”,如果一个数据库失败,您的查询会自动重定向到另一个。这是在数据库级别而不是应用程序上实现的。设置故障转移群集有很多演练等:这里有一个用于 SQL 2000 ,另一个用于 SQL 2005 。基本上,一旦设置完毕,主数据库就会将所有活动传递给辅助数据库。如果主要故障,则辅助设备(几乎)是最新的并接管。

服务器组成一个集群,看起来像一个单元 - 类似于负载均衡的Web服务器对外界的看法。备份监视主数据库,如果主数据库停止响应,则备份将接管查询。如果您是谷歌搜索,请尝试添加关键字“数据库镜像”和“法定人数”。

其他提示

它比那复杂一点。您的网页是否写入数据库?或者只是阅读?

如果他们写,那么您将不得不担心保持2个数据库同步,可能使用镜像或日志传送。

但是你(在本质上)所说的是建立一个SQL集群。

我写了一篇博客文章,展示了如何设置MSSQL数据库镜像以及如何从托管代码角度实际使用它: http://www.improve。 DK /博客/ 2008/03/23 /

的SQL服务器的镜像-A-实用的方法

“Rick”的答案很好但我只是想加上我的2美分信息。通常对于没有大量昂贵设备的故障转移设置,我会这样设置:

您可以让2个SQL Server框等待请求,并使用SQL Server 2005 Express作为“健康监控”的第三个盒子低端系统。节省你的是10K $的盒子和一个SQL Server许可证。 SQL Server Express(在Free中)可以在2个数据库服务器之间进行健康监控而不会出现任何问题。

这是我的设置:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top