如何清除SQL Server的磁盘空间?

问题描述 投票:0回答:1

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

由于'ACTIVE_TRANSACTION',数据库'MyDB'的事务日志已满。

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

我已尝试DBCC SQLPERF('logspace')分析磁盘空间。尝试按建议的here.执行查询后,数据库的日志空间很小。我预计无法通过缩小log file来解决问题。我尝试过CREATE DATABASE,然后

SELECT * 
INTO new_db.table 
FROM old_db.table

发生以下错误:

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

我已经从C:\Users\username\AppData\Local\Temp中删除了日志文件,但是发生了相同的例外。我还清理了硬盘驱动器和回收站中的文件,并对硬盘驱动器进行了碎片整理。我尝试将查询结果的路径调整到其他目录(“工具”>“选项”>“查询结果”)。我还从数据库中删除了许多表,退出了SQL Server并重新连接,以及关闭并重新启动计算机。

sql-server diskspace
1个回答
0
投票

首先要了解的是数据库正在使用哪种recovery mode

如果处于FULL恢复模式,仅进行常规备份是不够的。您必须频繁(每20分钟,甚至更快)事务日志备份除非您这样做,否则Sql Server将从不回收事务日志,并且它将继续增长,直到空间用尽。

运行事务日志备份后,您应该能够缩小日志文件并回收该磁盘空间。

如果您不在FULL恢复模式下,则可以只在Sql Server Management Studio中手动清除或扩展事务日志。

© www.soinside.com 2019 - 2024. All rights reserved.