我正在处理巨大的数据库,并且在插入\处理大文件时,日志文件增加到60GB以上,并吞噬了我所有的驱动器,使其无法继续处理。 我尝试了收缩日志文件,但是后来它可以工作,并且在工作时又增加了,因此我想将日志文件(仅)移动到我的第二个驱动器上,在那里我有更多的空间。
我尝试了Detach and Attach,但没有成功,错误:
附加数据库时发生错误。点击超链接 在“消息”列中获取详细信息。
我也通过alter命令手动尝试了
ALTER DATABASE [databasename]
MODIFY FILE ( NAME = filename , FILENAME = "new file location and name");
但是它使数据库“正在等待恢复”,我不得不从备份中恢复它。
还有其他选择吗?
答案 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
上,则需要增加日志备份的频率。缩水而不进行备份不会做很多事情,即使有的话。当您备份日志文件时,已提交的事务将被备份并从日志中清除,从而释放空间。如您所见,日志文件将根据工作量继续增长。因此,定期缩小日志文件并不能真正帮助您。