今天早上我收到一封电子邮件,说明我的网站无效。我尝试写入数据库时收到错误。错误是:
数据库[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
显然我的数据库比最大尺寸要小得多。还有其他可能导致这种情况发生的问题吗?
我将尝试同时删除和恢复数据库。
谢谢!
更新
我恢复数据库后,它又开始工作了。
答案 0 :(得分:5)
昨晚刚与Azure DB遇到类似的问题(相同的异常消息) - 我们在Azure中有弹性数据库池的50 GB配额,池DB的总大小现在大约为4 GB。所以我期望只要达到总池配额,所有数据库都可以增长。
事实证明,Azure实际上处理的配额不是基于您在数据库或弹性池的服务计划中设置的内容,而是基于存储在DB中的配额属性: https://blogs.msdn.microsoft.com/sqlcat/2016/09/13/real-world-azure-sql-db-unexpected-database-maximum-size-limit/
具体而言,当明确从默认值降低大小配额的数据库扩展到更高的服务目标时,其大小配额保持不变。对于期望在缩放操作完成后新服务目标的最大大小配额生效的管理员,这可能是一个令人不快的意外。
答案 1 :(得分:0)
是sql db V12吗?如果是SQLDB v12,则可以查询sys.database_files以查看数据库文件的实际大小。我建议升级到V12,因为它带来了许多早期版本的SQL产品中没有的功能。