SQL Server 备份和还原过程

SQL Server 备份和还原过程

只是想知道你们有哪些备份流程。

我目前正在进行每周一次的完整数据库备份以及每日一次的差异备份。

我的理解是,通过这样的设置,完整恢复模式和简单恢复模式之间的区别在于,使用完整恢复模式,我将能够使用事务日志将我的数据库回滚到应用最新差异备份的特定时间点。

假设在我的场景中,最后一次差异备份是我的最后也是最终的“保存点”,我认为没有必要使用日志进一步回滚我的数据库。这让我想到一个问题:对我当前的备份过程使用完整恢复模式是否还有其他好处?

答案1

好吧,如果您不保存日志,您能做的最好的事情就是回滚到最后的差异。

我通常会以更短的间隔(大概每 15 分钟左右)备份事务日志。这可以防止我在最坏的情况下(机器烧毁)丢失大量数据。这是一个非常轻量的操作,因此可以在线完成,影响最小。

您通常只应使用完整备份模式,并且应经常备份事务日志,除非您能够承受丢失一整天的数据,而这正是您现在所面临的。

答案2

确定备份策略时通常要考虑两个因素。恢复点目标 (RPO) 和恢复时间目标 (RTO)。

恢复时间目标

我根本不会涉及 RTO,因为它涉及数据库镜像/集群,您可以在其中保存备份等。但是请记住在发生故障后让服务器恢复在线需要多长时间,例如将磁带送回现场、获取新服务器、重建服务器等。RPO 和 RTO 是您应该向企业报告的两个数字,您应该定期测试它们。

恢复点目标

还原点目标是您想要将数据库恢复到的时间点。

完整版与简易版

如果需要恢复到特定时间点,则需要转至完整恢复模式和事务日志备份。否则,您只能恢复到上次完整备份或差异备份的时间点。

尽管大多数企业表示,每晚或 4 小时的数据丢失是可以接受的。但当你处于这种情况时,通常都是不可接受的。所以我总是使用事务日志备份进行完全恢复。

满血复活

作为一般规则,我会每晚对大多数数据库进行完整备份。我还每 4 小时进行一次差异备份,每 15 分钟进行一次事务日志备份。如果您的差异备份大小开始超过完整备份大小。是时候更频繁地进行完整备份了。

如果差异备份的大小开始超过完整备份的大小,则需要进行完整备份,因为您将失去差异备份在恢复速度方面的所有优势。

完全恢复的最大问题是,您必须始终拥有最后一个完整备份才能进行恢复。如果有人手动备份了数据库,但没有保留备份,他们就会破坏您的数据库,没有备份您将无法恢复。(仅使用带副本的备份)

此外,如果您正在执行完整恢复,请确保您正在进行事务日志备份,否则您的日志文件将变得难以管理。

恢复

要在完整恢复模式下进行恢复,您需要。最接近恢复点的最后一个完整备份,然后是最接近的差异备份,然后您需要前滚每个事务日志以到达所需的时间点。

恢复过程要困难得多,但绝对值得。因为您可以恢复到开发人员向数据库发送“全部删除”的确切时间点。

因此,要回答这个问题,完全恢复绝对值得付出额外的努力,因为您会很高兴能够在各种情况下恢复到某个时间点。尤其是当您在月底财务处理之前立即发生重大故障时。

答案3

尺寸数据库的差异备份和事务日志备份中起着重要作用。对于非常大的数据库,执行差异备份或完整备份所需的时间将超过数据库需要备份的频率要求。例如,在许多地方,我看到夜间差异备份、每小时事务日志备份和每周完整备份的混合。

能够恢复到某个时间点或检查点是事务日志备份有用的另一个原因。如果我没记错的话,差异备份不具备此功能。

在小型数据库中,差异数据库与事务日志数据库的时间可能不那么重要,这可能是您看不到额外价值的原因。您的维护要求也可能更简单。

答案4

有关此内容的专家信息,请查看Paul Randal 的博客关于备份和事务日志。每种情况都不同,实际上只有您才能决定您需要什么。了解一下,然后选择适合您需要的数据恢复的方法以及可以接受多少数据丢失。

例如,在配置数据(即没有用户数据,只有配置设置)的情况下,您可以进行简单的备份,以消除执行事务日志的需要。

相关内容