事务日志和镜像-寻找最简单的解释


8

首先,我必须承认我在处理事务日志的概念上遇到困难。我的意思是-我确实知道数据库中发生的所有事务的日志,但是在某些任务中将其正确地放入上下文时,我显然缺少一些东西。因此,对于将要回答该问题的任何人-请随时扩展事务日志背后的理论。

主要问题是-我有需要镜像的SQL Server 2008和2 GB数据库(具有12GB事务日志)。如果我不镜像该数据库,我想我可以切换到“简单”模式或在备份后截断日志。但是在这种情况下-如果我希望控制该事务日志,该怎么办?据我了解-如果我希望能够轻松镜像数据库(只需执行完全备份),就需要保留整个事务日志。

有没有办法解决?理想情况下,我希望可以进行备份,使每次和在备份完成后将MDF和LDF都保存在一个文件中。数据库上的事务日志(LDF)减少为0。这种情况的问题是增量备份-如果我是第一次备份截断的日志,我认为如果以后要进行镜像,则第二个备份将需要引用第一个备份(即,我将不得不保留一堆文件而不是一个文件)。

所以-有人能启发我这个问题吗?我了解我在这里试图填补很多空白,而我提议的“解决方案”可能不是最佳的解决方案,但是如果有人可以向我正确地介绍事务日志,它们如何影响镜像以及实现最佳解决方案,我将不胜感激。这两个的做法。

Answers:


5

事务日志是在特定时间还原数据库的重要方法。如果您有一个大于500 GB的大型数据库,并且必须从完全备份中还原数据库,则这将花费大量时间。另外,如果每次都对数据库进行完全备份,请考虑一下此备份需要花费多长时间。

SQL Server的一个非常简单的概念可以是:将数据库的恢复模型设置为完全

在SQL Server中创建一个维护计划(1):

  • 每周都执行FullBackup,也许在D:\ yourbackup \ FullDBBackup.bak中
  • 每两天在D:\ yourbackup \ DiffBackup.bak中进行差异备份
  • 每隔2个小时将您的事务日志备份到D:\ Yourbackup \ Tranlogbackup.trn中

在SQL Server中创建一个维护计划(2):

  • 从D:\ yourBackup * .bak中删除所有较旧的文件8天
  • 从D:\ yourBackup * .trn删除所有3天的旧文件

在这种情况下,您可以在特定时间内快速,非常轻松地恢复数据库。SQL Server将自动管理您的“备份”文件,在您指定的时间范围后,较旧的文件将被删除。

我建议您在这里阅读有关SQL Server事务日志的信息:

http://www.sqlservercentral.com/articles/Design+and+Theory/63350/

要在SQL Server中使用维护计划,只需询问BING / google:D

您应该建立一个小的测试数据库并在投入生产之前对此进行测试


我没有完整备份和时间的问题,因为我可以停止整个系统直到完成。您回答的一个问题-在这种情况下,我是否会截断事务日志?如果没有,那么我知道我只需要最新的FullDBBackup.bak即可备份数据库?我不在乎特定的时间点-我所关心的只是备份时获得的最新DB版本。含义-我不需要交易日志;我只是因为镜像而保留它们。有办法解决吗?
nikib3ro 2012年

2
1.您不能截断日志:D 2.如果您备份了tran日志,则SQL Server将免费提供此空间供您在日志文件中重复使用。只是简单的测试dbcc sqlperf('logpsace')即可备份,然后在备份后执行相同的操作。最后,您需要事务日志...仅测试我的示例

我终于在测试环境中实现了您的建议,到目前为止,我喜欢我所看到的。请让我知道我是否理解正确-如果我现在需要还原数据库,我将首先使用已完成的完整备份,然后结合使用差异备份和事务日志,将数据库还原到某个时间点?我对吗?而且我还认为,对于镜像,我只需要停止服务器并进行完全备份?还是需要交易日志来设置镜像?再次感谢您的所有帮助和答复!
nikib3ro 2012年

3

为了利用镜像,您必须使数据库处于完全恢复模式,并且需要进行事务日志备份,以防止日志文件增长。如果您不需要日志备份,则只需在x小时后使用维护计划将其清除,但需要进行备份。

要清理环境,您应该删除镜像,将恢复模式切换为简单,通过推荐的Paul Randal Way减小日志文件的大小,切换回完全恢复模式,设置完全和日志备份,然后重新初始化您的镜子。您可以在镜像到位时尝试减小日志大小,但是先删除它会更容易。1 GB对于重新初始化应该不是太糟糕的数据库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.