python-3.x 间歇性sqlalchemy连接问题TCP提供程序错误0x68

watbbzwu  于 2023-04-22  发布在  Python
关注(0)|答案(1)|浏览(147)

我们有连接到Azure SQL数据库的python函数应用程序。它一直运行良好,直到3月底,当我们开始间歇性地遇到以下错误:“[08001] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider:错误代码0x68(104)(SQLDriverConnect)”
它似乎更频繁地发生在更高的体积天,高达15%的调用遇到这个错误。所有的研究似乎指向网络问题,但是不能关闭sql会话导致这个错误,以及,不管体积?还有什么可能的情况下这个问题?
AZSQL和function app都设置为1.2 TLS,并将sqlalchemy固定为1.4.47。

lp0sw83n

lp0sw83n1#

如果Azure SQL连接在你的函数应用中间歇性地失败,请确保你的函数应用没有在任何企业代理、LAN或VPN之后运行,或者任何防火墙连接正在限制与Azure SQL的连接。
我尝试在受限的防火墙网络LAN中使用Pyodbc连接到Azure SQL,并收到以下错误,即使SQL服务器的示例名称,数据库和连接字符串是正确的,在Azure SQL服务器网络选项卡中允许客户端IP。请参阅下面:-
错误:-

conn = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: The wait operation timed out.\r\n (258) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. (258)')

当我尝试在没有任何网络限制的情况下使用客户端计算机连接到Azure SQL时,我能够像下面这样查询Azure SQL数据库:

我的Python代码:-

import pyodbc

  

conn = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'

'Server=tcp:<sqlservername>.database.windows.net,1433;'

'Database=<database-name>;'

'Uid=<username>;'

'Pwd=<password>')

  
  

cursor = conn.cursor()

cursor.execute('SELECT * FROM StudentReviews')

  

for  i  in  cursor:

print(i)

  

cursor.close()

conn.close()

输出:-

要检查Azure SQL连接失败,请选择Azure SQL Server〉诊断和解决问题〉搜索连接:数据库可用性和连接错误故障排除〉选择连接超时或断开连接,并执行解决方案中给出的见解,如下所示:-

选择问题的开始时间并粘贴您的错误代码,点击提交以获得洞察:-

您可以从结果中获得见解。
您还可以运行建议中给出的PowerShell脚本,以解决间歇性超时或连接问题并获得见解,如下所示:

您可以通过运行SSMS中的脚本到系统表来检查连接问题,如下所示:

验证码:-

SELECT start_time, end_time, database_name, sku, avg_cpu_percent, max_worker_percent, max_session_percent 
FROM sys.resource_stats;

输出:-

参考号:-

Troubleshoot common connection issues to Azure SQL Database - Azure SQL Database | Microsoft Learn
Error code 0x68 (104) (SQLGetData) · Issue #680 · mkleehammer/pyodbc · GitHub By v-chojas
[pyodbc.OperationalError:Copyright © 2018 - 2019 www.cnjs.com版权所有

相关问题