近日再次讲到SQL Server 2005中的数据库快照功能。这里做一个总结 使用场景: 只读的报表查询(可以有多个版本) 分担源数据库压力 将数据静止在某个时间百考试题-全国最大教育类网站(100test.com) 对于人为失误问题的灾难恢复 主要限制: 要求企业版 数据库快照与源数据库必须在一个服务器实例 如果存在多个快照的话,就不可以使用其中某一个进行还原了 实验步骤: 1. 创建数据库快照 -- ============================================= -- Create Snapshot Template -- ============================================= USE master GO -- Drop snapshot database if it already exists IF EXISTS ( SELECT name FROM sys.databases WHERE name = N Northwind_20090725 ) DROP DATABASE Northwind_NorthwindTest GO -- Create the snapshot database CREATE DATABASE Northwind_20090725 ON ( NAME = Northwind, FILENAME = E:\Temp\Northwind_20090725.ss ) AS SNAPSHOT OF Northwind. GO 2. 查询数据库快照 SELECT * FROM Northwind_20090725..Customers 3. 理解数据库快照查询的依赖关系 我们都知道数据库快照这个功能最主要的一个特性就是所谓的"写入时复制",也就是说快照数据库最开始的时候并没有包含数据, 只有在源数据库的数据页发生变化的情况下,才会发生数据复制. 但是不管数据有没有从源数据库复制到快照数据库,查询快照数据库都要求源数据库是在线的 为了做这个测试,此时,如果设置源数据库的状态为脱机,则就无法完成查询 ALTER DATABASE [Northwind] SET OFFLINE