SQLServer2005数据库快照的简单使用
快照理论:
数据库快照就是保存某个数据库在快照那一瞬间的状态.快照和备份原理上有所不同,但是功能有一点相同那就是可以将数据还原为备份的那个时刻.快照的原理是新建一个数据库指针,在原数据库没有变化的情况下快照是不占用空间的,而数据库发生了变化,那么在变化前,被修改的数据页会先复制一份到快照文件中,然后再对原数据页进行修改.显然这样做的好处就是比备份数据库占用空间小.快照是只读的。
快照实战:
--查询FYTEST数据库下TEST表中的内容
SELECT * FROM FYTEST.dbo.TEST;
--创建FYTEST数据库快照
CREATE DATABASE FYTEST_DBSS ON
(NAME = FYTEST,
FILENAME = 'D:\FYTEST_DBSS.SS')
AS SNAPSHOT OF FYTEST
GO
如下图:
--更新FYTEST数据库中TEST表的数据
UPDATE FYTEST.dbo.TEST SET levelNO='二级';
--查询更新后的数据
SELECT * FROM FYTEST.dbo.TEST;
--查询快照中的数据
SELECT * FROM FYTEST_DBSS.dbo.TEST;
--从数据库快照中恢复数据库到快照创建的时刻
--使用master数据库
USE master
GO
RESTORE DATABASE FYTEST
FROM DATABASE_SNAPSHOT='FYTEST_DBSS'
GO
--确认是否恢复了FYTEST数据库下的TEST表的内容
SELECT * FROM FYTEST.DBO.TEST;
可以看到FYTEST数据库下TEST表中的数据恢复了。
--删除数据库快照
DROP DATABASE FYTEST_DBSS
--删除其他任何数据库快照。(有多个快照的情况,只保留一个)
IF EXISTS (SELECT * FROM sys.databases
WHERE NAME='FYTEST_DBSS')
DROP DATABASE FYTEST_DBSS;
GO