对于虚拟机来说,快照和备份有什么异同之处?

对于虚拟机来说,快照和备份有什么异同之处?,第1张

快照是数据存储的某一时刻的状态记录。

备份是数据存储的某一时刻的副本。

一、相同之处:都可以用于储存。

二、不同之处:

1、数据库存不同

备份,本质上是一个副本。这等效于COPY在某个时间点将数据库中所有内容的副本放入特定文件(备份文件,通常是.bak)中。

快照基本上类似于数据库的照片,即在特定时间点(创建快照的时间点)拍摄的数据库照片。但是这张照片是可以应用于SQL语句的新数据库。

2、访问方式不同

快照数据库中的数据保持不变。创建快照后,将标识原始数据库的所有数据页。如果在创建快照后修改了数据页面,则将复制数据页,并复制未修改的数据页,将没有快照(原始数据库和快照数据库共享数据页)。

该文件不是数据库,不能直接应用SQL。必须先通过还原(可以与原始数据库名称或新数据库相同)还原到数据库,然后才能访问其中的数据。

3、状态不同

备份的结果是一个文件,可以将其复制或写入磁带(银行中)以进行脱机很难恢复。由于镜像服务器上的数据库始终处于“还原”状态,因此可以在特定的时间点生成快照,以便可以在镜像服务器上提供可访问的数据库,从而为数据仓库提供数据源。

参考资料来源:

百度百科-快照

百度百科-备份

任何能创建数据库的用户都可以创建数据库快照。创建快照的唯一方式是使用 Transact-SQL。注意:有关命名数据库快照、设置创建数据库快照的时间和限制数据库快照成员的注意事项,请参阅创建数据库快照。创建数据库快照根据源数据库的当前大小,确保有足够的磁盘空间存放数据库快照。数据库快照的最大大小为创建快照时源数据库的大小。使用 AS SNAPSHOT OF 子句对文件执行 CREATE DATABASE 语句。创建快照需要指定源数据库的每个数据库文件的逻辑名称。有关创建数据库快照的语法的正式说明,请参阅 CREATE DATABASE (Transact-SQL)。注意:创建数据库快照时,CREATE DATABASE 语句中不允许有日志文件、脱机文件、还原文件和不起作用的文件。示例本节包含创建数据库快照的示例。A. 对 AdventureWorks 数据库创建快照此示例对AdventureWorks数据库创建数据库快照。快照名称AdventureWorks_dbss_1800及其稀疏文件的名称AdventureWorks_data_1800.ss指明了创建时间 6 P.M.(1800 小时)。复制代码CREATE DATABASE AdventureWorks_dbss1800 ON( NAME = AdventureWorks_Data, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss' )AS SNAPSHOT OF AdventureWorksGO注意:示例中随意使用了扩展名 .ss。B. 对 Sales 数据库创建快照此示例对Sales数据库创建数据库快照sales_snapshot1200。

SQLServer数据库的快照只能通过SQL语句创建,以msdb数据库为例进行说明:

1、执行以下代码,看看MSDB数据库有多少数据文件

EXEC SP_HELPDB msdb

2、为每一个数据文件创建快照,代码如下:

create database snap_MSDBData_1811221202

ON ( NAME = MSDBData, FILENAME= 'D:\userdata\temp\Snap_MSDBData.snap')

AS SNAPSHOT OF MSDB

3、在“数据库快照”那里就可以看到刚刚创建snap_MSDBData_1811221202这个快照了,对比一下快照和原库,内容是一样的

4、数据库快照其实也是一个数据库,可以在上面执行任何SQL语句,我们执行一个查询语句看看效果

SELECT *  FROM [MSDB].[dbo].[MSdbms]

SELECT *  FROM [snap_MSDBData_1811221202].[dbo].[MSdbms]

查询结果是完全一样的。

(如有帮助,请采纳,谢谢)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10011877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存