MS SQL ping外部服务器

时间:2009-07-20 13:20:59

标签: sql-server

是否有'好'的方法来检查网络主机是否已启动 利用'普通'SQL?我想到了一些特定的MS-SQL 命令或者一些从ping脚本获取返回值 在服务器本身。

有人对此有所了解吗?

2 个答案:

答案 0 :(得分:1)

有两种方法可以回答你: 1.您想知道SQL服务器是否在任意主机上运行
2.您希望使用某个查询从SQL服务器ping任意主机。

  1. 你可以使用dariom的答案。 1A。如果要从另一个SQL服务器查询一个SQL服务器,最好使用SQL Server的“链接服务器”功能。

  2. 您可以使用master.dbo.xp_cmdshell存储过程执行PING,然后将结果作为文本行和状态代码返回。

  3. EXEC master.dbo.xp_cmdshell'ping 192.168.1.1'

答案 1 :(得分:-1)

我假设你的意思是“普通”SQL而不是“palin”: - )

如果您正在尝试查看SQL是否在主机上运行,​​您可以尝试使用SQL Browser Service连接到SSRP (SQL Server Resolution Protocol)(但这需要在服务器上安装并运行)

您可以尝试“最佳猜测”方法,并与端口1433(默认端口SQL Server的数据库引擎)建立TCP连接。如果端口是打开的,则可能是SQL Server正在侦听 - 然后您可以尝试连接到SQL Server并执行命令(如SELECT @@VERSION或特定于您的应用程序的某些内容)。这种方法存在的问题:

  • 可以将SQL Server数据库引擎配置为使用非标准TCP端口。
  • SQL Server甚至可能不使用TCP - 您必须使用命名管道进行连接(我不确定如何完成)。
  • 可以将其他一些服务配置为使用TCP端口1433.这并不意味着SQL Server正在侦听。
  • 如果SQL Server打开并使用端口1433,则需要提供凭据以连接到它并执行命令。

基本上,最好的猜测方法只适用于您控制的SQL Server。