定义:数据库快照是数据库(称为“源数据库”)的只读静态视图.在创建时,每个数据库快照在事务上都与源数据库一致.多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上.在创建数据库快照时,源数据库通常会有打开的事务.在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致.在被数据库所有者显式删除之前,快照始终存在. 客户端可以查询数据库快照,这对于基于创建快照时的数据编写报表是很有用的.而且,如果以后源数据库损坏了,便可以将源数据库恢复到它在创建快照时的状态. 简…
什么是快照 数据库快照是 SQL Server 数据库(源数据库)的只读静态视图.换句话说,快照可以理解为一个只读的数据库.利用快照,可以提供如下好处: 提供了一个静态的视图来为报表提供服务 可以利用数据库快照来恢复数据库,相比备份恢复来说,这个速度会大大提高(在下面我会解释为什么) 和数据库镜像结合使用,提供读写分离 作为测试环境或数据变更前的备份,比如我要大批导入或删除数据前,或是将数据提供给测试人员进行测试前,做一个快照,如果出现问题,则可以利用快照恢复到快照建立时的状态 写入时复制(Co…
1.认识快照 如名字一样,数据库快照就可以理解为数据库某一时刻的照片,它记录了此时数据库的数据信息.如果要认识快照的本质,那就要了解快照的工作原理.当我们执行t-sql创建快照后,此时就会创建一个或多个稀疏文件.稀疏文件的个数与数据库数据文件的个数相等且一定要相等,否则会报错.此时,稀疏文件只是一个空文件并没有在磁盘上分配空间存储用户数据,如果数据库没有任何更新那快照也将一直是空文件.快照唯一的一次写数据,仅发生在第一次更新数据库的数据页,这时快照会将数据页中的数据复制到快照中并在磁盘上真真的分…
不是所有的MSSQL数据库版本都支持数据库快照,只有Enterprise版本的才支持. 在其他版本上,以Business Intelligence Edition版本为例,创建快照时,会报如下错误 消息 1844,级别 16,状态 1,第 1 行Business Intelligence Edition 不支持 Database Snapshot. 如图 在Enterprise版本的数据库下,运行如下语句来创建快照会报错,错误信息为 消息 5127,级别 16,状态 1,第 1 行必须指定用于创…
转载自:http://wenku.baidu.com/link?url=cbioiMKsfrxlzrJmoUMaztbrTelkE0FQ8F9qUHX7sa9va-BkkL4amvzCCAKg2hBv5ZmYL_ERp3Wprd1jVxG-333s6tCJn2LGqCAvFmJ6dXC Logical VolumeManager (LVM)提供了对任意一个LogicalVolume(LV)做“快照”(snapshot)的功能,以此来获得一个分区的状态一致性备份. 在某一个状态下做备份的时候,可能…
SQL Server 视图 什么是视图? 视图是一个虚拟的表,内容源于查询的结果集.只有当视图上建立了索引后,才会具体化. 视图可以筛选和处理数据,而不是直接访问基础表.如:创建一个视图,只展示源表中的几列数据,无需授予用户访问基础表的权限,取而代之的是授予视图访问权限. 为什么用视图? 1.如果是比较复杂的多表联查,可以将这些复杂的语句放在视图中完成,而我们只需要使用简单的语句查询视图即可. 2.保护基础表,敏感列无法被检索出. 3.对视图添加索引,可以提高效率. 创建视图 1.可以使用SSM…
创建数据库快照: 必须在create database 命令中包括源数据库的每一个数据文件,原始逻辑名,新物理名与路径, 不能指定其他属性 create database db_snapshot_name on (....)[,(....)....] as snapshot of db_name; ------------------------------- 例子: create database studio_snapshot      on(name = 'studio',filename…
创建数据库快照注意事项 语法:set transaction isolation level snapshot; 指定事务中任何语句读取的数据都将是在事务开始时便存在的数据的事务上一致的版本. 事务只能识别在其开始之前提交的数据修改. 在当前事务中执行的语句将看不到在当前事务开始以后由其他事务所做的数据修改. 其效果就好像事务中的语句获得了已提交数据的快照,因为该数据在事务开始时就存在. 除非正在恢复数据库,否则 SNAPSHOT 事务不会在读取数据时请求锁. 读取数据的 SNAPSHOT 事务…
存在数据库快照的话我发进行数据库分离 CREATE DATABASE <快照名称> ON (NAME=<数据库文件名>,FILENAME='<存放地址>') AS SNAPSHOT OF <数据库名称> 例子 CREATE DATABASE testInfo_snap ON (NAME=test,FILENAME='E:\1.mdf') AS SNAPSHOT OF test 从数据库快照恢复数据 RESTORE DATABASE <数据库名称>…
在开发或者测试环境的数据库中,经常会发现有开发或者测试人员误删除表或者数据的情况,对于开发或者测试库,一般都没有安排定时的备份任务去备份数据库,一方面是由于存储资源有限,不太可能给开发或者测试环境准备大量的存储空间,二是必要性不是很强,开发或者测试库的数据库对象变化太多,通过还原备份的方式又有可能冲掉其最近新建的数据库对象.但是不得不面对的问题就是个别人在执行update或者delete操作的时候“忘了加where条件”这种事情的发生. 这是开发或者测试环境的一个痛点,相信多数人都经历过,当面对…