sqlserver数据库快照


数据库快照就像是对数据库再某一时刻的照片,数据库快照提供了源数据库再某一时刻的一种只读,静态试图。

当对数据库创建了快照时,该数据库快照就是源数据库再那时刻的静态情况,不管数据库以后发生什么变化,

该数据库快照不会有任何变化。

 

对于创建了快照的数据库来说,在使用时存在以下一些限制:

1 不允许删除,还原或分离源数据库。

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

3 源数据库性能会降低。

4 源数据库必须处于在线状态。

 

创建数据库快照:

create database database_snapshot_name
on
(
      name = logical_file_name,
      filename = 'os_file_name'
) [,...n]
as snapshot of source_databaee_name

其中,database_snapshot_name 用于指定数据库快照的名称,这个名称必须符合数据库的命名规则,而且必须具有唯一性

as snapshot of 用于指定源数据库的名称。

 

例如;为【学生成绩管理系统】数据库创建数据库快照

create database 学生成绩管理系统_快照0907
on
(
       name = 学生成绩管理系统,
       filename = 'D:\SQL Server\DATABASE\学生成绩管理系统_快照0907.mdf'
)
as snapshot of 学生成绩管理系统

 

当源数据库出错或者被损坏时,可通过数据库快照来恢复数据库到创建快照时的状态,此时恢复的数据会覆盖原来的数据库,

执行恢复操作要求对源数据库具有 restore database 权限。

restore database database_name from database_snapshop=database_snapshot_name


restore database 学生成绩管理系统 from database_snapshop=学生成绩管理系统_快照0907
go

 

posted @ 2020-07-20 16:47  Struggle_Rui  阅读(699)  评论(0编辑  收藏  举报