sql-将日志文件移动到另一个驱动器

时间:2019-01-15 12:07:08

标签: sql-server

我正在处理巨大的数据库,并且在插入\处理大文件时,日志文件增加到60GB以上,并吞噬了我所有的驱动器,使其无法继续处理。 我尝试了收缩日志文件,但是后来它可以工作,并且在工作时又增加了,因此我想将日志文件(仅)移动到我的第二个驱动器上,在那里我有更多的空间。

我尝试了Detach and Attach,但没有成功,错误:

  

附加数据库时发生错误。点击超链接   在“消息”列中获取详细信息。

我也通过alter命令手动尝试了

ALTER DATABASE [databasename]
MODIFY FILE ( NAME = filename , FILENAME = "new file location and name");

但是它使数据库“正在等待恢复”,我不得不从备份中恢复它。

还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

自从备份还原以来,可以在还原命令中添加MOVE命令,以在还原过程中将日志文件移动到新驱动器。

USE [master]
GO

RESTORE DATABASE [YourDatabase] FROM DISK = 'c:\mssql\backup\Full.bak' 
WITH CHECKSUM, 
MOVE 'YourDatabase_Log' TO 'E:\newdir\Log.ldf', 
RECOVERY, REPLACE;

为了防止日志文件增长过多,假设您不在SIMPLE RECOVERY MODEL上,则需要增加日志备份的频率。缩水而不进行备份不会做很多事情,即使有的话。当您备份日志文件时,已提交的事务将被备份并从日志中清除,从而释放空间。如您所见,日志文件将根据工作量继续增长。因此,定期缩小日志文件并不能真正帮助您。