Как подключиться к SQL Server с избыточностью с помощью C#?

У меня есть две машины SQL Server, server1 а также server2 которые являются избыточными и имеют те же данные.

Мое приложение хочет выбрать данные из таблицы в msdb База данных каждую 1 секунду. Но мое приложение может подключиться только с использованием одной строки соединения. Как редактировать мое приложение может избыточно работать с обоими серверами?

  • SQL Server 2000 SP4
  • Windows Server 2003
  • C#

Моя строка подключения

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

Пожалуйста, посоветуй мне.

4 ответа

Лучше попытаться открыть соединение на некоторый интервал, скажем, 5 мс, и, если соединение не может быть открыто, переключиться на другой сервер через строку подключения

Выберите случайным образом сервер и вставьте его имя или IP-адрес в строку подключения перед тем, как открыть соединение.

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

а также:

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

Правильное исправление, особенно если вы переподключаетесь так часто, как раз в секунду, скорее всего, настроит какой-то кластер на стороне SQL Server и подключится к нему, а не заставит ваше приложение беспокоиться о балансировке нагрузки базы данных.

То, что вы ищете, это Load balancing, Это метод, который можно применять только к базам данных только для чтения. Это в основном распределяет нагрузку на несколько серверов.

Вот хорошее прочтение по балансировке нагрузки с SQL Server 2000 от Microsoft.

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

Имхо, то, что вы пытаетесь достичь, должно решаться не программно, а на аппаратном уровне.

Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;

http://www.mssqltips.com/tip.asp?tip=1289)

Другие вопросы по тегам