如果不存在完整备份,事务日志备份将失败

至less我是这么认为的

我最近修改了我的开发服务器上的备份例程。 我为用户数据库创build了一个维护计划,每天执行一些每周清理任务,每日完整备份和事务日志备份。

直到今天,一切都运转良好,当时收到一封电子邮件,通知我午餐时间备份失败。 日志查看器没有透露太多,除了一定数量的数据库完全备份成功之前,结束日志条目:

[snipped] Source: ... The package execution fa... The step failed. 

不完全揭示

我想到,以前的尝试唯一的变化是我今天早上创build了一个新的(小而不起眼的)数据库。

我重新启动了SQL Server代理,尝试手动重新运行(事务日志备份)步骤,但又失败了。

但是,运行完整的备份步骤(从而为我的新数据库创build第一个完全备份)工作 – 此外,再次重新运行事务日志备份步骤也起作用。

由于缺less完整的备份或以前的事务日志备份,事务日志备份似乎陷入困境。

这是预期的行为? 一方面,在一个原始的层面上,这是有道理的,但实际上,我希望它能够更好地处理这种情况。

如果是这样,有没有办法自动处理这个? 这种情况不会经常发生,但是当我创build数据库时,我不能忘记备份数据库,特别是因为它只处于开发的早期阶段。

如果不是,这种行为的可能原因是什么? 我可以避免吗?

是的,这是预期的行为。 为了使事务日志有用,需要有一个完整备份作为滚动的起点。

别担心,太多了。 如果你创build一个新的数据库,第一天你会得到这个错误。 正如你所看到的,其他数据库的日志备份将会成功,但是这个错误只会使得看起来像步骤失败,实际上只有一个数据库失败。 那么,那晚(或者什么时候),它会做完整的备份。 之后,新日志备份将会成功。 基本上,当你创build一个新的数据库,直到整个备份作业运行,你将有一天或错误。

我在DBS的名单上加了一个标志,表示它已经备份了。 备份脚本不会执行Txn备份,直到它等于1.在我的完整备份脚本中,我将标志设置为1. Presto,没有更多的失败。