问题标签 [azure-elasticpool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
50 浏览

azure - 在 Azure SQL 弹性池中创建数据库需要将近 10 分钟才能完成

我们使用 Azure SQL 数据库和弹性池(“标准”级别)。

通常创建一个新的客户数据库大约需要 1-2 分钟,但突然开始需要更长的时间(长达 10 分钟),我不知道为什么会这样。我检查了 Azure 门户中的池,一切似乎都很好。我们距离达到给定的限制还很远(257/500 个数据库;~11GB/200GB 数据大小)。短时间内升级没有效果。

还有什么我可以做的吗?

0 投票
0 回答
181 浏览

c# - Entity Framework Core - 将 Azure SQL 实例设置为在弹性池中预配(不是 T-SQL)

语境

我们有一系列用于测试的开发数据库 - Azure SQL。这些数据库经常被删除并重新创建。我们想开始使用弹性池来更好地管理成本。我们正在使用 Entity Framework Core 以 Code First 策略创建和升级数据库。有可能不想将池用于一个或多个环境,因此这应该是可配置的,因此,迁移似乎不是一个可行的选择。

问题

因此,我在尝试使用 EF Core 在弹性池中配置实例时遇到了麻烦。根据链接上的信息,我尝试了以下方法: modelBuilder.HasPerformanceLevelSql($"ELASTIC_POOL (name = [{_elasticPoolName}])");

这是OnModelCreating(ModelBuilder modelBuilder)在 DBContext 内部设置的。

现在,我预计底层的 T-SQL 是这样的: CREATE DATABASE [DatabaseSomething] ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = ElasticPoolSomething ) ) ;

但是,启用记录器并查看实际生成的底层 T-SQL 后,我只看到: CREATE DATABASE [DatabaseSomething];

就好像 EF 忽略了模型构建器上的 ELASTIC_POOL 设置。

附加信息

  • 在我们的 Azure 中对实际弹性池进行了多次尝试失败后,我目前正在对一个本地 SQL 实例进行测试,该实例显然没有弹性池,但我假设生成的 T-SQL 仍会反映设置。还是我错了?
  • 也试过:(modelBuilder.HasPerformanceLevelSql($"ELASTIC_POOL (name = {_elasticPoolName})");没有方括号)
  • 也试过:modelBuilder.HasPerformanceLevelSql($"SERVICE_OBJECTIVE = ELASTIC_POOL (name = [{_elasticPoolName}])");

有没有人知道我可能会错过的东西?或者为什么会这样?

提前致谢!

0 投票
2 回答
690 浏览

azure - 扩展 Azure SQL 弹性池存储时是否存在停机时间?

我有一个包含 800 个 eDTU 和 400GB 存储的 Azure SQL 弹性池。

过去,我曾经有 400 个 eDTU,当我扩展到 800 个 eDTU 时,我在网站上的停机时间很短(约 15-30 秒),所以在对存储进行任何更改之前,我想检查一下我是否也应该预期停机时间。

有人知道吗?

0 投票
2 回答
194 浏览

powershell - 使用 ARM 模板时创建部署期间的 Azure ElasticPool “BadRequest”

我有一个任务,我需要使用 ARM 模板来“设置带有弹性池的 SQL 服务器和 2 个数据库(从 bacpac 文件导入)使用 Microsoft Adventureworks 示例。”

我使用此处提供的“101-sql-elastic-pool-create”模板制作的大部分模板:https ://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-elastic- pool-create 我将它用于弹性池设置,并使用了本文档中的示例(https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-tutorial-deploy-sql -extensions-bacpac ) 将 .bacpac 导入数据库

