【问题标题】:Azure - The database [NAME] has reached its size quotaAzure - 数据库 [NAME] 已达到其大小配额
【发布时间】:2017-02-02 16:17:42
【问题描述】:

今天早上我收到一封电子邮件,说明我的网站无法正常工作。每当我尝试写入数据库时​​都会出错。错误是:

数据库 [NAME] 已达到其大小配额。分区或删除数据、删除索引或查阅文档以获取可能的解决方案。

我的数据库只有 16MB,有 2GB 的限制!在做了一些研究之后,我在数据库上运行了这个查询。

SELECT DATABASEPROPERTYEX ('DatabaseName','Edition')
SELECT DATABASEPROPERTYEX('DatabaseName','MaxSizeInBytes')
SELECT (SUM(reserved_page_count) * 8192)
FROM    sys.dm_db_partition_stats

结果是

基本

2147483648

15777792

显然我的数据库远小于最大大小。是否有任何其他问题可能导致这种情况发生?

同时我将尝试删除和恢复数据库。

谢谢!

更新

一旦我恢复了数据库,它又开始工作了。

【问题讨论】:

  • 您收到错误消息的错误代码是什么?
  • SUM(reserved_page_count) FROM sys.dm_db_partition_statsused 大小,但它不是数据库文件的大小(它可以增长以容纳以后删除、压缩等的数据)。我可以创建一个 500 GB 的数据库文件并且只插入一行。您的查询表明我的数据库小于 1 MB,但如果不允许我在驱动器上拥有 500 GB 的文件,我仍然有麻烦。
  • 如果您想知道数据库文件有多大:SELECT [type_desc], size * 8192 FROM [sys].[database_files];。您需要对此进行监控或避免做导致不必要的文件增长的事情。
  • @astaykov 我不同意。我发布的查询肯定会在当前版本的 Azure SQL 数据库 (here's some proof) 上运行,并且它会给出数据文件是否超过 OP 服务级别的 2GB 上限的想法。 (This screen shot shows that the numbers are not identical, and I am sure the variance can be much larger depending on workload.)
  • @astaykov 我仍在使用版本 11。即使查看 Azure 管理门户中的数据使用情况,它也仅显示 16MB 的 2GB。如果还有其他文件对 Azure SQL 服务起作用。他们真的应该在使用信息中包含这些内容。

标签: sql-server azure azure-sql-database


【解决方案1】:

昨晚刚遇到与 Azure DB 类似的问题(相同的异常消息) - 我们在 Azure 中有 50 GB 的弹性 DB 池配额,池 DB 的总大小现在约为 4 GB。所以我期待所有数据库只要达到总池配额就可以增长。

虽然 Azure 实际上处理配额不是基于您在 DB 或弹性池的服务计划中设置的内容,而是基于存储在 DB 中的配额属性: https://blogs.msdn.microsoft.com/sqlcat/2016/09/13/real-world-azure-sql-db-unexpected-database-maximum-size-limit/

具体来说,当一个大小配额显式低于默认值的数据库被扩展到更高的服务目标时,它的大小配额保持不变。对于期望新服务目标的最大大小配额在扩展操作完成后生效的管理员来说,这可能是一个令人不快的意外。

【讨论】:

    【解决方案2】:

    是 sql db V12 吗?如果是 SQLDB v12,您可以查询 sys.database_files 以查看数据库文件的实际大小。我建议升级到 V12,因为它带来了许多早期版本的 SQL 产品中没有的功能。

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      相关资源
      最近更新 更多