解决数据磁盘空间不足的问题
新建日期: 2006 年 4 月 14 日
在恢复过程中,SQL Server 数据库引擎可能需要更多的磁盘空间保存数据文件。如果操作过程中没有足够的磁盘空间,则数据库引擎会发出 1101 或 1105 错误(分别取决于它无法为区分配空间或为对象分配空间)。如果数据库联机时磁盘已满,则数据库保持联机状态,但是不能插入数据。如果恢复过程中磁盘已满,则数据库引擎将数据库标记为“资源挂起”。不管哪种情况,都需要用户执行操作才能使磁盘空间可用。
解决空间问题
下列操作之一可能会将空间用于文件组:
- 释放已满磁盘上的磁盘空间。
- 将数据文件移到另一个磁盘。
- 在其他磁盘上添加文件。
- 启用自动增长。
注意: |
---|
如果数据库恢复过程中出现错误,则必须在解决问题后恢复数据库。 |
释放已满磁盘上的磁盘空间
- 在错误消息中提及的文件组内包含文件的磁盘上,通过删除所有不需要的索引或表来释放磁盘空间。释放磁盘空间允许文件组中的文件增长。
将数据文件移到另一个磁盘
- 请参阅移动数据库文件。
在其他磁盘上添加文件 (Transact-SQL)
- 使用 ALTER DATABASE <database_name> ADD FILE TO FILEGROUP <filegroup_name>,将更多的文件添加到其他磁盘上的文件组。
注意: |
---|
有关详细信息,请参阅添加和删除数据文件和事务日志文件。 |
在其他磁盘上添加文件 (SQL Server Management Studio)
增加文件大小
如果禁用自动增长,数据库处于联机状态,并且磁盘上有足够的可用空间,则可采用以下方法之一:
- 手动增加文件大小以生成单个增量。
- 使用 ALTER DATABASE 语句启用自动增长以针对 FILEGROWTH 选项设置非零增量。
注意: |
---|
不管哪种情况,如果已达到当前大小限制,则应增加 MAXSIZE 值。 |
恢复数据库
如果数据库在恢复过程中用完了磁盘空间,则可使用 ALTER DATABASE <database_name> SET ONLINE 恢复数据库。
请参阅
概念
其他资源
ALTER DATABASE (Transact-SQL)
管理事务日志