什么是快照?
数据库快照是sql server 2005的一项新功能。MSDN将其定义为:
数据库快照是数据库(称为“源数据库”)的只读静态视图。创建时,每个数据库快照在事务上与源数据库一致。创建数据库快照时,源数据库通常有打开的事务。在使用快照之前,打开的事务将回滚,以使数据库快照在事务上保持一致。
创建示例数据库
使用MASTERGOCREATE DATABASE[Snapshot _ Test]ON PRIMARY(NAME=N ' Snapshot _ Test ',-database name filename=n' c:程序文件Microsoft SQL server MSSQL l 13 . MSSQL server MSSQL datasnapshot _ Test . MDF ',-数据文件存储位置和数据文件名大小=3072KB,-初始容量MAXSIZE=UNLIMITED,-最大容量FILEGROWTH=1024KB -增长容量)LOG ON(NAME=N'Snapshot_Test_log ',filename=n' c:程序文件Microsoft SQL servermssqlservermssqlsdatasnapshot _ Test _ log . ldf ',SIZE=504KB,MAXSIZE=UNLIMITED,FILEgrowth=10%)COLLATE Chinese _ PRC _ CI _ ASGOEXEC dbo . sp _ dbcmptlevel @ dbname=N ' Snapshot _ Test ',@ new _ cmptlevel=130 gouse[Snapshot _ Test]GOSET ANSI _ S ongosett QUOTED _ IDENTIFIER ongorcrate TABLE[dbo]。[测试]([id] [int] NOT,[name] [nvarchar](50)整理中文_PRC_CI_AS NOT)开启[主要]GO
(提示:可以左右滑动代码)
也可以通过图形界面直接在SSMS创建测试数据库,这里不再赘述。在创建数据库之后,我们创建了一个新的测试表,我们首先将测试数据插入其中。如下所示:
使用快照_测试;goINSERT INTO TEST (id,name)值(1,‘hello 1’);插入测试(id,name)值(2,‘hello 2’);插入测试(id,name)值(3,‘hello 3’);插入测试(id,name)值(4,‘hello 4’);GOSELECT * FROM dbo.test
结果:
然后我们立即创建一个快照,它也是由CREATE DATABASE语句创建的,如下所示:
创建数据库快照
执行以下语句创建快照
创建snapshot _ test _ shot on(-是源数据库名称=snapshot _ test,-snapshot文件地址文件名=' d : sqldata snapshot _ test _ shot . ss ')的逻辑名称,作为snapshot _ test的快照;
结果:
现在的快照应该与我们的新数据库完全相同。您可以通过sql server的对象浏览器查看数据库快照,我们可以使用[快照库名称]查询数据库快照。
使用快照_测试_快照;goSELECT * FROM dbo.test
结果:
删除测试库数据
删除测试库数据
让我们删除测试数据库中的数据。
使用快照_测试;goDELETE FROM dbo.test
结果:
使用快照恢复数据库。
上面的删除是我们模拟误删了数据库中的数据,但幸运的是我们拍了一张数据库的快照。您可以通过快照恢复刚刚被错误删除的数据。
-语法从database _ snapshot还原数据库db _ name=' db _ snapshot _ name '
我们按照上面的语法还原。
从数据库快照恢复数据库快照测试='快照测试快照'
执行完上面的恢复语句后,让我们再次查询测试库中的表。
使用快照_测试;goSELECT * FROM测试
结果:
数据回来了,证明删除的数据可以通过创建快照来恢复。
注意:
1.快照是只读的,一旦创建就不能修改。
2.快照只能还原数据库,不能还原指定的表。
3.为了防止意外删除,快照必须在数据插入或更新到数据库之后创建,否则,如果快照是在插入或更新之前创建的,则插入或更新的数据在删除后将无法恢复。
4.快照通常用于计划任务,并且可以定期创建不同的快照以防止数据丢失。
删除数据库快照
语法与删除数据库相同。
删除数据库快照_测试_快照
结果:
数据库下没有快照,这意味着它们已被删除。
应用场景
数据库快照在MSDN的典型应用有
1)维护历史数据以生成报告。
2)使用维护的镜像数据库卸载报告,以实现可用性目标。
3)保护数据免受管理错误的影响。
4)保护数据免受用户错误的影响。
数据分析知识
Ai数据学习她