代码之家  ›  专栏  ›  技术社区  ›  S.N Emond

从SQL Server备份文件中删除记录

  •  1
  • S.N Emond  · 技术社区  · 7 年前

    从备份中删除记录是一个疯狂的想法,因为备份的概念是为灾难服务的。但在我们的例子中,数据删除是一个有效的用例。

    要求: 简而言之,我们需要一个能够从活动数据库实例及其所有备份中删除特定记录的系统。

    我们有一个功能齐全的内部系统,能够执行上述从活动数据库中删除数据的要求。但我们不知道的是如何对所有这些数据库备份执行相同的操作。

    问题:

    • 是否可以从备份中找到特定记录?
    • SQL Server备份文件中是否有任何预定义的模式或数据分配样式,允许我们隔离特定记录?
    • 你能分享一下你对这种删除方式的想法或经验吗?

    注: 我们每天进行2次完整备份,并在任何时间点存储一周的数据(总共14次)。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Katherine Elizabeth Lightsey    7 年前

    我确实理解“到处删除”的商业概念。

    我不知道有什么办法可以做到这一点。我甚至不相信备份的格式会被公布。这并不意味着没有人入侵它,但它肯定不是一种广为人知的能力。

    我认为,为了做到这一点,您需要安全地擦除备份的所有副本并进行新的备份。然后,您将失去时间点恢复功能。

    解决方案 :解决此业务需求的方法是恢复每个备份,删除所需记录,安全擦除备份介质(或销毁旧介质并使用新介质),然后对恢复的版本进行新备份。这将为您提供在没有特定记录的情况下恢复该数据的时间点。

        2
  •  0
  •   Jeffrey Van Laethem    7 年前

    您不能修改的内容。bak文件。你也不应该这么做。如果要恢复到特定的时间点,应使用完整恢复模型,进行差异备份和日志备份,而不仅仅是完整备份。