备份概述 (SQL Server)

所有的恢复模式都允许您完整或部分备份 SQL Server 数据库或数据库的单个文件或文件组。不能创建表级备份。

注意注意

SQL Server 备份和还原对所有支持的操作系统都有效,不管它们是 64 位还是 32 位系统。有关支持的操作系统的信息,请参阅安装 SQL Server 2008 R2 的硬件和软件要求

数据备份

数据的备份(“数据备份”)的范围可以是完整的数据库、部分数据库或者一组文件或文件组。对于这些范围,SQL Server 均支持完整和差异备份:

  • 完整备份

    “完整备份”包含特定数据库(或者一组特定的文件组或文件)中的所有数据,以及可以恢复这些数据的足够的日志。

  • 差异备份

    “差异备份”基于数据的最新完整备份。这称为差异的“基准”或者差异基准。差异基准是读/写数据的完整备份。差异备份仅包含自建立差异基准后发生更改的数据。通常,建立基准备份之后很短时间内执行的差异备份比完整备份的基准更小,创建速度也更快。因此,使用差异备份可以加快进行频繁备份的速度,从而降低数据丢失的风险。通常,一个差异基准会由若干个相继的差异备份使用。还原时,首先还原完整备份,然后再还原最新的差异备份。

    经过一段时间后,随着数据库的更新,包含在差异备份中的数据量会增加。这使得创建和还原备份的速度变慢。因此,必须重新创建一个完整备份,为另一系列的差异备份提供新的差异基准。

    注意注意

    通常,差异备份所涵盖的数据文件与单个差异基准中所涵盖的文件相同。在简单恢复模式下,一个差异备份只能有一个差异基准。尝试使用多个基准会引发错误,并且备份操作将会失败。在完整恢复模式下,差异文件备份可以使用多个基准,但这可能难以管理。有关详细信息,请参阅使用多基准差异备份

每个数据备份都包括部分事务日志,以便备份可以恢复到该备份的结尾。

第一次数据备份之后,在完整恢复模式或大容量日志恢复模式下,需要定期进行“事务日志备份”(或“日志备份”)。每个日志备份都包括创建备份时处于活动状态的部分事务日志,以及先前日志备份中未备份的所有日志记录。

数据库备份

数据库备份易于使用,在数据库大小允许时都建议使用这种方式。SQL Server 支持以下数据库备份类型。

备份类型

说明

数据库备份

整个数据库的完整备份。数据库备份表示备份完成时的整个数据库。

差异数据库备份

数据库中所有文件的备份。此备份只包含自每个文件的最新数据库备份之后发生了修改的数据区。

部分备份

在 SQL Server 2005 中引入了部分备份和部分差异备份。这些备份的设计目的在于:为在简单恢复模式下对包含一些只读文件组的数据库的备份工作提供更多的灵活性。但是,所有恢复模式都支持这些备份。

SQL Server 2008 支持下列类型的文件备份。

备份类型

说明

部分备份

备份主文件组、所有读/写文件组以及任何选择指定的只读文件或文件组中的所有完整数据。只读数据库的部分备份仅包含主文件组。

部分差异备份

这种备份仅包含自同一组文件组的最新部分备份以来发生了修改的数据区。

文件备份

可以分别备份和还原数据库中的文件。使用文件备份使您能够只还原损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。例如,如果数据库由位于不同磁盘上的若干个文件组成,在其中一个磁盘发生故障时,只需还原故障磁盘上的文件。但计划和还原文件备份可能会十分复杂;因此,只有在文件备份能够为您的还原计划带来明显价值时,才应使用这种备份方式。

SQL Server 支持下列类型的文件备份。

备份类型

说明

文件备份

一个或多个文件或文件组中所有数据的完整备份。

重要说明重要提示
在简单恢复模式下,文件备份基本上仅限于只读辅助文件组。您可以创建读/写文件组的文件备份,但必须先将文件组设置为只读,并执行差异只读文件备份,然后才能还原读/写文件备份。

差异文件备份

一个或多个文件的备份,包含自每个文件的最新完整备份之后发生了更改的数据区。

注意注意
在简单恢复模式下,此备份假定自完整备份之后已经将数据更改为只读。
注意注意

可以备份和还原全文目录。有关详细信息,请参阅备份和还原 SQL Server 2008 全文目录段落还原和全文索引

事务日志备份(仅用于完整恢复模式或大容量日志恢复模式)

