如何清除SQL Server的磁盘空间



我在Windows 10中运行SQL Server。在最近的所有查询中,我都得到了以下两个错误之一:

由于"ACTIVE_transaction",数据库"MyDB"的事务日志已满。

执行批处理时出错。错误消息是:磁盘上没有足够的空间。

我尝试过DBCC SQLPERF('logspace')来分析磁盘空间。尝试执行此处建议的查询后,数据库的日志空间非常小。我预计无法通过缩小日志文件来解决此问题。我试过CREATE DATABASE,然后是

SELECT * 
INTO new_db.table 
FROM old_db.table

出现以下错误:

Msg 1101,级别17,状态12,第2行
由于文件组"PRIMARY"中的磁盘空间不足,无法为数据库"new_db"分配新页面。通过删除文件组中的对象、向文件组添加其他文件或为文件组中现有文件设置自动增长来创建必要的空间。

我已经从C:UsersusernameAppDataLocalTemp中删除了日志文件,但也出现了同样的异常。我还清理了硬盘和回收站中的文件,并对硬盘进行了碎片整理。我已尝试将查询结果的路径调整到其他目录("工具">"选项">"查询结果"(。我还从数据库中删除了一些表,退出SQL Server并重新连接,还关闭了我的计算机并重新启动它

首先要了解的是数据库使用的恢复模式。

如果您处于FULL恢复模式,则仅进行定期备份是不够的。您还必须频繁(每20分钟,甚至更快(执行事务日志备份Sql Server将永远回收事务日志,并且它将继续增长,直到空间用完为止。

运行事务日志备份后,您应该能够收缩日志文件并回收该磁盘空间。请注意,这应该是而不是的常规过程。只有在最初修复了诸如丢失事务日志备份之类的错误后,才收缩DB以重新获得空间。

如果您不处于FULL恢复模式,则可以在Sql Server management studio中手动清除或展开事务日志。

最新更新