>백엔드 개발 >PHP 튜토리얼 >数据库快照是指什么

数据库快照是指什么

PHPz
PHPz원래의
2016-06-06 20:42:297434검색

数据库快照是指什么

数据库快照是指什么?

简介

    数据库快照,正如其名称所示那样,是数据库在某一时间点的视图。快照设计最开始的目的是为了报表服务。比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点。快照还可以和镜像结合来达到读写分离的目的。下面我们来看什么是快照。

 

什么是快照

    数据库快照是 SQL Server 数据库(源数据库)的只读静态视图。换句话说,快照可以理解为一个只读的数据库。利用快照,可以提供如下好处:

  • 提供了一个静态的视图来为报表提供服务

  • 可以利用数据库快照来恢复数据库,相比备份恢复来说,这个速度会大大提高(在下面我会解释为什么)

  • 和数据库镜像结合使用,提供读写分离

  • 作为测试环境或数据变更前的备份,比如我要大批导入或删除数据前,或是将数据提供给测试人员进行测试前,做一个快照,如果出现问题,则可以利用快照恢复到快照建立时的状态

 

快照的原理

    与备份数据库复制整个数据库不同,快照并不复制整个数据库的页,而是仅仅复制在快照建立时间点之后改变的页。因此,当利用快照进行数据库恢复时,也仅仅将那些做出改变的页恢复到源数据库,这个速度无疑会大大高于备份和恢复方式。这个原理如图1所示(图摘自SQL Server 2008揭秘)。

企业微信截图_15924460773453.png

    图1.镜像的原理

   

    由图1可以看出,快照并不是复制整个整个数据库,而仅仅利用快照存储原始页。因此可以看出,源数据库上建立快照会给IO增加额外负担.当对快照数据库进行查询时,快照时间点之后更改的数据会查询数据文件,。这个概念如图2所示(图摘自SQL Server 2008揭秘)。

企业微信截图_15924460881830.png

    图2.查询快照数据库时查询的分布

更多相关技术文章,请访问PHP中文网

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.