创建数据库快照
数据库快照是源数据库的只读、静态视图。一个源数据库可以有多个数据库快照。数据库快照的主要作用是:维护历史数据以用于制作各种报表,可以使用数据库快照将出现错误的源数据库恢复到创建快照时的状态。例如,在财务年度结束时,通过创建数据库快照可以有效地制作各种财务报表。
3.4.1 数据库快照简介
简单的说,快照就是数据库在某一指定时刻的照片。顾名思义,数据库快照(Database Snapshot)就像是为数据库照了相片一样。相片实际是照相时刻被照对象的静态呈现,而数据库快照则提供了源数据库在创建快照时刻的只读、静态视图。一旦为数据库建立了快照后,这个数据库快照就是创建快照那时刻数据库的情况,虽然数据库还在不断变化,但是这个快照不会再改变。
数据库快照在数据页级别上进行。当创建了某个数据库的数据库快照后,数据库快照使用一种稀疏文件维护源数据页。如果源数据库中的数据页上的数据没有更改,那么对数据库快照的读操作实际上就是读源数据库中的这些未更改的数据页。如果源数据库中的某些数据页上的数据被更改,则更改前的源数据页已经复制到数据快照的稀疏文件中去,对这些数据的读操作实际上就是读取稀疏文件中复制过来的数据页。如果源数据库中的数据更改频繁,会导致数据库快照中稀疏文件的大小增长的很快。为了避免数据库快照中的稀疏文件过大,可以通过创建新的数据库快照来解决这一问题。
3.4.2 创建数据库快照
在Microsoft SQL Server 2008系统中,使用CREATE DATABASE语句创建数据库快照。创建数据库快照的基本语法格式如下所示:
CREATE DATABASE database_snapshot_name
ON
(
NAME=logical_file_n