设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1205|回复: 0
收起左侧

【东方瑞通】如何使用SQL Server数据库快照

[复制链接]
发表于 2015-5-6 12:48:25 | 显示全部楼层 |阅读模式
本帖最后由 easthomeRT 于 2015-5-6 12:49 编辑

数据库快照是SQL Server2005企业版新增加的功能,一直到现在最新的SQL Server版本仍然支持该技术,今天的主题就是和大家分享数据库快照技术在企业中的应用。

什么是数据库快照?

数据库快照是源数据库的只读静态视图,一个源数据库可以有多个数据库快照,并且可以作为数据库驻留在一个SQL Server实例中。

数据库快照有什么作用?

通过上面的介绍,我们已经对数据库快照有了基本的认识,也就是数据库快照是一个只读的状态,这也就决定了快照的使用场景,那就是用于报表。除此之外,我们还可以把快照中的状态还原到源数据库,这也就有了另外一个使用场景,逻辑错误恢复。

数据库快照如何工作?

比如在12点时为源数据库创建了一个快照,如下图:


                               
登录/注册后可看大图

SQL Server会在实例中创建一个空文件的快照数据库,这个快照数据库也就是源数据库的数据库快照了,它是只读状态,如果要查询这个快照数据库,则是这个源数据库12点时的数据状态,既然是空文件也就是页里没有数据,那是如何查询到数据的呢?这也就是快照数据库有意思的地方,再看下图:


                               
登录/注册后可看大图

通过图例可以清楚的看到,如果要查询这个SQL Serve数据库快照,就会被重定向到源数据库,所以返回的数据是源数据库的数据,这也就是查询到数据的原理,然而这也就有了另一个问题,如果在创建数据库快照后,源数据的原始数据发生了变更,那再查询会是什么数据呢?还是用图例说明问题,看下图:


                               
登录/注册后可看大图

相信有人已经猜到了,既然是快照肯定查询到的是创建快照时间点的数据状态了,原理在图中已经很明白的说明,就是源数据库中的原始数据如果变更,则会把变更前的数据COPY一份写入到对应的数据库快照空白文件页中,这时数据库快照就有了数据,不再全是空白的页了,此时再查询SQL Server数据库快照,查询到的是数据库快照中的数据(也就是原始数据的副本),看似复杂其实很简单,也就是一句话,查询数据库快照查询到的是源数据库创建快照时间点的数据状态。

说了这么多,接下来给大家演示下,如何创建数据库快照、查询数据库快照,以及将数据库快照中的数据还原回源数据库:

第一步:创建数据库快照

在easthome数据库中有一个表t1,表中数据如下:


                               
登录/注册后可看大图

创建数据库快照:


                               
登录/注册后可看大图

创建完成后在左侧的导航窗口可以看到已经创建好的数据库快照。

第二步:查询SQL Server数据库快照


                               
登录/注册后可看大图

可以看到,查询到t1表中的数据是1,这时源数据库中的数据还没有发生变更,是被重定向到了源数据库,如果源数据库原始数据变更,则会被COPY到数据库快照中,查询到的数据还是1,与我们刚才介绍的理论是一样的。

第三步:还原数据库快照

现在我将源数据库easthome中的表t1变更,如下:


                               
登录/注册后可看大图

查询SQL Server数据库快照仍然是1,如下:


                               
登录/注册后可看大图

假设我们的修改是错误的,还可以通过数据库快照还原回原始的数据状态,如下:


                               
登录/注册后可看大图

还原后再查询源数据库Easthome数据库回到了变更前的状态。

好了各位,这就是SQL Server数据库快照技术,大家赶快看看在你的企业中是否可以用上呢!

此文出自东方瑞通王晓哲老师,转载需注明出处。


您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-22 21:51 , Processed in 0.070764 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表