日期:2014-05-18  浏览次数:20823 次

关于数据库备份的问题?
我用下面的语句备份日志:(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 正在异常终止。

请问这两个错误要如何修改?

------解决方案--------------------
不是说得很清楚了吗?

在数据库的恢复模式为Simple(简单)下,不能备份日志
所以你的backup log失败。

backup log语句的选择with no_log为截断日志,不产生文件 。


还原日志文件,那必须要有一个日志顺序链,按照这个顺序还原才行,也必须是根据完整数据库还原或差异还原后才能做的日志还原。。


------解决方案--------------------
基础操作可见联机丛书。
------解决方案--------------------
我都说了,日志恢复有一个顺序的。

比如备份了1,2,3
你总不能还原1后,就直接还原3吧。
------解决方案--------------------
LZ需要弄清楚SQL数据库恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式,备份方式:完全备份、差异备份、事务日志备份,他们是什么含义,什么情况使用,有了相关的备份怎么还原,搞清楚了LZ的问题就解决了!