【问题标题】:SQL Server Transaction LogsSQL Server 事务日志
【发布时间】:2018-09-16 20:44:04
【问题描述】:

我们正在运行带有 2 台服务器的 AlwaysOn SQL Server 数据库。一切运行良好,但我们确实每天都有大量的数据变化。我们的数据库大约 60GB,但我们经常更新数据并每天进行跨日志备份,但事务日志的增长仍然超过 100GB 到 300GB。

有没有办法将事务日志保持在 60GB(推荐大小),如果超过,覆盖之前的日志?

欢迎提出任何建议。

谢谢。

【问题讨论】:

  • log backups every daygrowth exceeeds 100GB to 300GB 所以您每天都在备份大小 > 60GB 的日志?为什么你需要日志? 1) 您不经常进行备份 2) 备份完整数据库所需的空间更少。您没有利用极快(小)、频繁的日志备份的优势。切换到simple 可能吗?
  • 如果您在下一次完整备份之前覆盖事务日志备份,那么日志备份将毫无用处,因为您只能恢复到最后一次完整/差异。真正的问题是可以接受多少数据丢失 (RPO)。您需要足够频繁地安排备份以满足该 SLA 和足够的空间来容纳它。您当前的方法允许一天的数据丢失。如果这是可以接受的,@IvanStarostin 建议的SIMPLE 恢复模型中的每日完整备份会更节省空间。
  • 始终开启的简单模式?
  • 我不知道您可以使用 Simple 进行始终在线设置?我们过去常常在非常高的事务数据库上运行简单并进行每日备份,但始终开启需要完整。

标签: sql-server database sql-server-2016


【解决方案1】:

如果您不需要将事务日志用于灾难恢复,那么只需将其设置为简单恢复模式并每天进行一次完整备份。而且我不明白您为什么每天记录一次事务日志。

我认为应该至少间隔 15 分钟。因为您将在上次事务备份后丢失数据。因此,作为 MS SQL Server 的一个进程和良好特性,作为 Log-Shipping 的一部分,为了安全起见,将其以小间隔制作并移动到另一台服务器。

【讨论】:

  • 我们需要使用 Always On,这就是我们将事务日志设置为完整的原因。我们不需要 DR,因为完全备份是计划的。每隔 15 分钟进行一次反式备份会损害性能吗?我们在下班时间进行备份/传输日志传送,以防止锁定、加载等。
  • 克里斯,事务日志不会影响性能问题。始终可用是为了平台的可用性。和事务备份和完整备份用于灾难恢复,两者有很大不同。所以不用担心锁,它由 MS SQL 精心设计和管理。
  • 谢谢。为了获得最佳性能,我应该使用: BACKUP LOG 吗? TO DISK = 'NUL:' WITH NO_COMPRESSION;还是有更有效的备份方式。
  • 另外,我应该在辅助节点上运行日志备份吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多