SQL Server错误:主文件组已满

问题描述:

我有一个非常大的表在我的数据库,我开始收到此错误SQL Server错误:主文件组已满

Could not allocate a new page for database 'mydatabase' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

你如何解决这个错误?我不明白那里的建议。

是不是真的有太多的补充 - 它几乎会告诉你,你需要在错误信息做什么。

您在SQL创建的每个对象(表,SP,指数等)是一个文件组创建的。默认的文件组是PRIMARY。通常创建跨越多个磁盘的多个文件组。例如,你可以有一个名为INDEXES的文件组来存储所有的索引。或者如果你有一个非常大的表,你可以将它移动到不同的文件组。

您可以分配的空间来一个文件组,2GB说。如果文件组中的数据达到2GB后未启用“自动增长”,则SQL Server无法再创建更多对象。这也将出现文件组所驻留的磁盘空间不足。

我真的不知道还有什么可以补充 - 正如我前面所说,该错误信息几乎告诉你需要什么。

使用DBCC SHRINKFILE语句收缩文件...

USE databasename ; 
GO 
-- Truncate the log by changing the database recovery model to SIMPLE. 
ALTER DATABASE databasename 
SET RECOVERY SIMPLE; 
GO 
-- Shrink the truncated log file to 1 MB. 
DBCC SHRINKFILE (databasename_Log, 1); 
GO 
-- Reset the database recovery model. 
ALTER DATABASE databasename 
SET RECOVERY FULL; 
GO 
+0

谢谢哈伦德拉。这是我想知道的,但没有奏效。我们必须订购额外的MB。不管怎么说,还是要谢谢你! – Aximili 2010-06-08 00:13:54

如果您使用的客户端工具(MSDE),然后在文件组中的数据达到2GB,SQL Server不能创建任何对象。

如果您使用的SQL Express,你可能会碰到的最大数据库大小限制(或者更准确的文件组大小限制),这是为4GB版本到2005年,10GB SQL Express的2008年开始。该大小限制不包括日志文件。

+1

确切地说,文件组大小限制。 – Ivka 2014-10-22 08:05:41

+0

好点@Ivka,我已经相应地更新了我的回复。 – tomRedox 2014-10-22 13:00:19