创建数据库快照:
必须在create database 命令中包括源数据库的每一个数据文件,原始逻辑名,新物理名与路径,
不能指定其他属性
create database db_snapshot_name on
(....)[,(....)....]
as snapshot of db_name;
-------------------------------
例子:
create database studio_snapshot
on(name = 'studio',filename='E:\studio_snapshot.mdf')
as snapshot of studio;
go
----------------------------------------------------------------------------------------------------
1、快照文件都被创建为稀疏文件,这个是NTFS文件系统的功能,快照文件只包涵修改过的数据,所以最初,稀疏文件不包涵用户数据
随着数据的写入NTFS会为文件分配空间,而且每次分配的空间都是64K的整数部!
2、SQL server 会为源数据库的每一个文件创建一个位图,文件中的每一页都对应一个位,这个位用来记录这个页面有没有被保存到快照
数据库中,第次源中的数据更新后,SQL Server 都会去更新位图,当进行快照读取时,第一件就是去查看这个位图,用来定位数据。