SQL Server数据库的备份

备份相关术语

备份
从 SQL Server 数据库或其事务日志中将数据或日志记录复制到备份设备(如磁盘),以创建数据备份或日志备份。

备份介质
已写入一个或多个备份的一个或多个磁带或磁盘文件。

还原 (restore)
一种包括多个阶段的过程,用于将指定 SQL Server 备份中的所有数据和日志页复制到指定数据库,然后通过应用记录的更改使该数据在时间上向前移动,以前滚备份中记录的所有事务。

恢复模式
用于控制数据库上的事务日志维护的数据库属性。 有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。 数据库的恢复模式确定其备份和还原要求。

恢复 (recover)
将数据库恢复到稳定且一致的状态。

数据库备份 (database backup)
数据库的备份。 完整数据库备份表示备份完成时的整个数据库。 差异数据库备份只包含自最近完整备份以来对数据库所做的更改。

备份和还原策略

备份和还原数据必须根据特定环境进行自定义,并且必须使用可用资源。 因此,使用备份和还原以实现恢复需要有一个可靠的备份和还原策略。 设计良好的备份和还原策略在考虑到特定业务要求的同时,可以尽量提高数据的可用性并尽量减少数据的丢失。

重要说明:请将数据库和备份放置在不同的设备上。 否则,如果包含数据库的设备失败,备份也将不可用。 此外,将数据和备份放置在不同的设备上还可以提高写入备份和使用数据库时的 I/O 性能。

备份和还原策略包含备份部分和还原部分:

  • 策略的备份部分定义备份的类型和频率、备份所需硬件的特性和速度、备份的测试方法以及备份介质的存储位置和方法(包括安全注意事项)。
  • 策略的还原部分定义负责执行还原的人员以及如何执行还原以满足数据库可用性和尽量减少数据丢失的目标。

设计有效的备份和还原策略需要仔细计划、实现和测试。 测试是必需环节。

恢复模式对备份和还原的影响
  备份和还原操作发生在恢复模式的上下文中。 恢复模式是一种数据库属性,用于控制事务日志的管理方式。 此外,数据库的恢复模式还决定数据库支持的备份类型和还原方案。 通常,数据库使用简单恢复模式或完整恢复模式,但可以在执行大容量操作之前切换到大容量日志恢复模式,以补充完整恢复模式。
  数据库的最佳恢复模式取决于您的业务要求。 若要免去事务日志管理工作并简化备份和还原,请使用简单恢复模式。 若要在管理开销一定的情况下使工作丢失的可能性降到最低,请使用完整恢复模式。

设计备份策略
  当为特定数据库选择了满足业务要求的恢复模式后,需要计划并实现相应的备份策略。 最佳备份策略取决于各种因素,以下因素尤其重要:

  • 一天中应用程序访问数据库的时间有多长?
    如果存在一个可预测的非高峰时段,则建议您将完整数据库备份安排在此时段。
  • 更改和更新可能发生的频率如何?
    如果更改经常发生,请考虑下列事项:
  • 在简单恢复模式下,请考虑将差异备份安排在完整数据库备份之间。 差异备份只能捕获自上次完整数据库备份之后的更改。
  • 在完整恢复模式下,应安排经常的日志备份。 在完整备份之间安排差异备份可减少数据还原后需要还原的日志备份数,从而缩短还原时间。
  • 可能只是更改数据库的小部分内容,还是需要更改数据库的大部分内容?
    对于更改集中于部分文件或文件组的大型数据库,部分备份和文件备份非常有用。
  • 完整数据库备份需要多少磁盘空间?

备份种类

SQL Server提供的备份种类有以下几种。

1.完整备份(full backup,也称全库备份)
  SQL Server的全库备份既包括数据文件也包括重做日志文件。
  随着数据库不断增大,完整备份需花费更多时间才能完成,并且需要更多的存储空间。 因此,对于大型数据库而言,您可以用一系列“差异数据库备份” 来补充完整数据库备份。
  您可以通过将数据库从完整数据库备份还原到任意位置的方法一步完成整个数据库的重新创建。 备份中包含了足够的事务日志,这使您能够将数据库恢复到备份完成的时间。 还原的数据库将与还原数据库备份完成时的原始数据库状态相符,但不包含任何未提交的事务。

2.事务日志备份(log backup)
  仅仅备份自上次全库备份或日志备份之后的记录。在简单模式下,日志备份毫无意义(SQL Server不允许在简单恢复模式下备份日志)。
  根据数据库是否正常可用,SQL Server的事务日志备份可以分为以下两种情况。

  • 正常事务日志备份
      数据库正常可用时执行的事务日志备份。
  • ** 事务日志尾部备份**
      数据库已经发生了故障,不能正常连接,如果此时的log文件未损坏,在使用备份文件恢复数据库(还原)之前,可以把上次事务日志备份以来还未来得及备份的事务日志内容再备份出去,这样可以把数据库恢复到出现故障的时刻,使得数据损失达到最低。
      比如,突然间数据库无缘无故损坏了,差异备份或事务日志备份在3点才会自动去做,那么如何将2点到2点40之间的数据恢复呢?在你准备进行还原之前,可以通过备份尾部日志(必须确保log文件没有损坏)捕获自上次日志备份以来所产生的事务日志,这样在后面的恢复中将你级就可以将数据库恢复至灾难发生时。

3.差异备份
  差异备份所基于的是最近一次的完整数据备份,仅捕获自该次完整备份后发生更改的数据。备份单位是区(Extent)。意味着某个区内即使只有一页做了变动,则在差异备份里会被体现。


  上图显示的是差异备份的工作原理。该图显示了24个数据区,其中的6个已发生更改。差异备份只包含这六个数据区。差异备份操作取决于位图页,此页针对每个区包含一位。对于自建立差异基准后更新的每个区,该位在位图中设置为 1。
  与创建完整备份相比,创建差异备份的速度可能非常快。 差异备份只记录自差异备份所基于的完整备份后更改的数据。 这有助于频繁地进行数据备份,减少数据丢失的风险。 但是,在还原差异备份之前,必须先还原其基准。 因此,从差异备份进行还原必然要比从完整备份进行还原需要更多的步骤和时间,因为这需要两个备份文件。并且,差异备份与其基准间隔的时间越长,差异备份可能就越大。 这意味着差异备份的大小最终会接近差异基准的大小。 较大的差异备份将失去备份更快、更小的优势。

4.部分备份(partial backup)
  仅包含数据库中部分文件组的数据(包含主要文件组、每个读/写文件组以及任何可选指定的只读文件中的数据)。
  部分差异备份仅记录自上一次部分备份(称为“差异基准”)以来文件组中发生更改的数据区。

5. 文件备份(file backup)
  一个或多个数据库文件或文件组的备份。

你可能感兴趣的:(SQL Server数据库的备份)