SQL Server备份维护计划(完整,反式日志备份)

我制定了一个维护计划来执行:

  • 每晚完整备份(覆盖文件)
  • 一个2小时的事务日志备份(附加到1个文件分开)

数据库处于完全恢复模式。

这个想法是在SQL Server完全备份完成后,让磁带备份代理每天晚上备份完整备份文件。

不过,我很困惑如何设置事务日志的备份文件。

处理的最佳做法是什么?

  1. 定期进行日志备份
    • 应该为每一个创build单独的文件?
    • 我怎么会得到每个备份closures服务器磁带在某个时候?
  2. 每晚备份完整分贝
    • 应该每次覆盖文件
    • 我注意到,即使设置为覆盖,运行3天后备份文件仍然很大。 (DB = 28Gb,每晚备份文件= 58Gb)为什么会发生这种情况?

总而言之,设置Full和Trans Log备份计划的最佳做法(根据文件具体情况而定)是什么,然后将其备份到Tape?

谢谢,A-non-dba-developer

就我个人而言,我有一个12GB(并不断增长)的数据库,每晚都有一个备份。 我在磁盘上保存了5天,每个文件都在自己的文件中,并且每晚保留一个月左右将它们复制到磁带上。 我也有交易日志每小时发货,每个都有自己的文件。 我保留了3天左右的时间,但是不要将它们复制到磁带上。 如果我升级磁带上的存储,我可能也会启动这个function,不过最有可能不需要(IMO),因为您之间有夜间备份。

正如Peter所说,将备份保留在磁盘上至less几天可以使恢复更快更简单,更不用说为了debugging的原因而将其恢复到辅助数据库。 还有一个很好的保留磁带的长度。 对我来说不是一个问题,但是如果你在应用程序中有删除function,并且客户端有一个'哎呀我删除了一些东西…一个月前,我需要今天,你能把它拿回来吗? 键入时刻。

编辑:
在回答评论和扩大我的答案在这里一点。 我使用第二个/第三个SQL作业为我pipe理文件。 在SQL 2005中,我遇到了pipe理文件不能正确删除的问题,所以我写了一些代码(VBScript)为我做了一个计划任务,直到删除它。 但是,在SQL 2008中,他们修复了这个问题,或者我做了一个更好的configuration,删除了旧的备份,旧的日志文件,甚至还有一个保持数据库健康的文件。 然后我使用一些VB脚本将我的文件复制到“磁带”,我真的应该重写在C#下一次我觉得无聊。 我使用IOMEGA REV驱动器/磁盘作为我的“磁带”,他们工作得很好。

我认为最好的做法是在光盘上保留三天的完整备份,并通过磁带备份代理(veritas / tivoli等)将它们扫描到磁带上。

事务日志备份通常被configuration为与完整备份一起进入相同的驱动器区域,磁带备份代理也将捕获它们。

这意味着在出现还原要求的情况下,您可以从最近三天的备份中快速还原。 再往后,你需要把它从磁带上取下来。