sql创建服务器快照缺少文件夹,SQL Server 2012笔记分享-49:理解数据库快照

数据库快照是 SQL Server 数据库(源数据库)的只读静态视图。 自创建快照那刻起,数据库快照在事务上与源数据库一致。 数据库快照始终与其源数据库位于同一服务器实例上。 当源数据库更新时,数据库快照也将更新。 因此,数据库快照存在的时间越长,就越有可能用完其可用磁盘空间。

给定源数据库中可以存在多个快照。 在数据库所有者显式删除每个数据库快照之前,该快照将一直保留。

数据库快照在数据页级运行。 在第一次修改源数据库页之前,先将原始页从源数据库复制到快照。 快照将存储原始页,保留它们在创建快照时的数据记录。 对要进行第一次修改的每一页重复此过程。 对于用户而言,数据库快照似乎始终保持不变,因为对数据库快照的读操作始终访问原始数据页,而与页驻留的位置无关。

为了存储复制的原始页,快照使用一个或多个“稀疏文件”。 最初,稀疏文件实质上是空文件,不包含用户数据并且未被分配存储用户数据的磁盘空间。 随着源数据库中更新的页越来越多,文件的大小也不断增长。 下图说明了两种相对的更新模式对快照大小的影响。 更新模式 A 反映的是在快照使用期限内仅有 30% 的原始页更新的环境。 更新模式 B 反映的是在快照使用期限内有 80% 的原始页更新的环境。

33163027da5c90d7ab50a4405821803e.png

=============================================================

数据库快照 (database snapshot)

一个数据库(源数据库)的事务一致的只读静态视图。

源数据库 (source database)

对于数据库快照,指的是在其上创建快照的数据库。 数据库快照与源数据库相关。 数据库快照必须与数据库在同一服务器实例上。 此外,如果数据库因某种原因而不可用,则它的所有数据库快照也将不可用。

稀疏文件 (sparse file)

NTFS 文件系统提供的文件,需要的磁盘空间要比其他文件格式少很多。 稀疏文件用于存储复制到数据库快照的页面。 首次创建稀疏文件时,稀疏文件占用的磁盘空间非常少。 随着数据写入数据库快照,NTFS 会将磁盘空间逐渐分配给相应的稀疏文件。

=============================================================

注意事项

无法对脱机或损坏的数据库进行恢复。 因此,为了保护数据库,非常有必要定期执行备份并测试还原计划。

数据库快照与源数据库相关。 因此,使用数据库快照还原数据库不能代替备份和还原策略。 严格按计划执行备份仍然至关重要。 如果必须将源数据库还原到创建数据库快照的时间点,请实施允许您执行该操作的备份策略。

使用数据库快照的原因,决定了数据库需要多少个并发快照、多久创建一次新快照以及将其保留多久。     所有恢复模式都支持数据库快照。

可以备份源数据库,这方面将不受数据库快照的影响。

通常情况下,快照只会保留一段有限的时间,因此其大小不是主要问题。 但是,保留快照的时间越长,越有可能将可用空间用完。 稀疏文件最大只能增长到创建快照时相应的源数据库文件的大小。

除文件空间外,数据库快照与数据库占用的资源量大致相同。

数据库快照不支持 FILESTREAM 文件组。

禁止对 model 数据库、master 数据库和 tempdb 数据库创建快照。

快照为只读。

不能从源数据库或任何快照中删除文件。

源数据库的性能受到影响。由于每次更新页时都会对快照执行“写入时复制”操作,导致源数据库上的 I/O 增加。

不能对源数据库进行删除、分离或还原。

============================================================

创建数据库快照

最佳做法:限制数据库快照的数量

随着时间的变化创建一系列快照可捕获源数据库的连续快照。 每个数据库快照会一直保存在系统中,直到被显式删除。 因为每个快照会随着原始页的更新而不断增长,所以您可能想在创建新快照后通过删除旧的快照来节省空间。

创建数据库快照的语法如下

CREATE DATABASE database_snapshot_name

ON

(

NAME = logical_file_name,

FILENAME = 'os_file_name'

) [ ,...n]

AS SNAPSHOT OF source_database_name

[;]

其中,source_database_name 是源数据库,logical_file_name 是引用该文件时在 SQL Server 中使用的逻辑名称,os_file_name 是创建该文件时操作系统使用的路径和文件名,database_snapshot_name 是要将数据库恢复到的快照的名称。

在做数据库快照之前,我们应该先查看一下有多少个数据文件,从而指定不同数量的快照文件,如图。我这里只有一个数据文件,name = db01

a4548dd228fe554942ab350678efc0fd.png

然后执行下面的语句来创建db01数据库的快照,如图。

db01_data_1100是快照数据库的名称

name = db01表示要为db01这个数据文件创建快照

filename是快照数据库存放数据的稀疏文件,后面的ss后缀是随便起的

ff0aecaf3141818e0965583cf5cbde0f.png

创建完成后,如下图所示。

f0a636f5fd689e7bb0f70b93baa23943.png

==============================================================

从快照数据库中恢复

可以在做大量数据库操作之前先做一个快照,以便于在误删除数据的时候,可以使用快照来恢复。

5232d4f9392ef1a60b66f6e685621c57.png

==============================================================

删除数据库快照

删除数据库快照的方式和删除普通数据库没有什么区别。

1dae78f0ad16aee13dd53b141b511780.png

===============================================================

其实从表面上看,快照数据库和普通数据库没什么区别,唯一不同的是快照数据库采用的是稀疏文件,存放数据库创建快照以后所变化的数据,所以实际上快照数据库占用的空间比较少,原理可参考文章前面的图片。

下图的命令用来显示特定数据库的ID号,下图查找出db01的ID号为7,快照数据库db01_data_1100的ID号为9.

e353426b2f2baa0f77ee00afe2a244b3.png

通过下图的命令可以看到快照数据库和对应的用户数据库在大小上都是640,但是实际上快照数据库占用的空间要少得多。

921c2bb362738d7b5a58c4d1d8b323d6.png

通过下图可以看到快照数据库大小5M,实际占用为128KB。

2814180eac69a6b2ce4d6ac56ce31a18.png

================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值