【问题标题】:sql- move log file to another drivesql-将日志文件移动到另一个驱动器
【发布时间】:2019-01-15 12:07:08
【问题描述】:

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

我尝试了分离和附加,但它没有工作,错误:

附加数据库时出错。点击超链接 详情请在消息栏内查看。

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

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

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

还有其他选择吗?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    由于您从备份中恢复,您可以将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 上。没有备份的收缩不会有太大的作用,如果有的话。备份日志文件时,会备份已提交的事务并从日志中清除,从而释放空间。正如您所看到的,您的日志文件将根据工作负载继续增长。因此,定期缩小日志文件并不能真正帮助您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多