日志传送大型数据库 - 日志呢?

Kri*_*yer 8 sql-server log-shipping

我目前正在设置大型数据库(约 1.5TB)的日志传送,并且想知道我可以对日志文件做些什么。

就目前而言,我想做以下步骤:

  1. 将数据库更改为完全恢复
  2. 在主服务器上进行完整备份(5-6 小时)
  3. 将完整备份还原到次要备份(留在 NORECOVERY 中)
  4. 在主服务器上进行 DIFF 备份
  5. 将 DIFF 备份还原到辅助(仍在 NORECOVERY 中)
  6. 使用“数据库已初始化”初始化日志传送

问题是,当我进行完整备份时,日志文件填满的速度会比备份完成的速度快。

我有哪些选项可以防止日志文件填满?我是否可以在完整备份期间照常进行日志备份,因为 DIFF 还原将涵盖在该时间范围内发生的任何事务?有没有人用这种大小的数据库做过这件事,有什么提示/技巧可以让它更容易?

RLF*_*RLF 9

如果我理解正确的话,您的主要问题是几个小时备份期间的日志文件。从您的开场陈述中我了解到 1.5 TB 的数据库通常在 SIMPLE 恢复中运行,因此无需进行日志备份。

免责声明:我从未做过这种规模的日志传送。

当然,您应该询问是否可以为日志文件分配更多空间。如果可以,那就太好了。

但是,我认为对您的计划稍作修改,前提是您已经在 SIMPLE 恢复模式中运行和/或在 SIMPLE 恢复模式下运行几个小时的风险是值得的,这会减轻您的一些担忧。

  1. 在 SIMPLE 恢复模型中保留(或设置)数据库。
  2. 在主服务器上进行完整备份(5-6 小时)
  3. 将完整备份还原到次要备份(留在 NORECOVERY 中)
  4. 以完全恢复模式设置数据库
  5. 在主服务器上进行 DIFF 备份
  6. 将 DIFF 备份还原到辅助(仍在 NORECOVERY 中)
  7. 使用“数据库已初始化”初始化日志传送

明显的优势是:

  1. 在大型完整备份期间没有要备​​份的日志文件。
  2. 在开始 DIFF 备份之前切换到 FULL 将为您提供所需的日志以开始,其最长的增长可能是在 DIFF 备份期间。

关于何时可以开始日志备份:

https://technet.microsoft.com/en-US/library/ms190729(v=SQL.105).aspx

这表示:“新的日志链从创建数据库的第一个完整数据库备份开始,或者在从简单恢复模型切换到完整或大容量日志恢复模型之后开始。”

所以,我仍然相信这会按照概述的方式工作。(不完全相同,但我使用了差异备份来弥补日志文件丢失时的空白,以便为日志备份建立新的来源。)

(当然,请记住我的免责声明。)