为了账号安全,请及时绑定邮箱和手机立即绑定

Windows和Linux都有的Copy-on-write技术

标签:
MySQL

MySQL技术内幕Innodb存储引擎第2版 P375

SQL Server2008 实现与维护(MCTS教程)P199

 

LVM快照技术

LVM使用写时复制copy-on-write技术来创建快照,当创建一个快照时,仅复制原始卷中数据的元数据metadata,并不会有数据物理操作,因此快照创建过程非常快。当快照创建完成,原始卷上有写操作时,快照会跟踪原始卷块的改变,将要改变的数据在改变之前复制到快照预留空间里,因此这个原理的实现叫写时复制。对于快照读取操作,如果读取的数据块是创建快照后没有修改过的,那么会重定向读取操作到原始卷,如果读取的是已经修改过的块,读取保存在快照中该块在原始卷改变之前的数据,简单来将就是读取快照中的数据,因此采用写时复制机制保证了读取快照得到的数据和快照和快照创建时一致

简单来讲:

写:有变更写快照,无变更不写快照,写快照是变更之前的版本

 

SQL Server的快照技术

SQL Server使用写时复制copy-on-write,SQL Server对区extent进行读写,首次对一个区中的数据页进行修改时,SQL Server将区的前影像复制到数据快照。

读取select:无更改过的,读取源库,更改过的,读取快照

由于在首次发生改变时写入了区的前影像,所以SQL Server一方面允许对源库进行更改
另一方面保证对数据库快照的任何查询不会反映创建快照之后发生的任何改变

最初的更改写入区的一个页,而且SQL Server将这个区的前影像写入数据库快照之后,写时复制功能会忽略后续对这个区的任何更改

由于可以为一个源库创建多个数据库快照,所以凡是没有获得区的副本的数据库快照都会被写入区的一个前影像

 

原理跟Linux LVM的快照原理是一样的!

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消