Обнаружение, если сервер SQL работает - PullRequest
7 голосов
/ 22 августа 2008

Я ищу способ опроса различных серверов и проверки работоспособности SQL-сервера. Я пишу свой код на C #. Меня не особо волнуют отдельные базы данных, просто сервер SQL работает и реагирует.

Есть идеи?

Ответы [ 6 ]

5 голосов
/ 22 августа 2008

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

Более элегантным (но более сложным ... не всегда ли так?) Решением было бы использовать WMI для подключения к удаленной машине и выяснить, запущен ли процесс сервера SQL.

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

System.Data.Sql.SqlDataSourceEnumerator вернет все экземпляры SQL Server, работающие в данный момент.
MSDN Link

2 голосов
/ 18 ноября 2010

SqlDataSourceEnumerator предоставляет вам все экземпляры, но они не обязательно работают. Для локальных экземпляров SQL вы можете использовать объект ServiceController, пространство имен System.ServiceProcess. Имя службы - это конкатенация «MSSQL $» и «InstanceName» из SqlDataSourceEnumerator. Установите свойство ServiceName объекта ServiceController, и вы можете проверить свойство «Состояние» - остановлено, работает, отложено и т. Д. Следовательно, вы можете отфильтровать «запущенные»

2 голосов
/ 22 августа 2008

Если вам нужны конкретные серверы, используйте WMI. Если вы просто хотите, чтобы все доступные серверы:

http://support.microsoft.com/kb/q287737/

2 голосов
/ 22 августа 2008

Используйте Класс TCPClient для создания универсальной функции, которая подключается в TCP к данному IP-адресу.

Затем переберите список серверов, которые вы хотите протестировать, и попытайтесь открыть соединение с портом 1433.

0 голосов
/ 22 августа 2008

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

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