Azure SQL 数据库唤醒时间

问题描述 投票:0回答:1

我们在无服务器层使用 Azure SQL 数据库。开发实例设置为在 1 小时不活动后自动暂停。

在该睡眠期间执行的计划作业失败并显示消息

Database 'dev-db' on server 'myserver.database.windows.net' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of '{guidhere}'.

Microsoft 建议将连接超时设置为至少 30 秒。。我们作业的连接字符串已经使用了该值的 4 倍,但仍然失败。数据库在大小方面非常轻量级,如果这可能与它有关的话。

Data Source=tcp:myserver.database.windows.net,1433;Initial Catalog=dev-db;Connect Timeout=120

DBContext 还配置了重试选项:

{
    string[] scopes = ["https://database.windows.net/"];
    string token = "token";
    string connStr = "Data Source=tcp:myserver.database.windows.net,1433;Initial Catalog=dev-db;Connect Timeout=120";
    SqlConnection connection = new() { ConnectionString = connStr, AccessToken = token };
    opt.UseSqlServer(connection, opt =>
    {
        opt.EnableRetryOnFailure(maxRetryCount: 10);
    });
}

您是否也经历过长时间的唤醒延迟?

azure-sql-database
1个回答
0
投票
Database 'dev-db' on server 'myserver.database.windows.net' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of '{guidhere}'

根据MS文档

如果无服务器数据库暂停,第一次登录活动将恢复数据库并返回一条错误,指出数据库不可用,错误代码为 40613。恢复数据库后,可以重试登录以建立连接。

这可能是出现上述错误的原因。要解决此问题,请将 azure SQL 数据库中的服务层更改为“基本(对于要求较低的工作负载)”,如下所示:

enter image description here

欲了解更多信息,您可以参考以下文档:

© www.soinside.com 2019 - 2024. All rights reserved.