数据库快照是MSSQL2005的新功能,仅在 Microsoft SQL Server 2005 Enterprise Edition 中可用。而且SQL Server Management Studio 不支持创建数据库快照,创建快照的唯一方式是使用 Transact-SQL。

数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致。
客户端可以查询数据库快照,这对于基于创建快照时的数据编写报表是很有用的。而且,如果以后源数据库损坏了,便可以将源数据库恢复到它在创建快照时的状态。
创建数据库快照可以:
  • <!--[if !supportLists]--><!--[endif]-->维护历史数据以生成报表。可以通过快照访问特定时间点的数据。例如,您可以在给定时间段(例如,财务季度)要结束的时候创建数据库快照以便日后制作报表。然后便可以在快照上运行期间要结束时创建的报表。
  • <!--[if !supportLists]-->将查询实施在数据库的快照上,可以释放主体数据库上的资源。
  • <!--[if !supportLists]-->加快恢复操作效率,使用快照将数据库恢复到生成快照时的状态比从备份还原快得多;但是,此后您无法对数据进行前滚操作。根据磁盘资源,可以每 24 小时创建 6 到 12 个滚动快照。每创建一个新的快照,就删除最早的快照。如果要恢复,可以将数据库恢复到在错误发生的前一时刻的快照。或者,也可以利用快照中的信息,手动重新创建删除的表或其他丢失的数据。例如,可以将快照中的数据大容量复制到数据库中,然后手动将数据合并回数据库中。
但是只要存在数据库快照,快照的源数据库就存在以下限制:
  • <!--[if !supportLists]-->必须在与源数据库相同的服务器实例上创建数据库快照。
  • <!--[if !supportLists]--> <!--[endif]-->数据库快照捕获开始创建快照的时间点,去掉所有未提交的事务。未提交的事务将在创建数据库快照期间回滚,因为数据库引擎 将对快照执行恢复操作(数据库中的事务不受影响)。
  • <!--[if !supportLists]-->当将源数据库中更新的页强制压入快照时,如果快照用尽磁盘空间或者遇到某些错误,则该快照将成为可疑快照并且必须将其删除。有关详细信息,请参阅删除数据库快照。
  • <!--[if !supportLists]-->快照为只读。
  • <!--[if !supportLists]--> <!--[endif]-->禁止对 model 数据库、master 数据库和 tempdb 数据库创建快照。
  • <!--[if !supportLists]--> <!--[endif]-->不能更改数据库快照文件的任何规范。
  • <!--[if !supportLists]--><!--[endif]-->不能从快照中删除文件。
  • <!--[if !supportLists]-->不能备份或还原快照。
  • <!--[if !supportLists]-->不能附加或分离快照。
  • <!--[if !supportLists]-->不能在 FAT32 文件系统或 RAW 分区中创建快照。
  • <!--[if !supportLists]--> <!--[endif]-->数据库快照不支持全文索引,不能从源数据库传播全文目录。
  • <!--[if !supportLists]-->数据库快照将继承快照创建时其源数据库的安全约束。由于快照是只读的,因此无法更改继承的权限,对源数据库的更改权限将不反映在现有快照中。
  • <!--[if !supportLists]-->快照始终反映创建该快照时的文件组状态:在线文件组将保持在线状态,离线文件组将保持离线状态。有关详细信息,请参阅本主题后面的“含有离线文件组的数据库快照”。
  • <!--[if !supportLists]-->如果源数据库的状态为 RECOVERY_PENDING,可能无法访问其数据库快照。但是,当解决了源数据库的问题之后,快照将再次变成可用快照。
  • <!--[if !supportLists]-->只读文件组和压缩文件组不支持恢复。尝试恢复到这两类文件组将失败。有关恢复的详细信息,请参阅恢复到数据库快照。
下面就请看一个简单的例子:
-- 创建数据库快照

CREATE DATABASE AdventureWorks_snapshot_0600 ON

( NAME = AdventureWorks_Data, FILENAME =

'E:/SQL2005/MSSQL.1/MSSQL/Data/AdventureWorks_snapshot_0600.ss' )

AS SNAPSHOT OF AdventureWorks;

GO
-- 恢复数据库快照

RESTORE DATABASE AdventureWorks FROM DATABASE_SNAPSHOT = AdventureWorks_snapshot_0600

GO
-- 删除数据库快照

DROP DATABASE AdventureWorks_snapshot_0600

GO

洪虎2006年8月13日
根据SQL Server 2005 联机丛书整理

