1. sqlServer快照功能以及其查询如何操作
SQLServer数据库的快照只能通过SQL语句创建,以msdb数据库为例进行说明:
1、执行以下代码,看看MSDB数据库有多少数据文件
EXEC SP_HELPDB msdb
查询结果是完全一样的。
(如有帮助,请采纳,谢谢)
2. 数据库中的快照表什么意思呀,最近换了一个工作,是做p2p的,因为之前没接触过这方面的业务,不知道这个
数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致。
客户端可以查询数据库快照,这对于基于创建快照时的数据编写报表是很有用的。而且,如果以后源数据库损坏了,便可以将源数据库恢复到它在创建快照时的状态。
简单的说就像拍个照片 如果楼主用过虚拟机就应该非常清楚快照了
3. sqlserver with snapshot 有什么作用
数据库快照为你现有的数据库创建了一个数据库的壳,然后无论何时当数据页被修改的时候,改变也同时被写入稀疏文件(sparse file)当中。当人们获取数据的时候,数据中没有变化的部分是从原始数据库中得到的,而改变的部分则是从稀疏文件中获得。
稀疏文件和数据库快照
当数据库快照被创建的时候,第一次的创建是十分迅速的。因为实际上只是创建了一个用来记录被修改文件的壳。随着时间的推移,文件不断的被修改,这些修改页都将被写进稀疏文件。你的主数据库中修改的文件越多,就有越多的文件被写入稀疏文件。因此,有越来越多的磁盘空间被用来保存你的主数据库和快照的数据库,也增加了你服务器的磁盘输入输出的次数。
稀疏文件被写入大小为64KB的分组块当中。每一个分组块增量能包含8个大小为8KB的数据页。所以,每次在你的主数据库中有任何的数据改变,都会先把数据页拷贝到稀疏文件当中,然后再将主数据库中文件的变化写入稀疏文件。一旦数据页被写入稀疏文件,他们就不再需要被写出来。因为页面的全部内容被保护起来,让其处于当快照建立时的状态。
为了实现优化磁盘并消除磁盘冲突,在主数据库以外的独立的驱动器和阵列中创建稀疏文件是一个明知之举。原因有二:
其一,当快照被建立的时候,没有数据被写入稀疏文件。从快照进行的所有的数据访问实际上都是在主数据库文件当中的。随着时间的推移,你会通过在不同的阵列和磁盘上从主文件数据库读取未被修改过的文件和从稀疏文件读取修改过的数据的方法来减少输入输出的负担。
其二,根据你数据库数据的易变动性和数据变化的数量,你可以通过将在主数据库的读取工作和稀疏文件的写入工作分离来减少输入输出的瓶颈大小。
使用数据库快照
在这里你一定要记住的事情就是,你的查询请求访问的依然是你的主数据库。当初始的快照被建立的时候,其实仅建立了一个空的壳子。所有的数据请求都是在主数据库文件中被完成的。随着时间的流逝和文件不断地被修改,就有一些数据请求从初始的数据库文件中分离出来指向了稀疏文件。所以,尽管看上去它是一个独立的数据库,那些根本的数据仍然是源于主数据库。
鉴于此,你需要确定不要试图去进行你日常活动范围以外的查询。这样说吧,你创建了一个快照,接着你进行了读写的操作,并对每个人做了记录。当那些记录被执行查询操作时,他们仍然继续影响着主数据库。所以你要保证任何新的活动都不会影响主数据的活动。
另外,你需要记住到底有哪些数据是被写入稀疏文件里的,而不是认为所有可能的数据都被写进了稀疏文件。基本上,当快照被创立时,主数据库的大小就是快照稀疏文件的潜在大小。如果稀疏文件中的数据量已经达到甚至超过数据库的一半时,也许再创造一个数据库的完整拷贝来取代现有的快照是一个更好的主意。
综上所述,我认为,数据库快照是一个非常新的功能。我也希望在SQL Server2005的所有版本,而不仅仅在企业版和开发版中可以应用这个功能。有一个没有讨论的地方就是我们没有讨论有关对数据库镜像使用快照。其实,无论是镜像还是原数据库,快照都给了你最好的方法。因为镜像是离线的,你并不能访问那些数据,所以说无论是镜像还是原数据库,它都给了你最好的方法。花一些时间去理解快照是如何应用于你的环境中的,并且确认你监视着维护快照的影响以及通过快照进行的数据存储。
4. 系统还原中,快照与备份区别
快照与备份是两个不同的概念.
先来看快照.
快照,其本质类似于数据库的照片,也就是在某个特定时间点(创建快照的时间点)给数据库拍个照放在那儿.但是这个照片是一个新的数据库,可以应用SQL语句.
快照数据库里的数据是不变的.创建快照后,系统会对原数据库的所有数据页做个标识,如果数据页在创建快照后被修改,会复制一个数据页出来,没有修改的数据页则不会有快照(原数据库和快照数据库共用该数据页).
从这样来看,快照存在的时间越长,对系统的压力会越大(要维护的变化数据页太多).
一般来说,快照用在数据库的镜像机上,因为镜像机上的数据库永远是Restoring状态,可以在某个特定的时间点生成一个快照,这样就可以在镜像机上提供一个可访问的数据库,用来为数据仓库提供数据源比较合适.
再来看备份.
备份,其本质是一个副本.相当于在某个时间点把数据库里的所有对象内容都COPY一份,放到一个特定的文件里(备份文件,一般是.bak).
这个文件不是一个数据库,不能直接应用SQL,必须先通过还原的方式还原到一个数据库(可以是和原数据库名称一致,也可以是一个新的数据库),之后才能访问里面的数据.
因为备份的结果是文件,这个文件可以被COPY走,或者写入磁带(放到银行里),从而实现离线容灾.
此外,备份是个很复杂的概念,还涉及到数据库的恢复模型、日志处理等很复杂的东西,需要自己先系统学习下备份还原的相关概念。
5. linux中的快照技术的原理是什么
快照就是一种数据库技术。快照,其本质类似于数据库的照片,也就是在创建快照的时间点给数据库拍个照放在那儿。但是这个照片是一个新的数据库,可以应用SQL语句。快照数据库里的数据是不变的.创建快照后,系统会对原数据库的所有数据页做个标识,如果数据页在创建快照后被修改,会复制一个数据页出来,没有修改的数据页则不会有快照。因此快照存在的时间越长,要维护的数据页就越多,系统的压力也越来越大。所以不能用快照来替代备份,因为备份只是一个bak文件,它不是数据库,只有通过还原操作才能对它进行查询。
6. 对于虚拟机来说,快照和备份有什么异同之处
快照是数据存储的某一时刻的状态记录。
备份是数据存储的某一时刻的副本。
相同之处:都可以用于储存。
不同之处:
1、数据库存不同:备份,其本质是副本。它等同于COPY在某个时间点将数据库的所有内容的副本放入特定文件(备份文件,通常为.bak)。快照,基本上类似于数据库的照片,即在特定时间点(创建快照的点)拍摄数据库的照片。但是这张照片是一个可以应用于SQL语句的新数据库。
2、访问方式不同:快照数据库中的数据保持不变。创建快照后,系统将识别原始数据库的所有数据页。如果在创建快照后修改了数据页,则将复制数据页,并且将复制未经修改的数据页。将没有快照(原始数据库和快照数据库共享数据页)。此文件不是数据库,不能直接应用SQL,必须先通过还原(可以与原始数据库名称或新数据库相同)还原到数据库,然后才能访问其中的数据。
3、状态不同:备份的结果是一个文件,可以复制或写入磁带(在银行中)以进行脱机很难恢复。由于镜像上的数据库始终处于“还原”状态,因此可以在特定时间点生成快照,以便可以在镜像上提供可访问的数据库,以便为数据仓库提供数据源。