3

我目前有一个托管在两个 Web 服务器上的 asp.net 网站,这些服务器位于 Cisco 负载均衡器后面。两个 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 中的数据库镜像功能和新的“故障转移伙伴”连接字符串关键字,它允许您在单个连接字符串中指定两个服务器/数据库实例。

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

4

4 回答 4

3

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

这些服务器形成一个集群,看起来像一个单一的单元——类似于负载平衡的 Web 服务器对外部世界的看法。备份监控主服务器,如果主服务器停止响应,备份将接管接收查询。如果您在谷歌搜索,请尝试添加关键字“数据库镜像”和“仲裁”。

于 2008-10-27T20:36:51.670 回答
0

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

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

但是你(本质上)谈论的是建立一个 SQL 集群。

于 2008-10-27T20:28:39.377 回答
0

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

于 2008-10-28T00:51:48.690 回答
0

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

您可以让您的 2 个 SQL Server 盒子等待请求,并拥有第三个带有 SQL Server 2005 Express 的低端系统作为“健康监控”。为您节省 10K 美元的盒子和一个 SQL Server 许可证。SQL Server Express(与 Free 一样)可以毫无问题地在 2 个数据库服务器之间进行健康监控。

那是我的设置:)

于 2008-10-31T11:48:42.917 回答