mysql 数据快照是什么_数据库快照是指什么

f21357bc8affa6c032cc2489276afa45.png

数据库快照是指什么?

简介

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

什么是快照

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

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

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

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

快照的原理

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

70525db4c2cdf37c39e7a7064c9fb8d6.png

图1.镜像的原理

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

69d9916a470eb0980f04c00cd279a55a.png

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

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部