Проблемы с именованным экземпляром клиента SQL 2008 R2?

Мы обновляем наше программное обеспечение с использования SQL 2000 до 2008 R2. Наши клиенты будут устанавливать обновление, которое удаляет 2000 и устанавливает 2008 R2 под тем же экземпляром. Таким образом, если экземпляр не существует, имя экземпляра не будет установлено (по умолчанию). Однако проблема начинается с клиентов, которые имеют именованный экземпляр SQL.

Начиная с 2008 R2 (не уверен в том, что раньше), по какой-то причине клиент, подключающийся к серверу по имени его экземпляра, завершается неудачно. Я тестирую из Management Studio - если я не могу подключиться, то ничто не может подключиться. Я просматриваю сетевые серверы и нахожу конкретный сервер \ экземпляр в списке. Но, при попытке подключиться к имени экземпляра, как MyServer\INST, Я получил:

A network-related or instance-specific error occurred while establishing
a connection to SQL Server. The server was not found or was not accessible.
Verify that the instance name is correct and that SQL Server is configured
to allow remote connections. (provider: SQL Network Interfaces, error: 26 -
Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)

Я действительно включил протоколы TCP/IP и Named Pipes, это первое, что я сделал. Когда я подключаюсь к серверу, используя запятую (,) и номер порта, как MyServer, 49195, это работает просто отлично. Таким образом, кажется, что клиентские компьютеры просто не могут идентифицировать имена экземпляров. Это происходило на всех наших установках SQL 2008 R2 и на всех клиентских компьютерах, включая Win 7, XP, Vista, Server 2008 и Server 2003. Мы никогда не сталкивались с такими проблемами в более ранних версиях SQL. Проблема даже сохраняется, если все брандмауэры и антивирусы отключены.

Теперь это большое обновление, которое мы скоро рассылаем всем нашим клиентам, и мы хотим минимизировать взаимодействие, которое им нужно с нами, чтобы установить это. Мы абсолютно ненавидим идею использования номера порта, потому что он всегда будет отличаться, и нам придется изменить каждого клиента, чтобы он указывал на этот сервер / порт. У некоторых наших клиентов могут быть сотни клиентских компьютеров. Как мне снова установить клиентские соединения с именованным экземпляром SQL? В конце концов, в этом вся цель именованных экземпляров, и если клиент не может подключиться к этому экземпляру по имени, то для чего он вообще назван?

РЕДАКТИРОВАТЬ

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

ОБНОВИТЬ

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

3 ответа

Решение

Попробуйте отключить брандмауэр, так как он может заблокировать порт 1434 для браузера SQL.

Служба браузера SQL включена и запущена?

http://www.mssqltips.com/sqlservertip/1946/overview-of-the-sql-server-browser-service/

SQL Server 2005+ работает не так, как 2000, при идентификации экземпляров сервера.

Служба браузера SQL, вероятно, не работает.

Смотрите здесь

В SQL Server 2000 идентификация конечных точек подключения к серверу выполнялась службой SQL Server. SQL Server 2005 заменяет эту функцию службой браузера SQL Server.

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