将 PortQryUI 工具与 SQL Server 配合使用

PortQry 是一种命令行工具,可用于帮助排查 TCP/IP 连接问题。 该工具报告本地或远程计算机上的目标 TCP 和用户数据报协议(UDP)端口的状态。 PortQryUI.exe使你能够使用 UI 而不是 PortQry 的命令行。

本文讨论在排查影响 SQL Server Microsoft的连接问题时如何使用 PortQryUI 工具。 有关 PortQry 命令行工具的详细信息,请参阅 使用 PortQry 命令行工具

注意

由于 PortQryUI 旨在用作故障排除工具,因此你应该有足够的计算环境知识才能有效地使用该工具。

关于 PortQryUI 工具

PortQryUI 工具可帮助你执行以下任务:

  • 解决 TCP/IP 连接问题。
  • 显示本地或远程计算机上的 TCP 和 UDP 端口的状态。
  • 排查影响 SQL Server 的各种连接问题。

可以从Microsoft下载中心下载 PortQryUI 工具:

PortQryUI - PortQry 命令行端口扫描程序的用户界面

使用 PortQryUI 工具

若要解决计算机或远程计算机上的连接问题,请执行以下步骤:

  1. 在客户端计算机上启动 PortQryUI (遇到连接问题)。

  2. “输入目标 IP 或 FQDN 以查询”框中,指定要知道端口状态的计算机的 IP 地址或 FQDN 名称。

  3. 选择 “查询预定义服务”,然后选择“ SQL 服务”。 计算机上的端口按所使用的服务类型进行分组。 可以按服务类型进行查询。 预定义的服务如下所示:

    • 域和信任
    • DNS 查询
    • NetBIOS 通信
    • IPSEC
    • SQL 服务
    • WEB 服务
    • Exchange Server
    • Netmeeting 和其他服务
  4. 指定信息后,选择“查询,然后检查输出。 有关如何解码 PortQryUI 工具显示的输出的详细信息,请参阅 SQL Server 连接问题的可能原因和建议的 解决方法部分。

注意

如果具有对基于 SQL Server 的计算机的管理员访问权限,则可以在该计算机上下载并运行 SQL 连接设置检查工具,并结合下一部分查看输出。

SQL Server 连接问题的可能原因和建议的解决方法

实例类型:默认实例

PortQry 的输出: TCP port 1433 (ms-sql-s service): NOT LISTENING

可能的原因:此问题可能具有以下任何原因:

  • SQL Server 尚未启动。
  • SQL Server 协议列表中未启用 TCP/IP。
  • SQL Server 正在侦听非默认端口(检查错误日志)。
  • 客户端和服务器之间的防火墙正在阻止端口。

建议的解决方法:请尝试以下解决方法:

  • 确保 SQL Server 已启动。
  • 确保在 SQL Server 网络配置中为服务器实例启用 TCP/IP。
  • 检查 SQL Server 错误日志中的端口号。 在 servername\portnumber 格式的 连接字符串中使用。
  • 请与网络或 Windows 管理员联系,确保网络上的防火墙或 SQL Server 系统上的 Windows 防火墙不会阻止 TCP 端口 1433(或当前配置的 SQL Server 端口)。 若要将 Windows 防火墙配置为与 SQL Server 实例协同工作,请查看 “配置 Windows 防火墙”。

实例类型:默认实例

PortQry 的输出: TCP port 1433 (ms-sql-s service): LISTENING

可能的原因:此问题表示客户端库可以连接到基于 SQL Server 的计算机,但应用程序层中的其他内容可能会导致问题。

建议的解决方法:请尝试以下解决方法:

实例类型:命名实例

PortQry 的输出: UDP port 1434 (ms-sql-m service): FILTERED

可能的原因:此问题可能具有以下任何原因:

  • SQL Server 命名实例尚未启动。
  • SQL Server 浏览器尚未在托管 SQL Server 实例的系统上启动。
  • UDP 端口 1434 被基于 SQL Server 的计算机或客户端与服务器之间的网络中的防火墙阻止。
  • 服务已启动。

建议的解决方法:请尝试以下解决方法:

  • 启动 SQL Server 命名实例。
  • 尝试启动 SQL Server 浏览器服务。
  • 请与网络或 Windows 管理员合作,确保网络上的防火墙或 SQL Server 系统上的 Windows 防火墙不会阻止 UDP 端口 1434。 若要将 Windows 防火墙配置为与 SQL Server 协同工作,请参阅 “配置 Windows 防火墙”。
  • 如果防火墙上无法打开 UDP 1434,则应将 SQL Server 命名实例配置为侦听静态端口,并在连接字符串中使用 servername\portnumber

实例类型:命名实例

PortQry 的输出: UDP port 1434 is LISTENING

可能的原因:此问题表示客户端库可以连接到基于 SQL Server 的计算机。 但是,应用程序层中的其他内容可能会导致问题。

建议的解决方法:请尝试以下解决方法:

  • 确保在连接字符串中正确指定服务器名称和端口号。
  • 请确保客户端计算机上未定义任何旧别名。 请在客户端系统上的 SQL Server 客户端网络实用工具(Cliconfg.exe)中检查 SQL Server 实例是否存在SQL Server 配置管理器或“别名”选项卡。

使用 PortQryUI 工具时,连接问题可能有所不同。 以下每个屏幕截图都根据实例的类型以及连接是否成功显示输出。 如果连接正确发生,则会显示“侦听”值。 如果连接未发生,则会显示值“已筛选”。

以下输出来自连接成功的默认端口上的默认实例。

显示连接成功的默认端口上默认实例的屏幕截图。

如果默认端口上默认实例的连接失败,输出会显示,如以下屏幕截图所示。

显示默认端口上默认实例的连接失败的屏幕截图。

如果命名实例的连接成功(例如,实例名称为“SQL 2014”,主机名为“SQLCONNVM”),输出会显示,如以下屏幕截图所示。

命名实例成功连接的屏幕截图。

如果命名实例的连接失败,输出会显示,如以下屏幕截图所示。

显示命名实例连接失败的屏幕截图。