收缩“丢弃”数据库的大型日志文件

Vac*_*ano 3 sql-server-2008 sql-server sql-server-2008-r2 transaction-log

我在开发服务器上有我的 prod 数据库的副本。我正在使用它来测试部署脚本。

但是当我运行它时,它说日志文件已满。

我查了一下,它是 10 GB(几乎是整个数据库的大小)。

我不需要这个数据库,但需要几个小时(之后它将被删除)。

有没有办法优雅地摆脱日志文件?(直接删除它似乎是错误的。)

注意:
我已经运行了这个:

select log_reuse_wait, log_reuse_wait_desc, name 
from sys.databases
where name = 'ProdCopyDatabase'
Run Code Online (Sandbox Code Playgroud)

结果是:

log_reuse_wait  log_reuse_wait_desc    name
2               LOG_BACKUP             ProdCopyDatabase
Run Code Online (Sandbox Code Playgroud)

Mik*_*Fal 14

您有两个选择:

1)运行数据库的LOG备份:

BACKUP LOG foo TO DISK='X:\BackupLocation';
Run Code Online (Sandbox Code Playgroud)

2) 将恢复模式设置为 SIMPLE 并检查点。

ALTER DATABASE foo SET RECOVERY SIMPLE;
CHECKPOINT;
Run Code Online (Sandbox Code Playgroud)

这都是 SQL Server 不同恢复模型的一部分。根据您在 DEV 中的工作,我可能会选择第二个选项,因为听起来您无需担心时间点恢复。

请注意,这只会清除活动事务,不会减少实际文件大小。完成后,您可以缩小日志文件