SQL Server事务日志备份,

我有一个关于在SQL Server 2008中的事务日志备份的问题。我目前正在每周(星期天)进行一次完整的备份和每天的事务日志备份。 我在星期天做了完全备份到folder1,然后星期一我也把第一个事务日志备份放在同一个文件夹中。 在星期二,在我进行第二个事务日志备份之前,我将第一个事务日志备份从folder1移到folder2,然后我把第二个事务日志备份放到folder1中。 周三和周四也是如此。 基本在folder1我总是有最新的完整备份和最新的事务日志备份,而其他事务日志备份在folder2。 我的问题是,当sql服务器即将采取,可以说第四(星期四)事务日志备份,它是否查找以前的transac日志备份(第一,第二和第三),以便这个新的备份将只包括来自最后的备份还是有一些其他方式来知道是否有其他transac日志备份。 基本上,我这样问,因为我所有的事务日志备份似乎大小相同,我认为它们的大小将取决于自上次事务日志备份以来的事务数量。

例如:如果你有一个完整的备份,然后你进行transac日志备份,这个transac日志备份可以说200 MB,现在你立即采取另一个transac日志备份,这最后一个transac日志备份应该比第一个,因为这两个备份之间没有或几乎没有交易,对吧? 至less,这是我一直在假设的。 在我的情况下发生的是,这第二个备份是几乎相同的大小,第一个和我想知道是否是因为我把第一个transac日志备份到不同的文件夹,所以现在sql server认为,所有我只是一个完整的备份,然后它将获得自完整备份以来发生的所有事务,并将其置于第二个transac日志备份中。

任何人都可以解释,如果我的假设是正确的? 谢谢…

Chris和joeqwerty,谢谢你们的回答。 我理解差异和日志备份之间的区别,但是我想我没有清楚地expression自己。 我一直认为日志备份包含自上次日志备份以来的所有事务(或者在第一次日志备份的情况下是完全备份),并且您刚刚确认了这一点,所以我想我就在那里。 扔掉我的是我今天早上做了一个日志备份,然后今天下午我不得不另外做了一个(计划外的)日志备份,而这两个日志的大小大致相同,即使这个备份没有太多活动分贝(虽然我可能是错误的)。 所以基本上,我害怕通过将旧的日志备份文件移动到不同的文件夹,我迫使SQL Server抓取自完整备份以来的所有事务(本质上,它的行为就像差异备份,因为这是第一次日志备份无论如何)为每个新的日志备份。 所以,我猜只要SQL服务器在内部跟踪这个信息,我可以移动文件,我很好。 再次感谢…

我认为你会混淆事务日志备份和差异。

SQL日志备份是自上次日志备份以来所做的更改。 要进行恢复,您需要完整的备份以及完整的日志备份链,否则无法恢复到某个时间点。 SQL在内部跟踪所有内容,所以移动文件无所谓。 关键是需要完整备份加上所有日志备份的不间断链。

另一方面,差异备份将包括自上次完整备份以来的所有更改,而不pipe您在此期间做出的任何其他差异备份或日志备份。

如果您的stream量是一致的,那么您的日志备份可能会以相同的大小运行,因为它们在每个日志中的交易量相同。

不言而喻…但是我会说它…经常尝试一些testing恢复来testing你的备份 – 这是找出你的策略是否有漏洞的最好方法。

当SQL Server执行任何后续备份时,SQL Server不关注硬盘上的备份文件。 它跟踪数据库日志文件内部的所有内容。

是的(一般来说)事务日志备份的大小在一定程度上取决于自上次日志备份以来发生了多less活动,但可能会有最小的大小。

但是每周完整和每日日志备份是一个不寻常的计划。 如果您确实需要时间点恢复,那么每周更新和每日差异以及每小时日志备份更为常见。 +1在斯宾塞的链接。

事务日志备份只会截断日志的非活动部分。 “不活跃”的定义是很多人似乎遇到的问题。 非活动点是事务日志中最早的一个:最近的检查点或最早的未提交事务的开始。 对于大多数数据库,最近的检查点定义了日志的非活动部分。

那么,数据库检查点是什么时候? 只有当它必须。 也就是说,closures日志时,日志会变得太满,或者日志的活动部分变得足够大,以至于数据库认为在发生故障的情况下需要比recoveryinterval间隔更长的时间才能播放它。 不常见的检查点背后的想法是数据库知道写入磁盘是昂贵的,所以它试图尽可能保持内存。

因此,对于您而言,如果您在执行两次tlog备份而没有发生自然检查点的情况下,或者您强制使用检查点(使用checkpoint命令),则会同时备份相同的事务日志块,因为它仍被视为活动的。

(这个问题可能更适合serverfault.com而不是stackoverflow。)

事务日志的备份ONLY备份事先未备份的事务日志备份事务。

也就是说,对于恢复,您将需要自完整备份开始以来的完整备份和每个事务日志备份。

HTH

我认为您可能会将事务日志备份与差异备份混淆。

http://technet.microsoft.com/en-us/library/aa337534%28SQL.100%29.aspx