SQL Server 创建数据库快照

时间:2021-12-23 10:06:50

创建数据库快照:

必须在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 都会去更新位图,当进行快照读取时,第一件就是去查看这个位图,用来定位数据。