事务日志和镜像 - 寻找可能的最愚蠢的解释

nik*_*3ro 8 sql-server mirroring transaction-log

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

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

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

那么 - 任何人都可以在这个主题上启发我吗?我知道我试图在这里填补很多漏洞,我提出的“解决方案”可能不是最好的,但如果有人能推动我在事务日志上朝着正确的方向前进,它们如何影响镜像和最佳解决方案,我将不胜感激与那两个练习。

小智 5

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

SQL Server 的一个非常简单的概念可以是: Set Recover Model of your Database Full

在 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

您应该构建一个小型测试数据库并在投入生产之前对其进行测试

  • 1. 你不能截断你的日志 :D 2. 如果你备份了你的 tran 日志,SQL Server 会提供这个空间供你在日志文件中重复使用。只是简单的测试 dbcc sqlperf('logpsace') 在备份之前,然后在备份后做同样的事情。最后,您需要事务日志...只需测试我的示例 (2认同)