数据库快照的典型用法

数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致。

客户端可以查询数据库快照,这对于基于创建快照时的数据编写报表是很有用的。而且,如果以后源数据库损坏了,便可以将源数据库恢复到它在创建快照时的状态。

重要说明重要提示

只有 SQL Server Enterprise 提供数据库快照。

创建数据库快照的原因包括:

  • 维护历史数据以生成报表。

    由于数据库快照可提供数据库的静态视图,因而可以通过快照访问特定时间点的数据。例如,您可以在给定时间段(例如,财务季度)要结束的时候创建数据库快照以便日后制作报表。然后便可以在快照上运行期间要结束时创建的报表。如果磁盘空间允许,还可以维护任意多个不同期间要结束时的快照,以便能够对这些时间段的结果进行查询。例如,调查单位性能。

  • 使用为了实现可用性目标而维护的镜像数据库来减轻报表负载。

    使用带有数据库镜像的数据库快照,使您能够访问镜像服务器上的数据以生成报表。而且,在镜像数据库上运行查询可以释放主体数据库上的资源。有关详细信息,请参阅数据库镜像和数据库快照

  • 使数据免受管理失误所带来的影响。

  • 在进行重大更新(例如,大容量更新或架构更改)之前,可创建数据库快照以保护数据。一旦进行了错误操作,可以使用快照将数据库恢复到生成快照时的状态。采用此方法还原很可能比从备份还原快得多;但是,此后您无法对数据进行前滚操作。

    有关详细信息,请参阅恢复到数据库快照

    注意注意

    数据库快照与源数据库相关。因此,使用数据库快照还原数据库不能代替备份和还原策略。严格按计划执行备份仍然至关重要。如果必须将源数据库还原到创建数据库快照的时间点,请实施允许您执行该操作的备份策略。

  • 使数据免受用户失误所带来的影响。

    定期创建数据库快照,可以减轻重大用户错误(例如,删除的表)的影响。为了很好地保护数据,可以创建时间跨度足以识别和处理大多数用户错误的一系列数据库快照。例如,根据磁盘资源,可以每 24 小时创建 6 到 12 个滚动快照。每创建一个新的快照,就删除最早的快照。

    • 若要从用户错误中恢复,可以将数据库恢复到在错误发生的前一时刻的快照。采用此方法还原很可能比从备份还原快得多;但是,此后您无法对数据进行前滚操作。

      有关恢复快照的详细信息,请参阅恢复到数据库快照

    • 或者,也可以利用快照中的信息,手动重新创建删除的表或其他丢失的数据。例如,可以将快照中的数据大容量复制到数据库中,然后手动将数据合并回数据库中。

    注意注意

    使用数据库快照的原因,决定了数据库需要多少个并发快照、多久创建一次新快照以及将其保留多久。

  • 管理测试数据库

    在测试环境中,当每一轮测试开始时针对要包含相同数据的数据库重复运行测试协议将十分有用。在运行第一轮测试前,应用程序开发人员或测试人员可以在测试数据库中创建数据库快照。每次运行测试之后,数据库都可以通过还原数据库快照快速返回到它以前的状态。

请参阅

其他资源