Как проверить доступность sql сервера
Перейти к содержимому

Как проверить доступность sql сервера

  • автор:

 

Как быстро проверить подключение к серверу MS SQL

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

Суть способа заключается в использовании файлов UDL. Файлы формата UDL (Universal Data Link) используются приложениями Windows для хранения информации, необходимой для подключения к источнику данных. Также они могут использоваться для тестирования соединения с источником данных.

Сама процедура проверки крайне проста. Сначала создаем на рабочем столе пустой текстовый файл

создание текстового файла

и изменяем его расширение на udl.

смена расширения файла

По умолчанию файлы UDL открываются с помощью встроенной утилиты «Data Link Properties». Для открытия файла надо дважды кликнуть по нему, после чего откроется диалоговое окно утилиты. Для проверки надо на вкладке «Connection» указать имя сервера, учетные данные для подключения, затем выбрать нужную базу данных и нажать «Test Connection».

основные настройки подключения

В случае успешного подключения будет выведено соответствующее уведомление.

результат подключения

При необходимости можно изменить дополнительные параметры подключения. На вкладке «Provider» можно изменить провайдера для подключения к базе.

выбор провайдера

На вкладке «Advanced» можно указать таймаут подключения и задать дополнительные разрешения.

дополнительные настройки подключения

Ну а если требуется задать какие то специфические свойства подключения, то их можно найти на вкладке «All». Например можно задать атрибут Failover Partner для тестирования Database Mirroring. Обратите внимание, что набор атрибутов зависит от выбранного провайдера.

все настройки

Как видите, способ действительно очень простой. Конечно он не позволяет произвести более сложные проверки, но вполне подходит для первичной диагностики.

How to ping/test connection to SQL Server without software (like through cmd)?

Is there a way to test a connection to a SQL Server through the command line or without any extra software? I’ve tried the ping and telnet methods shown in this article, but they both fail to find my SQL Server. Note that the connection is fine, I can connect to the server through SSMS, but it would be useful to be able to troubleshoot the connection otherwise.

For example, we have people working from home and I want to be able to test the connection to the database server without having to install SSMS on their machine.

The server name looks like: SERVER\SQLEXPRESS

And I tried ping SERVER\SQLEXPRESS (Ping request could not find host) and telnet SERVER 1433 (Could not open connection to the host, on port 1433)

 

EDIT: I can ping the server just fine ping SERVER

EDIT2: Everything I have tried I test with both the name and the ip. The DNS is fine so it shouldn’t cause an issue to use one or the other

Как проверить доступность sql сервера

Для проверки соединения с MS SQL Server необходимо выполнить следующие действия:

1. Создать на диске файл (в любом месте) test.udl.

2. Запусть его двойным кликом мыши.

3. Появиться окно. Выбрать «Microsoft OLE DB Provider for SQL Server» (Рисунок 1).

Рисунок 1. Поставщик данных.

4. Перейти на закладку «Соединение».

5. Ввести все необходимые параметры (как минимум: имя сервера и логин). Нажать «Проверить соединение» (Рисунок 2).

clip_image004

6. В случае удачного соединения появиться окно (Рисунок 3). Иначе появиться сообщение об ошибке.

Какой самый быстрый способ проверить доступность SQL-сервера?

Я пробую Microsoft.SqlServer.Management.Smo.Server.PingSqlServerVersion (), и он отлично работает, если сервер существует и доступен. Но это довольно медленно, если такого сервера нет.

Есть ли какой-нибудь достаточно быстрый способ проверки, даже не определяя учетные данные пользователя (только имя сервера), если сервер существует?

Что посоветуете использовать?

5 ответов

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

Вы все еще можете использовать Microsoft.SqlServer.Management.Smo.Server.PingSqlServerVersion() , но использовать его асинхронно. например вы можете вызвать его через класс BackWorker. Событие DoWork вызовет Microsoft.SqlServer.Management.Smo.Server.PingSqlServerVersion() . RunWorkerCompleted просто установит для логической переменной значение true. Таким образом, вы можете запустить его, подождать сколько хотите, проверить логическое значение, и если оно не соответствует действительности, вы узнаете, что сервер SQL еще не ответил, и вы можете отменить BackgroundWorker.

Вы можете попробовать открыть TCP-сокет на порт 1433 (порт sql по умолчанию) с коротким таймаутом и посмотреть, отреагирует ли он.

Для этого на сервере SQL должен быть включен протокол TCP / IP.

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

Конечно, все это предполагает, что вы пытаетесь подключиться к удаленному серверу через TCP / IP.

После использования ответа Бена Робинсона я придумал это, и это хорошо для меня. Я использовал строку подключения, чтобы открыть, а затем закрыть соединение в блоке попытки, но когда я работал в Windows 8.1, исключение так и не было обнаружено, и программа вылетела.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *