我正在处理庞大的数据库,并且插入\使用大文件时,日志文件增加到60GB以上,并且吃掉我的所有驱动器,因此无法继续处理。我尝试收缩日志文件,但它后来工作,并在工作时再次增加所以我想将日志文件(仅)移动到我的第二个驱动器,我有更多的空间。
我试过Detach和Attach,但它没有用,错误:
附加数据库时发生错误。单击“消息”列中的超链接以获取详细信息。
我也尝试通过alter命令手动:
ALTER DATABASE [databasename]
MODIFY FILE ( NAME = filename , FILENAME = "new file location and name");
但它使数据库“恢复挂起”,我不得不从备份恢复它。
还有其他选择吗?
从备份还原后,可以将MOVE
命令添加到restore命令,以便在还原期间将日志文件移动到新驱动器。
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
上,则需要增加日志备份的频率。如果有的话,没有备份就会缩小并不会有太大作用。备份日志文件时,将从日志中备份并清除已提交的事务,从而释放空间。正如您所见,您的日志文件将根据工作负载继续增长。因此,定期缩小日志文件并不能真正帮助您。