浅谈SQL Server中的快照(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:16 点击:
    而当快照创建后,随着对源数据库的改变逐渐增多,稀疏文件也会慢慢增长,概念如图4所示。
       
图5.随着源数据库的更改越来越多,稀疏文件不断增长
 
 
    所以,通常来说,当稀疏文件增长到源数据库文件大小的30%时,就应该考虑重建快照了。
    而稀疏文件的写入是利用了微软的写入时复制技术(Copy-On-Writing),意思是在复制一个对象时并不是真正把对象复制到另一个位置,而是在新的对象中映射一个指针,指向原对象的位置。这样当对新对象执行读操作时,直接指向原对象。而在对新的对象执行写操作时,将改变部分对象的指针指向到新的地址中。并修改映射表到新的位置中。 www.2cto.com 
 
使用快照的限制
    使用快照存在诸多限制,由于列表太长(详细请参考MSDN:http://msdn.microsoft.com/zh-cn/library/ms175158.aspx#LimitationsRequirements),我只概括的说一下主要限制。
    当使用快照恢复数据库时,首先要删除其他快照
    快照在创建时的时间点上没有commit的数据不会被记入快照
    快照是快照整个数据库,而不是数据库的某一部分
    快照是只读的,意思是不能在快照上加任何更改,即使是你想加一个让报表跑得更快的索引
    在利用快照恢复数据库时,快照和源数据库都不可用
    快照和源数据必须在同一个实例上
    快照数据库的文件必须在NTFS格式的盘上
    当磁盘不能满足快照的增长时,快照数据库会被置为suspect状态
    快照上不能存在全文索引
    其实,虽然限制看上去很多,但只要明白快照的原理,自然能推测出快照应该有的限制。
 
快照的创建和使用
    无论是使用SSMS或是命令行,快照只能通过T-SQL语句创建。在创建数据库之前,首先要知道数据库分布在几个文件上,因为快照需要对每一个文件进行copy-on-writing。如图6所示。
        图6.首先查出数据库的文件分布
 
  
    根据图6的数据库分布,我们通过T-SQL创建快照,如图7所示。
        图7,根据图6的数据库信息创建一个数据库快照
 
 
     当快照数据库创建成功后,就可以像使用普通数据库一样使用快照数据库了,如图8所示。
       
图8.快照数据库和普通数据库一样使用
 
 
    通过如下语句可以看到,快照数据库文件和源数据库的文件貌似并无区别,仅仅是快照数据库文件是稀疏文件,如图9所示。   www.2cto.com 
        图9.源数据库和快照数据库 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • SQL编程(一)
  • LINUX上RMAN自动备份脚本
  • sql server面试题
  • 如何将多个SQL查询统计结果一次显示出来
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
  • SQL小技巧系列 --- 行转列合并
  • sql server 列转行

数据库技术导航

SqlserverMysqlOracleDB2数据库数据库综合
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1