【问题标题】:Optimized Way of Scheduling a Differential Backup调度差异备份的优化方式
【发布时间】:2014-08-20 18:19:45
【问题描述】:

我正在使用 SQL Server 2012 处理数据仓库,并且想知道备份/恢复策略的最优化、自动化过程是什么。

目前的观察和限制:

1) 不能使用事务日志,因为它会影响我的加载性能 - 数据集可能很大,包含大量事务

2) 目前的计划是每周做一次全量备份,每天做一次差异备份

我不确定 DML 操作何时会发生,因为这取决于我的应用程序的使用情况,但有没有办法只跟踪会触发差异备份的数据库更改的 NUMBER 次?一种不会影响性能的方法?我不想进行不必要的差异备份。

变更跟踪是否适合我的方案?还是会涉及开销?我不需要知道实际更改的数据,只需知道更改了一定数量的事实即可。

提前致谢!

【问题讨论】:

  • dba.stackexchange.com 更适合这类问题。
  • 数据仓库的每日差异备份:S,您实际上每天都有上传吗?我建议每周或每月进行一次完整备份(取决于您导入数据的频率),并在每次将数据上传到您的仓库后进行差异备份,这将是一个合适的备份计划。
  • 感谢您的及时回复!你是说我不应该基于我的数据已经更改来触发差异备份吗?我觉得那将是最优化的路线。抱歉,到目前为止,我只能假设上传会随时通过批量或涓流进行。

标签: sql-server backup


【解决方案1】:

嗯,就是这个(http://www.sqlskills.com/blogs/paul/new-script-how-much-of-the-database-has-changed-since-the-last-full-backup/)。我只是想弄清楚你要解决什么问题。也就是说,如果您发现大小低于某个阈值,那么(根据定义)这样做会很便宜。

【讨论】:

    【解决方案2】:

    这完全取决于您的 DWH 配置。 1. 你的 DWH 数据库是分区的吗?如果是,则仅对当前分区进行每日数据库备份(差异备份)会更容易。要备份的数据集要小得多。

    1. 如果没有,目前的计划是每周进行一次完整备份,每天进行差异备份是唯一的方法,因为您无法使用事务日志文件。

    2. 您也可以尝试第三方磁盘(块)级备份软件(即 Doubletake)....

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      您似乎对什么是差异备份有一个错误的概念。不用担心;这很常见。 当您说“跟踪将触发差异备份的数据库更改的数量”之类的内容时,这意味着您认为差异备份会获取自最近一次完整或差异备份以来的所有更改。

      但是,差异备份仅获取自上次完整备份以来更改的所有数据。因此,您预计后续差异备份的大小会越来越大。例如,假设您在周日进行一次完整备份,每隔一天进行一次差异备份。你会得到类似的东西:

      • 星期一:自星期日备份以来,所有数据都发生了变化。
      • 周二:自周日备份以来所有数据都发生了变化(包括周一的数据
      • 周三:自周日备份以来所有数据都发生了变化(包括周二的数据

      此外,如果/当您需要恢复数据库时,您最多只能恢复一个差异备份。例如,如果您的数据库在星期四的备份之前崩溃,您将恢复上一次完整备份(在我的示例中是从星期日开始),然后是星期三的差异,然后就完成了。

      至于何时安排,这通常取决于您的业务节奏。例如,您可能决定在启动 ETL 之前或之后进行备份。在此期间执行此操作没有多大意义,因为如果您需要恢复它,您将拥有一个不一致的(就您的 ETL 流程而言)数据库。

      【讨论】:

      • 我明白什么是差异备份。正如您所说,“差异备份仅获取自上次完整备份以来已更改的所有数据”。但是,如果差异备份值得进行,有没有办法找到“所有已更改的数据”的大小以进行预先计算?我只想在更改数据的大小达到某个阈值时进行差异备份。这将避免依赖基于时间的备份。这是一种更好的思考方式吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多