排查专用 SQL 池(以前称为 SQL DW)中的连接问题

本文列出了有关连接到专用 SQL 池数据库(以前称为 SQL DW)的常用故障排除方法。

检查服务可用性

检查服务是否可用。 在 Azure 门户中转到要尝试连接的专用 SQL 池(以前称为 SQL DW)。 在左侧 TOC 面板中,单击“诊断并解决问题”。

Select Resource health

专用 SQL 池(以前称为 SQL DW)的状态会显示在此处。 如果该服务未显示为“可用”,请查看其他步骤。

Service Available

有关详细信息,请参阅资源运行状况

检查已暂停的操作或正在缩放的操作

检查门户,了解专用 SQL 池(以前称为 SQL DW)实例是已暂停还是正在缩放。

Screenshot shows how to check whether a data warehouse is paused.

如果发现服务已暂停或正在缩放,请检查其是否未处于维护计划期间。 在专用 SQL 池(以前称为 SQL DW)对应的门户的“概述”中,可以看到所选的维护计划。

Overview Maintenance Schedule

否则,请与 IT 管理员联系以验证此维护不是计划事件。 若要恢复专用 SQL 池(以前称为 SQL DW)实例,请按照这些步骤操作。

检查防火墙设置

专用 SQL 池(以前称为 SQL DW)数据库通过端口 1433 进行通信。 如果尝试从企业网络内部进行连接,则该网络的防火墙可能不允许经端口 1433 的出站流量。 这种情况下无法连接到逻辑服务器,除非 IT 部门打开了端口 1433。 有关详细信息,请参阅防火墙配置

检查 VNet/服务终结点设置

如果收到错误 40914 和 40615,请参阅 vNet 服务终结点规则

检查最新驱动程序

软件

请进行检查,确保使用最新工具连接到专用 SQL 池(以前称为 SQL DW):

  • SSMS
  • Azure Data Studio
  • SQL Server Data Tools (Visual Studio)

驱动程序

请进行检查,确保使用最新的驱动程序版本。 使用旧版驱动程序可能会导致意外行为,因为旧驱动程序可能不支持新功能。

检查连接字符串

请进行检查,确保正确设置了连接字符串。 下面是一些示例。 有关详细信息,请参阅连接字符串

ADO.NET 连接字符串

Server=tcp:{your_server}.database.chinacloudapi.cn,1433;Database={your_database};User ID={your_user_name};Password={your_password_here};Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

ODBC 连接字符串

Driver={SQL Server Native Client 11.0};Server=tcp:{your_server}.database.chinacloudapi.cn,1433;Database={your_database};Uid={your_user_name};Pwd={your_password_here};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;

PHP 连接字符串

Server: {your_server}.database.chinacloudapi.cn,1433 \r\nSQL Database: {your_database}\r\nUser Name: {your_user_name}\r\n\r\nPHP Data Objects(PDO) Sample Code:\r\n\r\ntry {\r\n   $conn = new PDO ( \"sqlsrv:server = tcp:{your_server}.database.chinacloudapi.cn,1433; Database = {your_database}\", \"{your_user_name}\", \"{your_password_here}\");\r\n    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );\r\n}\r\ncatch ( PDOException $e ) {\r\n   print( \"Error connecting to SQL Server.\" );\r\n   die(print_r($e));\r\n}\r\n\rSQL Server Extension Sample Code:\r\n\r\n$connectionInfo = array(\"UID\" => \"{your_user_name}\", \"pwd\" => \"{your_password_here}\", \"Database\" => \"{your_database}\", \"LoginTimeout\" => 30, \"Encrypt\" => 1, \"TrustServerCertificate\" => 0);\r\n$serverName = \"tcp:{your_server}.database.chinacloudapi.cn,1433\";\r\n$conn = sqlsrv_connect($serverName, $connectionInfo);

JDBC 连接字符串

jdbc:sqlserver://yourserver.database.chinacloudapi.cn:1433;database=yourdatabase;user={your_user_name};password={your_password_here};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.chinacloudapi.cn;loginTimeout=30;

间歇性连接问题

检查是否在服务器上遇到具有大量排队请求的重型负载。 可能需要纵向扩展专用 SQL 池(以前称为 SQL DW),以获取更多资源。

常见错误消息

有关错误 40914 和 40615 的详细信息,请参阅 vNet 服务终结点规则

仍有连接问题?

请联系 Azure 支持部门,让工程团队为你提供支持。