Проблема с портом именованного экземпляра SQL Server 2005 - PullRequest
2 голосов
/ 07 ноября 2008

У меня есть 4 разных именованных экземпляра SQL Server 2005 на одном сервере (для целей тестирования). На сервере нет экземпляра по умолчанию.

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

Редактировать : TCP / IP, Общая память и Именованные каналы включены. VIA отключен. Порты статически установлены для всех IP-адресов в протоколе TCP / IP, и каждый именованный экземпляр использует отдельный порт.

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

Один экземпляр настроен на порт по умолчанию (1433) и работает нормально.

Однако другие случаи демонстрируют очень странное поведение. Когда я подключаюсь к ним с помощью Sql Server Management Studio в сети (так что я даже не пересекаю брандмауэр), студия подключается без жалоб. Однако, как только я пытаюсь развернуть список баз данных для экземпляра или обновить его, или почти все остальное, я получаю следующую ошибку:

НАЗВАНИЕ: Microsoft SQL Server Management Studio


Не удалось получить данные для этого запроса. (Microsoft.SqlServer.SmoEnum)

Для получения справки нажмите: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476


ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Не удалось подключиться к серверу. (Microsoft.SqlServer.ConnectionInfo)


Соединение с сервером было успешно установлено, но во время входа в систему произошла ошибка. (поставщик: поставщик именованных каналов, ошибка: 0 - на другом конце канала нет процесса.) (Microsoft SQL Server, ошибка: 233)

Для получения справки, нажмите: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=233&LinkId=20476


Ответы [ 4 ]

2 голосов
/ 08 ноября 2008

Ответ Bofe сработал, так что это дало понять, что что-то не так с портами.

Оказывается, что в настройках TCP / IP для именованных экземпляров я прослушал все настройки протокола и затем установил статический порт для IPAll, но динамический порт для IP1. Я предполагал, что, поскольку IP1 был отключен, мне не нужно было об этом беспокоиться, но, очевидно, если у вас установлено прослушивание «Все», свойство enabled для IP1 игнорируется. Таким образом, наличие только одного IP-адреса на сервере и настройка динамических портов IP1 и статических портов IPAll привели к некоторому странному конфликту.

Чтобы устранить проблему, я просто настроил IP1 на использование того же статического порта, что и IPAll, включил IP1, перезагрузил сервер, и все работало так, как и предполагалось, без необходимости явно устанавливать порт в строке подключения.

2 голосов
/ 07 ноября 2008

Первое, что нужно сделать, это попробовать добавив префикс np: или tcp: (для или именованные каналы или TCP / IP) до имя сервера. Для TCP / IP, Вы также можете попробовать добавить порт номер (, 1433) после имени сервер. Если это не по умолчанию Например, вы должны добавить имя экземпляр после имени сервера; например:

> sqlcmd -S
> tcp:NameOfTheServer\sqlexpress,1433

РЕДАКТИРОВАТЬ: удалена исходная ссылка, так как теперь она не работает

1 голос
/ 07 ноября 2008

Попробуйте использовать разные порты TCP / IP для каждого экземпляра на сервере. Вам нужно будет зайти в диспетчер конфигурации SQL Server, чтобы изменить эти настройки. В TCP / IP вы можете изменить номера портов, а затем использовать их в строке подключения или в SQL Management Studio при подключении.

Из любопытства, почему у вас есть экземпляры сервера? Можете ли вы использовать один экземпляр и иметь несколько баз данных? Если вы используете другие экземпляры для разработки или тестирования, возможно, вы захотите перенести их в другое окно.

0 голосов
/ 07 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...