在完整恢复模式或大容量日志恢复模式下,需要定期进行“事务日志备份”(或“日志备份”)。每个日志备份都包括创建备份时处于活动状态的部分事务日志,以及先前日志备份中未备份的所有日志记录。不间断的日志备份序列包含数据库的完整(即连续不断的)日志链。在完整恢复模式下(或者在大容量日志恢复模式下的某些时候),连续不断的日志链让您可以将数据库还原到任意时间点。

在创建第一个日志备份之前,您必须先创建一个完整备份(如数据库备份)。因此,定期备份事务日志十分有必要,这不仅可以使工作丢失的可能性降到最低,而且还能截断事务日志。有关详细信息,请参阅使用事务日志备份

重要说明重要提示

若要限制需要还原的日志备份的数量,必须定期备份数据。例如,可以制定这样一个计划:每周进行一次完整数据库备份,每天进行若干次差异数据库备份。

仅复制备份

通常,进行备份会更改数据库并影响其后备份的还原方式。但是,有时需要针对特殊目的执行备份,同时不影响数据库的整体备份和还原过程。为此,SQL Server 2005 中引入了仅复制备份。这种备份独立于 SQL Server 备份的正常顺序。有关详细信息,请参阅仅复制备份

备份设备

SQL Server 备份数据在备份设备(如磁盘文件或磁带媒体)上创建。可以将新备份数据追加到设备中的任意现有备份数据,或者覆盖任意现有备份数据。有关详细信息,请参阅在 SQL Server 中使用备份媒体

计划备份

执行备份操作对运行中的事务影响很小,因此可以在正常操作过程中执行备份操作。在备份操作过程中,SQL Server 将数据从数据库文件直接复制到备份设备中。这不会更改数据,也不会延迟在备份过程中运行的事务。因此,您可以在对生产工作负荷的影响很小的情况下执行 SQL Server 备份。有关备份过程中的并发限制的信息,请参阅本主题后面的“SQL Server 中备份操作的限制”。

可以计划定期自动执行备份。有关如何为数据库备份和日志备份计划备份作业的信息,请参阅维护计划向导

备份压缩

SQL Server 2008 Enterprise 及更高版本支持压缩备份,并且每个 SQL Server 2008 及更高版本都可以还原压缩后的备份。有关详细信息,请参阅备份压缩 (SQL Server)

SQL Server 中备份操作的限制

在 SQL Server 2005 及更高版本中,可以在数据库在线并且正在使用时进行备份。但是,存在下列限制。

无法备份脱机数据

隐式或显式引用脱机数据的任何备份操作都会失败。一些典型示例包括:

  • 您请求完整数据库备份,但是数据库的一个文件组脱机。由于所有文件组都隐式包含在完整数据库备份中,因此,此操作将会失败。

    若要备份此数据库,可以使用文件备份并仅指定联机的文件组。

  • 请求部分备份,但是有一个读/写文件组处于脱机状态。由于部分备份需要使用所有读/写文件组,因此该操作失败。

  • 请求特定文件的文件备份,但是其中有一个文件处于脱机状态。该操作失败。若要备份联机文件,可以省略文件列表中的脱机文件并重复该操作。

通常,即使一个或多个数据文件不可用,日志备份也会成功。但如果某个文件包含大容量日志恢复模式下所做的大容量日志更改,则所有文件都必须都处于联机状态才能成功备份。

备份过程中的并发限制

数据库仍在使用时,SQL Server 可以使用联机备份过程来备份数据库。在备份过程中,可以进行多个操作;例如:在执行备份操作期间允许使用 INSERT、UPDATE 或 DELETE 语句。但是,如果在正在创建或删除数据库文件时尝试启动备份操作,则备份操作将等待,直到创建或删除操作完成或者备份超时。

在数据库备份或事务日志备份的过程中无法执行的操作包括:

  • 文件管理操作,如含有 ADD FILE 或 REMOVE FILE 选项的 ALTER DATABASE 语句。

  • 收缩数据库或文件操作。这包括自动收缩操作。

  • 如果在进行备份操作时尝试创建或删除数据库文件,则创建或删除操作将失败。

如果备份操作与文件管理操作或收缩操作重叠,则产生冲突。无论哪个冲突操作首先开始,第二个操作总会等待第一个操作设置的锁超时。(超时期限由会话超时设置控制。)如果锁在超时期限内释放,则第二个操作继续执行。如果锁超时,则第二个操作失败。

注意注意

有关如何创建备份的信息,请参阅创建 SQL Server 数据库的完整备份和差异备份使用事务日志备份