SQL Server 2008 备份基础知识

SQL Server 2008 备份基础知识

我们没有 DBA,我必须进行备份。我们只有一个 3GB 的数据库(其他数据库都小于 100MB)。3GB 的数据库写入量很大,并且包含非常重要的数据。我为所有数据库设置了每日备份,但我认为这可能还不够。

  • 什么是事务日志备份?
  • 我对 3GB 数据库的适当备份行动计划是什么?
  • 我如何进行日志备份以及目的是什么?
  • 每天进行一次完整备份就够了吗?

答案1

好的,您确实需要查看文档并阅读它 - 成为一名小型 dba。期望这里的人们从在线书籍 - SQL Server 文档 - 复制/粘贴极其详细的信息并不是好行为。话虽如此,您也访问了错误的网站 - 这绝对不是编程问题。有一个姊妹网站 (serverfault.com) 专门讨论服务器操作问题,备份属于该网站。

开始之前:

事务日志记录对数据库所做的所有更改。这意味着您进行了完整备份,然后可以使用 tx 日志将其向前滚动到日志中备份的最后一个事务。这意味着如果您在 16 小时后备份 tx 日志,服务器会死机,您可以在新服务器上恢复每日备份,然后处理事务日志并在 16 小时后返回到最后提交的事务 ;) 如果您问我 - 不这样做的企业应该承担因不这样做而造成的损失。

与传统的文件级备份相比,事务日志实际上是 SQL Server 之类的程序所具有的巨大优势。

我无法回答所有其他问题。说真的。这些不是“数据库管理员级别”的决定,而是业务决定。我知道公司每 5 分钟进行一次事务日志备份,并将它们发送到单独的服务器(检查:日志文件传输)。原因:丢失数据将是一场灾难。想象一下亚马逊半天的销售额全部损失。我知道其他企业每天、有时甚至每周进行备份(小商店、内部网站)。我知道其他人不依赖备份来解决灾难问题,而是使用复制和/或镜像,每天进行完整备份,每小时进行日志备份,这样如果服务器死机,他们就不会出现任何停机时间。从技术角度来看,所有这些都是“相同的”——每条建议都取决于业务案例,而您对此只字未提。

在正常情况下,我建议定期进行完整备份(每周,在周日等休息时间),每日差异备份(比完整备份小很多),然后每 x 小时进行一次日志备份(1、6、12 - 取决于您的业务案例)。

答案2

其他人已经为您提供了一些基本概述。我将为您的问题提供一些通用答案,但请注意,实际答案将取决于您的业务需求。

  • 什么是事务日志备份?

事务日志备份会备份事务日志。此日志记录了对数据库执行的每项事务。当数据库处于简单恢复模式时,此日志会在数据库上的每次检查点后被清除。当数据库处于完整模式时,这些日志会继续填充事务,直到备份或手动截断。通过备份事务日志,您可以将它们与“常规”数据库备份结合使用,以便在恢复数据库时前滚到最近执行的事务。

  • 我对 3GB 数据库的适当备份行动计划是什么?

这个问题没有唯一的答案,但一般来说,我倾向于每周进行一次完整备份,并结合每日进行一次差异备份。

  • 我如何进行日志备份以及目的是什么?

日志备份将由您创建的 SQL 维护计划执行。执行这些备份是为了清除事务日志,并记录事务以备需要恢复时使用。请注意,如果您不打算使用事务日志备份,则应将数据库更改为简单恢复模式,以避免出现日志已满或磁盘已满的问题,因为在完全恢复模式下,事务不会自动从日志中清除。

您可以按照应用程序所需的任何频率执行日志备份。例如,如果不能接受丢失超过 5 分钟的交易,您可以每 5 分钟执行一次日志备份,并结合常规完整和差异数据库备份。

  • 每天进行一次完整备份就够了吗?

这完全取决于您的需求。我的标准是每周完整备份加上每日差异备份,然后每 15 到 30 分钟对完整恢复数据库进行一次日志备份,或者根据需要按照其他时间表进行备份。您需要做出的另一个决定是将备份保留多长时间以进行恢复。主要的权衡显然是管理的复杂性和所需的磁盘空间。

答案3

我不是专家,但我的理解是,使用事务日志备份,您可以回滚发生的事务。如果您不想撤消已经发生的事情,则没有必要这样做。

“每日完整备份是否足够?”这个问题取决于具体情况。如果每 24 小时备份一次,而您在备份前 1 小时丢失了数据库,那么您就丢失了 23 小时的数据。

差异备份会备份自上次完整备份以来的所有更改,增量备份会备份自上次完整备份或差异/增量/完整备份以来的所有更改。根据您的设置,其中一个可能对您有用。

您可以执行一些操作,例如在完整备份中间添加差异备份,或者全天使用增量备份......

相关内容