将 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 工具
若要解决计算机或远程计算机上的连接问题,请执行以下步骤:
在客户端计算机上启动 PortQryUI (遇到连接问题)。
在 “输入目标 IP 或 FQDN 以查询”框中,指定要知道端口状态的计算机的 IP 地址或 FQDN 名称。
选择 “查询预定义服务”,然后选择“ SQL 服务”。 计算机上的端口按所使用的服务类型进行分组。 可以按服务类型进行查询。 预定义的服务如下所示:
- 域和信任
- DNS 查询
- NetBIOS 通信
- IPSEC
- SQL 服务
- WEB 服务
- Exchange Server
- Netmeeting 和其他服务
指定信息后,选择“查询”,然后检查输出。 有关如何解码 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 的计算机,但应用程序层中的其他内容可能会导致问题。
建议的解决方法:请尝试以下解决方法:
- 检查是否在连接字符串中正确指定了服务器名称。 如果连接字符串使用的是端口号,请确保正确指定了端口号。
- 如果连接字符串使用的是端口号,请确保将其设置为正确的值。 请确保客户端计算机上未定义旧别名。
- 在 SQL Server 配置管理器 或客户端系统上 SQL Server 客户端网络实用工具(Cliconfg.exe)的“别名”选项卡上检查 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”),输出会显示,如以下屏幕截图所示。
如果命名实例的连接失败,输出会显示,如以下屏幕截图所示。