0

我有两台 SQL Server 机器,server1它们server2是冗余的并且具有相同的数据。

我的应用程序希望msdb每 1 秒从数据库中的表中选择数据。但是我的应用程序只能使用一个连接字符串进行连接。如何编辑我的应用程序可以在两台服务器上重复工作?

  • SQL Server 2000 SP4
  • 窗口服务器 2003
  • C#

我的连接字符串是

server=10.15.13.70;database=msdb;user id=sa;pwd=""

请给我提意见。

4

4 回答 4

1

随机选择一个服务器,并在打开连接之前在连接字符串中插入该服务器的名称或 IP。

using (SqlConnection _con = new SqlConnection("server=" + giveMeAServer() + ";database=msdb;user id=sa;pwd="))

和:

private String giveMeAServer()
{
    return "10.15.13.70";
}

正确的解决方法,特别是如果您每秒重新连接一次,最有可能在 SQL Server 端设置某种集群并连接到该集群,而不是让您的应用程序担心数据库后端的负载平衡。

于 2011-03-10T09:21:23.130 回答
1

更好的是你尝试打开连接一段时间比如5ms,如果连接不能打开,通过连接字符串切换到其他服务器

于 2013-01-25T22:54:52.333 回答
0

您正在寻找的是Load balancing. 这是一种只能应用于只读数据库的技术。它基本上将负载分散到多个服务器上。

这是 Microsoft 的关于使用 SQL Server 2000 进行负载平衡的好读物。

http://technet.microsoft.com/en-us/library/cc917707.aspx

恕我直言,您尝试实现的目标不应以编程方式处理,而应在硬件级别上处理。

于 2011-03-10T09:29:20.990 回答
-1
Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;

(来自http://www.mssqltips.com/tip.asp?tip=1289

于 2011-03-10T09:20:47.177 回答