sqlserver数据库快照和mysql_sqlserver 关于快照

数据库快照是SQL Server提供的一种快速恢复和读写分离的解决方案。它创建的是数据库在特定时间点的只读静态视图,主要用于报表服务和数据库恢复。快照通过稀疏文件实现,仅复制自创建后发生改变的页面,从而提高恢复速度。然而,快照过多会影响数据库性能,建议定期重建。在利用快照恢复时,必须先删除其他快照,并且源数据库和快照都会短暂不可用。此外,快照继承源数据库的安全设置,不允许任何修改。
摘要由CSDN通过智能技术生成

数据库快照:是数据库某一时间点的视图,快照涉及最初目的是为了报表服务,快照还可以和镜像结合来达到读写分离的目的

数据库快照:是sqlserver数据库的只读静态视图

快照的作用:

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

2 可以利用数据库快照来恢复数据库,相比备份来说,这个速度大大提高

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

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

快照原理:与备份数据库复制整个数据库不同,快照并不复制这个数据库的页,而是仅仅复制在快照建立时间点之后改变的页,因此:当利用快照进行数据库恢复时,也仅仅将那些做了改变的页恢复到源数据库,这个速度大大提高

注意:源数据库建立快照会给IO增加负担

写入时复制:

快照数据库的文件基于稀疏文件,稀疏文件:是NTFS文件系统的一项特性,指文件中出现大量0的数据,这些数据用处不大,却占用磁盘空间,因此NTFS对此进行了优化,利用算法将这个文件进行压缩,因此当稀疏文件被创建时,刚打开很小,虽然逻辑上占了二三十M空间,但文件实际就是100多kb

当快照创建后,随着对源数据库的改变逐渐增多,稀疏文件也会慢慢增长

通常:当稀疏文件增长到源数据库文件大小的 30%时,就应该考虑重建快照了

稀疏文件的写入:利用了微软的写入时复制技术:意思是在复制一个对象的时候并不是真正把对象复制到另一个位置,而是在新的对象中映射一个指针,指向原对象的位置,这样当对新对象执行读操作时,直接指向源对象,而在对新的对象执行写操作时候,将改变部分对象的指针指向到新的地址中,并修改映射表到新的位置中

使用快照的法律:

1 当使用快照进行恢复数据库时,首先要删除其他快照

2 快照在创建时的时间点上没有commit的数据不会被计入快照

3 快照是快照整个数据库,而不是数据库的某一部分

4 快照是只读的,所以不能对快照进行任何更改,即使是想加一个让报表跑的更快的索引

5在利用快照恢复数据库时,快照和源数据库都不可用

6快照和源数据必须在同一个实例上

7快照上不能存在全文索引

8当磁盘不能满足快照的增长的时,快照数据库会被设置为suspect状态

快照只能通过sql语句创建,在创建之前,首先要知道数据库分部在哪几个文件中

可以使用这个命令查看:EXEC sp_helpdb Yip_20160322

因为快照需要对每一个文件进行 copy-on-writing

--创建数据库快照

CREATE DATABASE snap_Yip_20160322

ON

(

NAME= Yip_20160322,FILENAME = 'D:\SqlTest\snap_Yip_20160322.snap')

AS SNAPSHOT OF Yip_20160322

go

如果源数据库分部在多个mdf文件,则将每个用括号括起来,用逗号分隔

执行完了之后会在sqlserver中看到 有一个文件夹叫:

DATABASE Snapshots

点开之后就可以看到刚才新创建的快照

快照数据库文件和源数据库文件没啥不同,仅仅快照数据库文件是稀疏文件

删除快照数据库和删除普通数据库一样 使用 drop database 快照数据库名

--利用快照恢复数据库:

USE MASTER

RESTORE DATABASE Yipong_20160322 FROM DATABASE_SNAPSHOT= 'snap_Yipong_20160322'go

注意:

1 快照数据库的安全设置继承自源数据库的安全设置,也就是说能访问源数据库的用户或者角色也能访问快照数据库,因为快照数据库是只读的,所以无论任何角色或者人都无法修改快照数据库

2 由于快照会拖累数据库性能,所以数据库不宜存在过多快照

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值