MSSQL2005的新功能创建数据库快照相关推荐

  1. SQL Server 创建数据库快照

    创建数据库快照: 必须在create database 命令中包括源数据库的每一个数据文件,原始逻辑名,新物理名与路径, 不能指定其他属性 create database db_snapshot_na ...

  2. 创建mysql数据库快照_创建数据库快照 (Transact-SQL)

    创建数据库快照 (Transact-SQL)Create a Database Snapshot (Transact-SQL) 08/10/2016 本文内容 适用于:Applies to: SQL ...

  3. 创建mysql数据库快照_sql语句大全之创建数据库快照

    创建数据库快照 数据库快照是源数据库的只读.静态视图.一个源数据库可以有多个数据库快照.数据库快照的主要作用是:维护历史数据以用于制作各种报表,可以使用数据库快照将出现错误的源数据库恢复到创建快照时的 ...

  4. MYSQL-使用mysqldump创建数据库快照

    对已经有数据的mysql库创建主从的时候,可以使用mysqldump创建数据库快照 #--master-data选项会自动加上开启复制需要的"change master to"语句 ...

  5. SQL Server 2012 创建数据库快照

    原文:SQL Server 2012 创建数据库快照 不是所有的MSSQL数据库版本都支持数据库快照,只有Enterprise版本的才支持. 在其他版本上,以Business Intelligence ...

  6. php购物车数据表,PHP开发简单购物车功能创建数据库表

    前面的章节我们分别介绍了javascript和jquery实现购物车功能. 本章节我们将通过php代码来为朋友们讲解购物车功能实现思路. 方法是把从数据库中获取的商品存入数组,对数组进行操作,数组中的 ...

  7. SQLServer 2005新功能

    MSSQL2005的新功能创建数据库快照 -- 创建数据库快照 CREATE DATABASE AdventureWorks_snapshot_0600 ON ( NAME = AdventureWo ...

  8. Ms Sql Server 2005的数据库快照功能使用实践

    数据库快照是sql server 2005的一个新功能.Msdn上对它的定义是: 数据库快照是数据库(称为"源数据库")的只读静态视图.在创建时,每个数据库快照在事务上都与源数据库 ...

  9. 创建mysql数据库快照_数据库教程

    下面,容我来向大家介绍数据库学习内容,主要讲述的是SQL Server 2008高可用性系列之数据库快照.想了解的就来看看吧! 一:简介:数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由 ...

  10. SQL Server 2008高可用性系列:数据库快照

    SQL Server 2008高可用性系列:数据库快照 http://database.51cto.com  2010-09-13 14:45  我爱菊花  博客园  我要评论(0) 摘要:我们今天要 ...

最新文章

  1. [错误]xstring(525) : warning C4530:
  2. Nginx的继续深入(日志轮询切割,重写,负载均衡等)
  3. Go web 编程资源
  4. \r与\n的区别,以及\r\n的用法
  5. C#学员信息管理试题
  6. 【PDF下载】无意中发现的另三本统计学入门好书
  7. Java如何定义三个圆_java – 以编程方式查找三个圆的交叉点
  8. uoni扫地机器人好用吗_抖音走红的日本uoni尤利扫地机器人好吗?体验感如何?...
  9. Vue学习笔记(4)(Vue-router)
  10. uploadify php完整,uploadify.php
  11. 计算机用户名登录取消,win7系统取消登录界面显示用户名的还原办法
  12. win10从网络访问计算机没有guest,简单几步解决win10没有权限访问网络资源的问题...
  13. See system logs and ‘systemctl status docker.service‘ for details
  14. python数据分析与可视化答案学堂云_智慧树知到_Python数据分析与数据可视化_最新答案...
  15. 传奇修改map地图教程_传奇地图事件触发脚本教程
  16. PHP slideup,vue+原生JavaScript实现slideDown与slideUp[简单思路]
  17. 频率响应、零极点、稳定性专题
  18. 语音识别引擎接口 将声音转换为文字显示
  19. lol1月24服务器维护,《lol》1月24日停机到几点 1月24日停机维护内容一览
  20. 支付宝 当面付(扫描支付) 对接逻辑

热门文章

  1. linux定时任务生效_Linux 定时任务不生效的问题
  2. 手把手:用OpenCV亲手给小扎、Musk等科技大佬们做一张“平均脸”(附Python代码)
  3. 51nod2384 事后诸葛亮
  4. 台式计算机未识别网络,台式机显示未识别网络怎么办
  5. Android超声波识别技术,超声波指纹识别or光学指纹识别?屏下指纹识别技术大比拼-传感技术-与非网...
  6. android 11.0 12.0Camera2 去掉后置摄像头 仅支持前置摄像头功能
  7. Android 前置摄像头强制关闭镜像预览
  8. java判断闰年中闰月_闰年闰月查询表_闰月查询表_闰年查询表-万年历
  9. 【BZOJ4972】小Q的方格纸 前缀和
  10. 文件上传的测试点整理