……至少我是这么认为的。
我最近修改了我的开发服务器上的备份程序。我为用户数据库创建了一个维护计划,该计划在全天的关键点执行一些每周清理任务、每日完整备份和事务日志备份。
直到今天,一切都运行良好,当时收到一封电子邮件,通知我午餐时间备份失败。日志查看器没有透露太多信息,除了在日志条目结束之前成功备份了一定数量的数据库:
[snipped] Source: ... The package execution fa... The step failed.
Run Code Online (Sandbox Code Playgroud)
不完全暴露
我突然想到,与以前的尝试相比,唯一的变化是我今天早上创建了一个新的(小而不起眼的)数据库。
我重新启动了 SQL Server 代理,并尝试手动重新运行(事务日志备份)步骤,但它再次失败。
但是,运行完整备份步骤(从而为我的新数据库创建第一个完整备份)有效 - 此外,再次重新运行事务日志备份步骤也有效。
由于缺少完整备份或以前的事务日志备份,事务日志备份似乎很困难。
这是预期的行为吗?一方面,在原始级别上,这种情况是有道理的,但实际上,我希望它能够更优雅地处理这种情况。
如果是这样,有没有办法自动处理这个问题?这种情况不会经常发生,但我不能指望在创建数据库时记得备份它,尤其是因为它仅处于开发的早期阶段。
如果不是,这种行为的可能原因是什么?我可以避免吗?
我的数据库文件看起来很可疑。我们在生产阶段使用数据库。我看到 LDF 文件越来越多。而 MDF 文件似乎根本没有增长(我没有文件大小历史来证明它,但我认为它没有这样做!我敢打赌!)
所以我猜会发生什么?如何强制合并到 MDF?
环境:
备份场景:
题:
我正在将 15 分钟的日志文件备份备份到辅助 3GB 硬盘。在每晚差异备份后,我该如何处理它们?现在我的日志文件备份正在添加到自身,我是否只是在与计划任务差异后立即将其移动到不同的服务器?在我移动不再适用的日志文件备份后,维护计划是否能够立即开始备份?
我在这里阅读了很多帖子,在线 sql 书籍,sql 粉丝网站,甚至 YouTube,这似乎是最简单的方法,除了最后一块拼图。在我在更大的服务器上实现它之前,我正在这个小服务器上测试它。
设置:Sql Server 2008 R2,数据库设置为完全恢复模式。
我已经建立了一个维护计划,用于备份服务器上许多数据库的事务日志。它设置为在每个数据库的子目录中创建备份文件,验证备份完整性已打开,并使用备份压缩。该作业设置为在工作时间(上午 8 点至下午 6 点)每 2 小时运行一次。
我已经测试了该作业并且它运行良好,创建了应有的日志备份文件。但是,从我读到的内容来看,一旦备份了事务日志,截断事务日志应该就可以了。我在 Sql Server 维护计划设计器中看不到任何执行此操作的选项。我该如何设置?