-1

我最近负责一些从 SQL Server 2005 到 2014 不同的 SQL 服务器的数据库管理,其中许多数据库处于完全恢复模式,但是没有设置好的持续备份维护计划。

在我看来,以前的 DBA 只会在事务日志文件失控并填满硬盘时才处理它们。所以我想改变这个并一劳永逸地解决这个问题。我一直在阅读并认为我对需要做的事情有一个不错的理解,所以我想验证我的理解并提出一些问题来澄清我仍然没有完全理解的几点.

因此,根据我迄今为止的理解,我需要创建一个从完整备份开始的维护计划。我仍然需要与管理层讨论诸如 RTO、可接受的数据丢失等问题,因此我们假设对于这个示例,我们将在周日进行完全备份。

接下来我会在这个维护计划中添加每晚的差异备份......所以周一到周六。我意识到这也可能是完整备份或更频繁地运行差异,但这只是作为一个示例,以确保我正确理解事物。

现在至于事务日志备份。我知道我需要备份这些文件并截断​​日志文件,以防止它不断增长并失控。我不知道是否有任何关于多久备份一次的具体建议,但我看到建议 15 分钟。我想这将更多地属于可接受的数据丢失窗口。那是对的吗?

所以我发现的另一件事是,当您使用截断备份事务日志文件时,如果日志文件已经失控,它不会缩小文件。我还读到至少定期收缩这些文件并不好,因为一旦收缩它,它就需要再次增长,这会导致碎片和性能问题。

现在,由于我目前处于文件已经失控的情况,我假设我实际上应该在我完成维护工作后缩小日志文件一次。这个假设正确吗?

同样,一旦我缩小了事务日志文件,是否应该运行任何维护任务以避免由于缩小日志文件而导致的性能问题?

我想知道的另一个问题是关于时间点恢复。因此,假设我在上午 5:00 进行一次完整备份,并且每 15 分钟进行一次事务日志备份。我在早上 6 点 18 分收到警报,出现了问题(假设一个表已被删除)。所以我知道我可以通过早上 5:00 发生的完整备份进行恢复,并将其置于 NO RECOVERY 模式,并从早上 5:15 到早上 6:15 恢复所有事务日志备份,但这是我感兴趣的在...因为我的数据库处于完全恢复模式,是否可以在删除表之前以某种方式使用我现有的事务日志文件(而不是备份)在 6:15 到 6:17 之间前滚所有事务?如果是这样,你会怎么做?我想这显然不会在您丢失带有事务日志文件的硬盘驱动器的情况下工作,

谢谢

4

1 回答 1

1
  1. 我建议在每个人停止工作后进行完整备份,例如晚上 10 点(如果是这样的话),而不是在人们开始工作前不久的早上。只是为了给它足够的时间运行。

  2. 就个人而言,如果数据库不是太大而无法保存 14 天的备份,我更喜欢每天进行完整备份而不是增量备份。我觉得依赖更少的文件会更好。如果数据库和完整备份太大,增量备份可能是更好的选择。

  3. 正如您所说:您在一天中创建多少事务日志备份取决于可接受的数据丢失窗口。在一个 > 5 个人在系统上工作的环境中(就像直觉一样),我会将它们配置为运行 15 分钟,在非常大的系统上可能更多。

  4. 在第一次事务日志备份之后,您可能希望将 LOG 文件缩减一次。

  5. 我认为没有必要在日志缩小后运行任何优化。

  6. 据我所知,在 06:15 到 06:17 之间恢复交易是不可能的。

激活事务日志备份时,请记住第一个事务日志备份将非常大(大约是当前大日志的大小)。确保在磁盘上有足够的空间,直到您缩小日志文件并删除第一个事务日志(通常在维护计划内自动完成,例如 14 天后)。

于 2017-06-07T19:53:40.407 回答