当分配 space 阻止您这样做时,更改 Azure SQL 数据库层的最佳方法是什么?
What is the best way to change the tier of an Azure SQL Database when allocated space prevents you from doing so?
我们的数据库最近太满了,我们需要删除一些数据。当我们尝试这样做时,我们收到了有关大小配额的错误,如下所示:
Msg 40544, Level 17, State 12, Line 1
The database '<My Database>' has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.
当我们寻找解决方案时,我们找到了这个资源 (https://social.technet.microsoft.com/wiki/contents/articles/1541.windows-azure-sql-database-connection-management.aspx),它说“当一台机器上的总数据库大小超过机器上 space 可用总量的 90% 时,所有数据库变为只读。负载平衡器确保通过跨机器平衡数据库来解决问题。”
当时,我们的数据库位于 S4 层,最大可达 1 TB。我们真的很想避免这种情况,但我们决定将数据库更改为 P11 层,这将大小增加到 4TB,但每月的成本从约 450 美元增加到约 7000 美元。
我们能够删除我们需要的数据,但是当我们尝试将层从 P11 恢复到 S4 时,我们被告知“您的数据库的存储大小不能小于当前分配的大小。 ”
确实,由于某种原因,分配的 space 现在为 1.13 TB
然后,令我沮丧的是,我发现了这个 (https://techcommunity.microsoft.com/t5/azure-database-support-blog/azure-sql-database-or-sql-managed-instance-database-used-data/ba-p/2162130)
“格式化文件的数量 space 可用于存储数据库数据。分配的 space 数量会自动增长,但在删除后永远不会减少。此行为可确保以后的插入速度更快,因为space 不需要重新格式化。"
我们真的需要回到 S4 层数据库。我们最坏的情况计划是我们创建一个全新的数据库,将我们的数据迁移到那个新数据库,更新对旧数据库的任何引用以使用新数据库,然后删除旧数据库,但是有没有人知道更好的解决方法问题?
请尝试缩小数据库和日志文件。
DBCC SHRINKFILE (log, 0)
DBCC SHRINKDATABASE (N'db1')
也相应地调整数据库的最大大小:
ALTER DATABASE DATABASE_NAME
MODIFY (EDITION='BUSINESS', MAXSIZE=750 GB)
之后尝试缩减数据库。
我们的数据库最近太满了,我们需要删除一些数据。当我们尝试这样做时,我们收到了有关大小配额的错误,如下所示:
Msg 40544, Level 17, State 12, Line 1
The database '<My Database>' has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.
当我们寻找解决方案时,我们找到了这个资源 (https://social.technet.microsoft.com/wiki/contents/articles/1541.windows-azure-sql-database-connection-management.aspx),它说“当一台机器上的总数据库大小超过机器上 space 可用总量的 90% 时,所有数据库变为只读。负载平衡器确保通过跨机器平衡数据库来解决问题。”
当时,我们的数据库位于 S4 层,最大可达 1 TB。我们真的很想避免这种情况,但我们决定将数据库更改为 P11 层,这将大小增加到 4TB,但每月的成本从约 450 美元增加到约 7000 美元。
我们能够删除我们需要的数据,但是当我们尝试将层从 P11 恢复到 S4 时,我们被告知“您的数据库的存储大小不能小于当前分配的大小。 ”
确实,由于某种原因,分配的 space 现在为 1.13 TB
然后,令我沮丧的是,我发现了这个 (https://techcommunity.microsoft.com/t5/azure-database-support-blog/azure-sql-database-or-sql-managed-instance-database-used-data/ba-p/2162130)
“格式化文件的数量 space 可用于存储数据库数据。分配的 space 数量会自动增长,但在删除后永远不会减少。此行为可确保以后的插入速度更快,因为space 不需要重新格式化。"
我们真的需要回到 S4 层数据库。我们最坏的情况计划是我们创建一个全新的数据库,将我们的数据迁移到那个新数据库,更新对旧数据库的任何引用以使用新数据库,然后删除旧数据库,但是有没有人知道更好的解决方法问题?
请尝试缩小数据库和日志文件。
DBCC SHRINKFILE (log, 0)
DBCC SHRINKDATABASE (N'db1')
也相应地调整数据库的最大大小:
ALTER DATABASE DATABASE_NAME
MODIFY (EDITION='BUSINESS', MAXSIZE=750 GB)
之后尝试缩减数据库。