1. 创建数据库快照的几个典型用途:
(1). 可以基于database mirror生成database snapshot,后者用于reporting server
(2). 用作一个镜像级的备份
2. 创建数据库快照:
CREATE DATABASE AdventureWorks_snapshot ON
( NAME = N'AdventureWorks_Data', -- the same name
FILENAME =
N'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataAW_snapshot.mdf') -- a new physical name
AS SNAPSHOT OF AdventureWorks;
3. Snapshot的原理
(1) snapshot创建后,snapshot文件都为空;当数据发生变动时,该数据页的pre-change快照被保存到snapshot中;当所有的数据页都改动以后,snapshot就包含了一个 完整的数据库镜像.
(2) Snapshot使用NT Sparse file,因此必须被创建在NTFS文件系统上.
(3) SQL Server使用一个bitmap来判断哪些数据页已经被写入了snapshot.读取snapshot时, 发生变化的数据从snapshot中读取,其余的数据从源数据库中读取.
4. SNapshot的维护
(1) 带有snapshot database的数据库不能被drop, detach,restore.
(2) offline一个数据库会drop所有的snapshot
(3) 可以将源数据库恢复到snapshot数据库创建时的状态
RESTORE DATABASE AdventureWOrks
FROM SNAPSHOT = AdventureWorks_snapshot;
5.Restrictions
(1) 不能创建master, model和tempdb的snapshot
(2) read only
(3) 不能被backup/restored
(4) 不支持detach/attach
(5) 不支持full-text indexing
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/100682/viewspace-1021645/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/100682/viewspace-1021645/