浅谈SQL Server中的快照-2

上一篇 / 下一篇  2012-06-29 13:51:08 / 个人分类:数据库

 使用快照的限制51Testing软件测试网p3H:s0S~n

  使用快照存在诸多限制,由于列表太长,我只概括的说一下主要限制。

u3N^Bea#oK0

q8F b(b:@0  ● 当使用快照恢复数据库时,首先要删除其他快照51Testing软件测试网P$G3Z4k)v$\ S

T"ba9e)Q4OK0  ● 快照在创建时的时间点上没有commit的数据不会被记入快照51Testing软件测试网E)d?}x8?5d*Rt

m'}m,[Ki F0  ● 快照是快照整个数据库,而不是数据库的某一部分

5cu*e0u,kQj0

*V0l)pXS5N0  ● 快照是只读的,意思是不能在快照上加任何更改,即使是你想加一个让报表跑得更快的索引51Testing软件测试网:J p+b$x [qs6I

51Testing软件测试网O4Swk^,qJ^

  ● 在利用快照恢复数据库时,快照和源数据库都不可用51Testing软件测试网9OQ n_8t)p

51Testing软件测试网N}+x(O$h3? i

  ● 快照和源数据必须在同一个实例上

,G|3J}7zp/on4I0

1j|'P$D FZ0  ● 快照数据库的文件必须在NTFS格式的盘上51Testing软件测试网!v;ZMk md,Ka;T

51Testing软件测试网7b!Ney5f

  ● 当磁盘不能满足快照的增长时,快照数据库会被置为suspect状态51Testing软件测试网$EbuQk5U#f

H Tc0~9~+I0  ● 快照上不能存在全文索引51Testing软件测试网,Oj$rZ$B w`

51Testing软件测试网.w^y"Bo6LG*V&p

  其实,虽然限制看上去很多,但只要明白快照的原理,自然能推测出快照应该有的限制。

!DVt'L9@QD M051Testing软件测试网iS` `5g9NV4j

  快照的创建和使用

t,p*Q7y CP.R H0

*O)Rg\c-k4m z0  无论是使用SSMS或是命令行,快照只能通过T-SQL语句创建。在创建数据库之前,首先要知道数据库分布在几个文件上,因为快照需要对每一个文件进行copy-on-writing。如图6所示。

V`M5kZ8B/Q6R^0

51Testing软件测试网m1T:~*d g @0O1m*p2R

图6.首先查出数据库的文件分布51Testing软件测试网]b Ac,nh

  根据图6的数据库分布,我们通过T-SQL创建快照,如图7所示。51Testing软件测试网3U,AilO[)Zc-]

8Lhi!W/u*^7|0

图7,根据图6的数据库信息创建一个数据库快照51Testing软件测试网C3n7\KM\

  当快照数据库创建成功后,就可以像使用普通数据库一样使用快照数据库了,如图8所示。

S7N&f1`*uD1y(K0

51Testing软件测试网5Uk Oz!NCh8G5MX

图8.快照数据库和普通数据库一样使用51Testing软件测试网8i)o4QrD w

 通过如下语句可以看到,快照数据库文件和源数据库的文件貌似并无区别,仅仅是快照数据库文件是稀疏文件,如图9所示。51Testing软件测试网 ibyv_#fyTR

51Testing软件测试网R&~3EM6H{g

图9.源数据库和快照数据库

E URbTo0

  而删除快照数据库和删除普通数据库并无二至,也仅仅是使用DROP语句,如图10所示。51Testing软件测试网.[o$j$R|{os"A

51Testing软件测试网!ZPtO ?Q7k&m,b

图10.删除快照数据库

M\.H(O~v#B Q0

  我们也可以利用快照恢复数据库,这个恢复速度要比普通的备份-恢复来的快得多,这也可以将数据库呈现给测试人员,当测试结束后,恢复数据库到测试之前的状态。如图11所示。51Testing软件测试网/~n~Enz

5]$]#la"I2o Y4xc0

图11.利用快照恢复数据库51Testing软件测试网(z%| _7z]*K%}D y

  使用快照其他一些需要考虑的因素51Testing软件测试网D `$E O*c!o"lAB&WT

  1、快照数据库的安全设置继承源数据库的安全设置。也就是说能访问源数据库的用户或角色也能访问快照数据库,当然,因为快照数据库是只读的,所以无论任何角色或人都无法修改快照数据库。

:`0~8B)A`}zJ6MNt0

  2、我们由文章前面图5看出,随着快照存在的时间越来越长,快照会不断增长。所以推荐在快照达到源数据库大小30%之前,重新创建快照。51Testing软件测试网NuD[&qNeD

  3、由于快照会拖累数据库性能,所以数据库不宜存在过多快照。51Testing软件测试网9Q4p7t2Q$B7xL

  总结51Testing软件测试网`$ed2LC$`

  本文简单讲述了数据库快照的概念,原理以及使用。数据库快照可以在很多场景下使用,无论是用于报表,还是和镜像配合提供负载,以及利用快照恢复数据库,使用得当的话,快照将会是一把利器。51Testing软件测试网3O3r0[4u8pQ I x2T


TAG:

 

评分:0

我来说两句

Open Toolbar