SQL Azure:超时已过期

4
我们有一些托管在 Windows Azure 上的云服务和一些 Azure SQL 数据库。每晚(在 4:00 - 6:00 UTC 期间)会运行一些作业将数据导入数据库中。自几周以来,所有作业都因数据库超时异常而失败。如果我稍后(在 7:00 - 9:00 UTC 期间)在模拟器中在本地计算机上运行作业,则同一数据库上的所有作业都能正常工作,没有任何问题。
在导入数据时,我们的网站在数据库服务器上的流量不多。管理门户的监视显示,没有太多的打开连接、被限制的连接或连接错误。但我的本地运行期间有更多的流量。
sys.event_log 中不含任何错误或其他可能的问题。
是否有任何日志或其他选项可获取有关为什么夜间作业失败的更多信息?
更新:似乎 SQL Azure 服务器忽略了命令超时属性。作业在 4:30 UTC 开始,在 4:37 时由于超时异常停止。但是,查询使用了 1200(20 分钟)的命令超时,而在开始命令之前,需要从 ftp 服务器下载、解析文件和执行其他 SQL 查询。

我非常希望看到您是否可以将服务器移动到另一个亲和性组或区域。文档指出,您永远无法确定其他人在数据库服务器上做了什么可能会限制您的操作。您是否找到任何解决方案想要分享? - Archlight
不,我没有找到任何解决方案。目前问题并未发生,但我没有做任何相关的事情。 - Martin Bauer
1个回答

0

请注意,SQL Azure并非完整版本的MS SQL,并且具有一些限制。最显著的限制是它所构建的基础设施。您的SQL Azure数据库将托管在一个小实例服务器上,该服务器与数百个其他用户共享资源。虽然机器上有公平使用政策,但需要一些时间来启动服务器。

我的建议是要有某种方式确定作业是否实际开始或连接池在开始作业之前是否超时。例如,创建一个作业表,插入以指示其已启动,并将其作为作业的第一个动作。

或者,您可以考虑迁移到Azure上的VM设置。这是您拥有一个具有完整版本MS SQL Server的小型或中型实例VM的地方。这样,您就可以正确地运行作业,并更适当地控制连接池。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接