奇怪的问题:我尝试从下载的备份文件恢复 AdventureWorks2019 并不断收到错误
SQL 错误 [3257] [S0001]:磁盘卷“C:”上没有足够的可用空间来创建数据库。数据库需要 285212672 个额外的可用字节,而只有 142028800 个字节可用。
磁盘卷“C:”上没有足够的可用空间来创建数据库。数据库需要 285212672 个额外的可用字节,而只有 142028800 个字节可用。磁盘卷“C:”上没有足够的可用空间来创建数据库。数据库需要 285212672 个额外的可用字节,而只有 142028800 个字节可用。
尽管驱动器 C: 包含 21+GiB 的可用空间。
尝试从 SSMS 或通过 SQL 恢复命令进行恢复不会产生任何影响。
尽管如此,我还是试图释放“额外的金额”,但没有成功。
测试数据库的备份和恢复有效,尽管它改变了 AdventureWorks 错误消息中的可用字节数。所以我认为,SQL Server 实际上正在查找正确的文件夹。备份文件可以在 SQL Server 的不同实例 (2022) 中恢复,因此它不是一些大小爆炸的隐藏日志(无论如何,这会产生不同的数字)。
SQL Server 已使用“KB5029377 - SQL Server 2019 GDR 安全更新”进行了更新,但这也没有改变任何内容。
重置数据文件夹上的只读标志也没有改变任何内容。
由于我完全不知道为什么甚至如何可能报告错误的数字,我有点别无选择……有什么想法吗?(这可能是一种已知的行为吗?除了 stackoverflow 上的 11 y/o 线程之外,我什么也没找到。)
添加:将数据库导出为数据层并在相关服务器上导入 .bacpac 文件也不起作用,并出现相同的错误:磁盘空间不足。
那么该服务器似乎实际上在其数据文件夹中看到了错误的可用大小!?
Add2:卸载并重新安装 SQL Server 也没有效果。还是同样的错误。
Add3:不同的实例名称、不同的数据文件夹名称以及使用下载选项和 iso 映像重新安装也没有任何效果。
MSSQL 和文件系统在磁盘大小上不一致的情况非常罕见。很久以前,程序无法理解大于某个值的磁盘(2G?4G?8G?是的,已经很久了。)并且会查看(例如)4.5GB 磁盘,然后丢失 4GB 部分,认为磁盘只有 0.5GB。不过,对于 2019 年的计划来说,这种情况不太可能发生。
更有可能的是,在 MSSQL 用户或 MSSQL 数据文件夹上以某种方式设置了磁盘配额。实际上,这在我要检查的事项列表中名列前茅,特别是当可用空间量相当接近“整数”时,在本例中为 150MB。
您还可以尝试增加数据库的最大大小