大家都SQL Server可以使用镜像保证HA。默认情况下镜像是无法进行访问的,这样就造成了镜像数据库资源的浪费。
其实镜像上也可以通过创建快照的方式实现只读。这样可以将一部分报表访问的压力放到镜像数据库来做。
注意:若要在镜像数据库中创建数据库快照,数据库必须处于同步镜像状态
在镜像数据库上创建快照可以使用下面的命令:
CREATE DATABASE AdventureWorks2008_Snapshot ON
(
NAME = AdventureWorks2008_Data,
FILENAME = 'D:DATAAdventureWorks2008_Snapshot.SNP'
)
AS SNAPSHOT OF AdventureWorks2008
创建完成后使用SSMS连接在database Snapshot文件夹下面可以看到:
可以访问数据:
删除快照数据库:
use master
go
DROP DATABASE AdventureWorks2008_Snapshot ;
限制:由于数据库快照是静态的,只读的并且只能访问快照创建时的数据,所以即时的数据访问是不适合的。而且需要定期的删除创建新的快照数据库。