Поделиться через


Устранение неполадок. Время ожидания истекло

Ошибка «Время ожидания истекло» обычно возникает в том случае, если не смог запуститься экземпляр компонента SQL Server Database Engine, неправильно указано имя сервера или появились проблемы с сетью и брандмауэрами.

Текст сообщения об ошибке

В среде Среда SQL Server Management Studio уведомления об этой ошибке могут быть следующими.

«Невозможно подключиться к <имя_сервера>».

«Время ожидания истекло. Период ожидания истек до завершения операции, или сервер не отвечает. (Microsoft SQL Server, ошибка: -2)"

Программа sqlcmd может возвращать следующие ошибки.

«Сетевые интерфейсы SQL: ошибка при поиске указанного сервера или экземпляра».

«Sqlcmd: ошибка: собственный клиент Microsoft SQL Server: клиент не может установить соединение».

«Sqlcmd: ошибка: собственный клиент Microsoft SQL Server: время ожидания входа истекло».

«Невозможно открыть соединение с SQL Server».

«При установлении соединения с сервером произошла ошибка. При подключении к SQL Server эта ошибка может быть вызвана тем, что в конфигурации по умолчанию SQL Server не поддерживает удаленные соединения».

Типичные причины этой ошибки

Причина

Решение

Указано неверное имя сервера.

Попробуйте ввести имя сервера еще раз.

На сервере не запущена служба SQL Server.

Запустите экземпляр компонента SQL Server Database Engine.

Порт TCP/IP экземпляра компонента Database Engine заблокирован брандмауэром.

Настройте брандмауэр так, чтобы он обеспечивал доступ к компоненту Database Engine.

Компонент Database Engine не прослушивает порт 1433, потому что порт был изменен или из-за того, что компонент не является экземпляром по умолчанию, а служба обозревателя SQL Server не выполняется.

Или запустите службу обозревателя SQL Server, или устанавливайте соединение, указывая номер порта TCP/IP.

Служба обозревателя SQL Server выполняется, но порт UDP с номером 1434 заблокирован брандмауэром.

Или настройте брандмауэр так, чтобы он допускал доступ к 1434-му порту UDP на сервере, или устанавливайте соединение, указывая номер порта TCP/IP.

Клиент и сервер не могут выбрать одинаковый сетевой протокол.

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

Сетевой модуль не может выполнить разрешение имени сервера в IP-адрес. Это можно проверить при помощи программы PING.

Устраните проблему с разрешением имени компьютера в своей сети или устанавливайте соединение с использованием IP-адреса сервера. Эта проблема не имеет отношения к SQL Server. Если понадобится помощь, ищите нужные сведения в документации по Windows или обратитесь к сетевому администратору.

Подключение с использованием IP-адреса невозможно. Это можно проверить при помощи программы PING.

Устраните проблему с протоколами TCP/IP в своей сети. Эта проблема не имеет отношения к SQL Server. Если понадобится помощь, ищите нужные сведения в документации по Windows или обратитесь к сетевому администратору.

Необычные ошибки

Сервер с несколькими IP-адресами

Клиенты, работающие в Windows Vista или Windows Server 2008, могут получить эту ошибку при соединении с именованным экземпляром SQL Server, установленном в кластере или на некластеризованном компьютере с несколькими IP-адресами. Эта проблема может возникнуть во всех версиях SQL Server.

Причина

При подключении к именованному экземпляру на удаленном компьютере для получения конечной точки соединения (номера TCP-порта или именованного канала) клиент использует протокол UDP для соединения со службой обозревателя SQL Server на компьютере SQL Server или кластере.

Брандмауэры в клиентах Windows Vista или Windows Server 2008 запрещают свободное сопоставление источника для протокола UDP. Это означает, что ответ должен прийти с того IP-адреса, на который был отправлен запрос. Если ответ приходит с IP-адреса, отличного от целевого, брандмауэр клиента удалит пакет. Эта проблема может возникнуть при подключении к кластеризованному серверу или отдельному компьютеру, имеющему несколько IP-адресов.

В следующей таблице описываются сочетания операционных систем, в которых может происходить пропуск пакетов UDP. Это препятствует соединению с именованным экземпляром SQL Server или с экземпляром SQL Server по умолчанию, который не прослушивает порт TCP 1433.

Операционная система клиента

Операционная система, в которой работает SQL Server

Результат в SQL Server 2008

Результат в SQL Server 2005

Windows XP или Windows Server 2003

Windows XP или Windows Server 2003

Пакеты UDP не пропускаются.

Пакеты UDP не пропускаются.

Windows XP или Windows Server 2003

Windows Vista или Windows Server 2003

Пакеты UDP не пропускаются.

Пакеты UDP не пропускаются.

Windows Vista или Windows Server 2008

Windows XP или Windows Server 2003

Пакеты UDP пропускаются. Подключение невозможно.

Пакеты UDP пропускаются. Подключение невозможно.

Windows Vista или Windows Server 2008

Windows Vista или Windows Server 2008 (x86, IA64)

Пакеты UDP не пропускаются.

Пакеты UDP пропускаются. Подключение невозможно.

Windows Vista или Windows Server 2008

Windows Vista или Windows Server 2008 (x64)

Пакеты UDP пропускаются. Подключение невозможно.

Пакеты UDP пропускаются. Подключение невозможно.

Решение

Чтобы обойти эту проблему, необходимо выполнить одно из следующих действий.

  • Указать в строке соединения номер TCP-порта или имя именованного канала в качестве части имени сервера.

  • Создать в брандмауэре Windows на компьютере клиента исключение с настройками дополнительной безопасности.

    ПредупреждениеВнимание!

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

    Исключение может быть одним из следующих.

    • Добавление правила исключения приложению, соединяющемуся с SQL Server.

    • Добавление правила вхождения, разрешающего трафик со всех возможных IP-адресов компьютера SQL Server или кластера.

Турецкий или азербайджанский язык

Попытки установления соединения могут завершаться неудачей, если текущим языком является турецкий или азербайджанский, а имя сервера содержит букву «I». Во избежание этой проблемы подключайтесь к серверу, используя IP-адрес. Если имя экземпляра содержит букву «I», при подключении укажите номер порта TCP/IP. Чтобы подключиться к конкретному порту, используйте псевдоним.

ПримечаниеПримечание

При устранении связанных с подключениями проблем, используйте учебник Учебник. Приступая к работе с компонентом Database Engine.