但是,当我尝试部署此模板时(该模板可在此处查看:https ://github.com/KarlisAG/SQL_ARM/blob/main/azuredeploy.json ),它会抛出一个错误("Resource Microsoft.Sql/servers/elasticPools 'task4sql/elasticp' failed with message '{ "code": "BadRequest", "message": "An error occurred while processing this request.", "target": null, "details": [], "innererror": [] }' "

所以,最大的问题是(除了我是一个绝对的新手)不知道我需要修复什么,因为除了“BadRequest”之外没有授予其他信息。对于部署,我使用了两种不同的方法:1)创建 Azure 资源组时从 VS 自动生成的一种,2)本文档中显示的一种,我自己的更改很少,因此它可以为我工作(https://docs. microsoft.com/en-us/azure/azure-resource-manager/templates/template-tutorial-deploy-sql-extensions-bacpac#deploy-the-template),我还从那里获得了用于将 .bacpac 导入到的代码部分我新创建的数据库。[两者都在同一个存储库中可用,分别命名为“Deploy-AzureResourceGroups.ps1”和“DeployScript.ps1”]。这两种方法都返回相同的错误。

我什至在 Azure 门户中手动创建了这些东西,以查看它们的模板是什么样子,并可能复制一些在我的模板中不存在的东西,但从我所见,我得到了它们自动生成的东西。当我在 Azure 门户中检查部署状态时,我还可以看到在创建弹性池期间它失败了:该部分的屏幕截图可在此处获得

那么有谁知道我应该如何创建这种类型的模板,还是我重新创建它很糟糕,或者我错过了一些一直阻止我的小错误?

0 投票
1 回答
51 浏览

azure - 每个客户端的弹性池成本拆分

我们有一种情况,我们在弹性池中为每个客户端托管一个数据库。我们正在尝试根据客户使用数据库的数量来确定如何公平地向客户收费。

无论需要什么度量标准,我们都可以在每个计费周期为每个数据库提取。

  • 考虑为每个客户端数据库使用哪些适当的指标?
    • 每个数据库一个月内的 DTU、vCore 利用率?
    • 每月平均 CPU 利用率?

任何建议,想法将不胜感激。我希望这有点道理。请随时提出澄清问题,我会提供尽可能多的反馈。

0 投票
1 回答
385 浏览

powershell - 获取 Azure SQL 弹性池中使用的 CPU (Max) 和 CPU used (Avg)

我想使用 SQL Query 或 Powershell 脚本从 Portal 获取“CPU used (Max)”和“CPU used (Avg)”。我使用了“sys.elastic_pool_resource_stats”,但没有提及细节。

有没有办法做到这一点,使用 SQL 查询。

下面是示例屏幕截图。从下面的屏幕截图中,我想得到 CPU 使用(最大):1.94 和 CPU 使用(平均):0.07。此数据是最近 1 个月的数据。

在此处输入图像描述

0 投票
0 回答
66 浏览

sql-delete - SQL“DELETE FROM ...”不起作用,因为弹性池已满

我正在尝试从表中删除一些行,因为弹性池 (Azure) 已满。但是,当池已满时,显然删除不起作用。

我正在尝试在 SQL Server Management Studio (SSMS) 中运行此语句:

但这会返回:

Msg 1132, Level 16, State 1, Line 1 弹性池已达到其存储限制。弹性池的存储使用量不能超过 (524288) MB。

我该如何摆脱这种情况?

不是首选/可能的解决方案:

  • 增加弹性池大小,因为它已经达到最大值
  • 删除整个表,因为那里有相关数据

提前致谢

0 投票
0 回答
23 浏览

azure-billing-api - 确定弹性池中所有数据库的每个数据库 vCore CPU 利用率

我的研究还处于早期阶段。很早。所以,我只是在检查是否有人可以建议我在这里遗漏的东西。很高兴澄清这个问题的任何观点。

情况

每个月,我们都会收到一份订阅账单,并且需要根据 vCore 平均 CPU 计算每个客户的弹性池成本。我们需要能够查询池中的所有数据库(超过一百个......不,我没有设计这个)以打破它们在计费周期(大约 30 天)内的平均 CPU。

我们看过的...

似乎没有办法通过计费 API 获取此信息。我已经查看了指标 API、KQL 等。我认为我们可以从其中一个或组合中实现目标。我是其中一些工具的新手,就我们应该寻找的地方而言,它们似乎在方向上是正确的。

问题

  • 是否有人知道或有任何示例/建议(实际上从任何角度/方法)可以分享,以从弹性池中的所有数据库返回一段时间内的平均 CPU?或者只是确认是的,我需要继续挖掘提到的项目(KQL、Metric API 等)
  • 或者我们可能缺少什么?

不是在寻找一个完整的解决方案,而是仅仅验证想法并确保我们没有走错路……或使事情变得过于复杂。:|

0 投票
2 回答
298 浏览

c# - 使用 TSQL 或 Azure API C# 在弹性池中添加和删除 Azure 数据库到故障转移组

创建数据库并添加到故障转移组

我有一个 Azure 弹性池,并且在不同的 Azure 区域上创建了一个带有另一个弹性池(同名)的故障转移组,在创建故障转移组期间,我选择了弹性池,它通过并添加了所有数据库将弹性池中的弹性池复制到辅助服务器上的弹性池。

我有一个脚本设置来使用以下 TSQL 自动创建新数据库:

但是,上述脚本不会将数据库添加到故障转移组,因此它不会添加到我的其他 Azure 区域中的其他 SQL 服务器。我不想每次都通过 Azure 门户手动将任何新数据库添加到故障转移组,那么是否有一个 TSQL 脚本可以在创建时将数据库添加到故障转移组?

删除数据库,从故障转移组和辅助服务器中删除

继上述之后,我还有以下删除数据库的 TQL:

运行上述命令会从主服务器中删除数据库,并将其从故障转移组中删除,但数据库仍存在于辅助服务器上。有没有办法使用 TSQL 从辅助服务器中删除它,是否像再次运行上述脚本但指向辅助服务器一样简单,或者有更好的方法吗?

编辑

似乎没有办法用 TSQL 做到这一点,那么在 C# 中使用 Azure API 是否可以做到这一点,如下所示?

0 投票
0 回答
33 浏览

azure - Azure 数据库弹性池中的资源利用率

我有几个并行运行的网络作业。当它们并行运行时,我得到下面的堆栈跟踪超时错误。

“超时已过。在操作完成之前超时时间已过或服务器没有响应。” 在 System.Data.SqlClient.SqlCommand。C。ExecuteDbDataReaderAsync b_122_0(System.Threading.Tasks.Task 中的任务1 result) at System.Threading.Tasks.ContinuationResultTaskFromResultTask2.InnerInvoke()。c.cctor b_275_1(Object obj)在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback 回调,对象状态)

假设由于弹性池的基本资源分配量导致超时,我将弹性池从 50 个 eDTU 扩展到 100 个 eDTU,并检查了 Web 作业的并行运行。本地时间(UTC+5:30)2021-06-10 11:00:00PM 到 2021-06-10 11:59:59PM 运行并行作业时,弹性池资源利用率和 DB 资源利用率为绿色如下。根据这些报告,它显示虽然绿色的 db 资源利用率变为 100%,但同时分配的 100eDTU 的总资源利用率仅为 3%。我的问题是为什么它只使用 3% 的资源?弹性池中有 12 个 db。如果它与每个 db 平均共享资源,则至少应为 100/12 = 8.33。但是根据使用弹性池背后的想法,它应该分配更多的资源,因为它在数据库之间共享资源。

有人可以分享任何想法或说出背后的原因吗?

弹性池资源利用率

单个数据库的资源利用率

在此先感谢 --- Thushara ---