在ASP.NET web.config文件中设置备份数据库服务器

时间:2008-10-27 20:11:04

标签: asp.net sql-server web-config failover

我目前有一个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中的数据库镜像功能以及新的“Failover Partner”连接字符串关键字,该关键字允许您在单个连接字符串中指定两个服务器/ db实例。

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

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

这是我的设置:)