您的位置:首页 > 数据库

MSSQL2005数据库快照(SNAPSHOT)初探

2013-11-20 21:39 246 查看
定义:数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致。多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致。在被数据库所有者显式删除之前,快照始终存在。

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

一、 数据库快照是数据库某个时间的快照

1、即使创建的

2、数据库快照是只读的

二、创建的数据库快照不影响、限制对基础数据库的更新

三、快照名与基础数据名称可以不一样

四、数据库快照可以使数据库返回到快照的时间点

五、MSSQL2005采用极其有效的空间管理机制(copy on write)可以是快照空间保存在非常小的范围内

1、数据库快照无需复制完整数据库备份

2、和源数据库共享无变化的数据库页面

3、数据库快照仅存储已变化的数据页

数据库快照的创建:

--创建数据库快照
create database DB_shot ON     --DB_shot数据库快照的名字
(
--是源数据库的逻辑名
Name = DB,
--快照文件存放的地址
FileName = 'D:\DB_shot.ss'
)
AS SNAPSHOT OF DB;

--查询数据库快照的数据

use DB_shot;
go
SELECT * FROM dbo.test;  --test为表名

使用数据库快照恢复数据

--从数据库快照恢复数据库
use master;
GO
RESTORE DATABASE DB from
DATABASE_SNAPSHOT = 'DB_shot';

删除数据库快照

--和删除数据库的语法一样
DROP DATABASE DB_shot


写于2012.3.15                                                                
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: