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

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

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

我试过Detach和Attach,但它没有用,错误:

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

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

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

但它使数据库“恢复挂起”,我不得不从备份恢复它。

还有其他选择吗?

sql-server
1个回答
0
投票

从备份还原后,可以将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上,则需要增加日志备份的频率。如果有的话,没有备份就会缩小并不会有太大作用。备份日志文件时,将从日志中备份并清除已提交的事务,从而释放空间。正如您所见,您的日志文件将根据工作负载继续增长。因此,定期缩小日志文件并不能真正帮助您。

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