Как подключиться к 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;