我用下面的语句备份日志:(mydb是我的数据库名字)
use master;BACKUP LOG mydb TO DISK='D:\b.trn'
显示以下错误:
消息 4208,级别 16,状态 1,第 1 行
当恢复模式为 SIMPLE 时,不允许使用 BACKUP LOG 语句。请使用 BACKUP DATABASE 或用 ALTER DATABASE 更改恢复模式。
消息 3013,级别 16,状态 1,第 1 行
BACKUP LOG 正在异常终止。若改成这句话:
use master;BACKUP LOG DalianUnion TO DISK='D:\b.trn' with no_log
执行正确,但是在D盘目录下没有生成b.trn文件另外,我用这句话还原差异备份:
use master; RESTORE DATABASE mydb FROM DISK='D:\a.dif'
结果显示如下错误:
消息 3117,级别 16,状态 4,第 1 行
无法还原日志备份或差异备份,因为没有文件可用于前滚。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。请问这两个错误要如何修改?

解决方案 »

  1.   

    不是说得很清楚了吗?在数据库的恢复模式为Simple(简单)下,不能备份日志
    所以你的backup log失败。backup log语句的选择with no_log为截断日志,不产生文件 。
    还原日志文件,那必须要有一个日志顺序链,按照这个顺序还原才行,也必须是根据完整数据库还原或差异还原后才能做的日志还原。。
      

  2.   

    谢谢指点,这个我已经改好了,但是我用日志恢复的时候又有错了,错误是:
    此备份集中的日志开始于 LSN 28000000030900001,该 LSN 太晚,无法应用到数据库。可以还原包含 LSN 28000000030800001 的较早的日志备份。这个是什么情况?要怎么改?
      

  3.   

    谢谢,这个我已经知道了,但是我备份后,还原日志但是还出错,错误信息是:
    尚未备份数据库 "student" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。
    请问要怎么改?
      

  4.   

    LZ需要弄清楚SQL数据库恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式,备份方式:完全备份、差异备份、事务日志备份,他们是什么含义,什么情况使用,有了相关的备份怎么还原,搞清楚了LZ的问题就解决了!
      

  5.   

    自己写脚本循环这些文件 ,动态执行restore log语句
    可以多做一些差异备份,日志就只在这个差异后做还原。