строка подключения к кластеру SQL Server - PullRequest
4 голосов
/ 15 апреля 2009

Может ли кто-нибудь указать мне или подсказать, как записать строку подключения в экземпляр кластера SQL Server?

Я хочу установить доверенное соединение с базой данных (начальный каталог) конкретного экземпляра кластера SQL Server. Я довольно долго нахожу, но не могу найти официальный ответ от Google.

Я прошу строку подключения для кода C # ADO.Net.

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

Ответы [ 4 ]

3 голосов
/ 16 апреля 2009

Строка подключения записывается обычным способом; но при кластеризации у вас есть 3 (или более) адреса: один для каждого узла, который составляет кластер, и один для кластера. Например: у нас есть два узла с адресами 192.168.0.10 и 192.168.0.20: если вы запишите одно из этих чисел в качестве источника данных в строке подключения, вы получите доступ к этому физическому экземпляру. Но если вы хотите получить доступ к кластерному (виртуальному) экземпляру Sql Server, вам придется использовать адрес кластера (например, 192.168.0.230) в качестве источника данных. Конечно, вы можете также использовать имена машин вместо IP-адресов, если вы находитесь в том же домене, что и кластер.

3 голосов
/ 15 апреля 2009

Имя сервера - это имя виртуального сервера.

Пример:

  • У вас есть Физический pserver1, pserver2
  • Они вместе образуют кластер cserver -Это хост виртуальных серверов vserv1 (и, возможно, см. Ниже) vserv2

Итак, это vserv1\instancename или vserv1. вы не используете физические имена серверов

Редактировать, основываясь на количестве возможных имен для виртуальных серверов:

Кластер может быть активным / пассивным / A / P) или активным / активным (A / A)

  • В A / P размещен только один виртуальный сервер, а резервный узел активно не используется.
  • В системе A / A есть 2 виртуальных сервера, и обычно на каждом узле размещается один. Каждый узел находится в режиме ожидания для другого.
0 голосов
/ 20 января 2016

Я знаю, что это старая тема, но:

https://support.microsoft.com/en-us/kb/273673

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

Если администратор кластера отказал серверу SQL Server, пакеты сброса TCP не отправляются. Если процесс SQL Server завершается операционной системой (программой Kill.exe), отправляются пакеты сброса.

Это может повлиять на клиентское приложение, если приложение не указывает параметр тайм-аута запроса или время ожидания запроса равно нулю (0).

Если приложение не имеет значения тайм-аута запроса, то после сбоя открытые соединения останутся в состоянии ESTABLISHED. Тот факт, что открытые соединения не закрыты и никакие дополнительные TCP-пакеты не отправляются с этих соединений, указывает на то, что эти соединения полностью свободны. Поскольку аварийное переключение не отправляло какие-либо пакеты сброса TCP клиентскому приложению, эти открытые соединения ожидают результатов запроса бесконечно (при условии бесконечного времени ожидания запроса) и потенциально могут перестать отвечать на запросы соединения (зависание).

0 голосов
/ 08 августа 2013

Это не документировано нигде, что я мог найти, но мне пришлось использовать имя слушателя группы доступности в кластере. Например:

data-source=tcp:AG1-Listener

Буквально, это нигде не задокументировано. Мне повезло, я нашел строку подключения к кластеру где-то в блоге и выяснил это оттуда.

...