sql数据库恢复数据_ SQL数据库的三种备份和恢复

Դ腾讯新闻

ߣ关键词优化

13

2021-11-07 12:43:07

什么是快照?

数据库快照是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

结果:

sql数据库恢复数据(sql数据库三种备份和恢复)

然后我们立即创建一个快照,它也是由CREATE DATABASE语句创建的,如下所示:

创建数据库快照

执行以下语句创建快照

创建snapshot _ test _ shot on(-是源数据库名称=snapshot _ test,-snapshot文件地址文件名=' d : sqldata snapshot _ test _ shot . ss ')的逻辑名称,作为snapshot _ test的快照;

结果:

sql数据库恢复数据(sql数据库三种备份和恢复)

现在的快照应该与我们的新数据库完全相同。您可以通过sql server的对象浏览器查看数据库快照,我们可以使用[快照库名称]查询数据库快照。

使用快照_测试_快照;goSELECT * FROM dbo.test

结果:

sql数据库恢复数据(sql数据库三种备份和恢复)

删除测试库数据

删除测试库数据

让我们删除测试数据库中的数据。

使用快照_测试;goDELETE FROM dbo.test

结果:

sql数据库恢复数据(sql数据库三种备份和恢复)

使用快照恢复数据库。

上面的删除是我们模拟误删了数据库中的数据,但幸运的是我们拍了一张数据库的快照。您可以通过快照恢复刚刚被错误删除的数据。

-语法从database _ snapshot还原数据库db _ name=' db _ snapshot _ name '

我们按照上面的语法还原。

从数据库快照恢复数据库快照测试='快照测试快照'

执行完上面的恢复语句后,让我们再次查询测试库中的表。

使用快照_测试;goSELECT * FROM测试

结果:

数据回来了,证明删除的数据可以通过创建快照来恢复。

注意:

1.快照是只读的,一旦创建就不能修改。

2.快照只能还原数据库,不能还原指定的表。

3.为了防止意外删除,快照必须在数据插入或更新到数据库之后创建,否则,如果快照是在插入或更新之前创建的,则插入或更新的数据在删除后将无法恢复。

4.快照通常用于计划任务,并且可以定期创建不同的快照以防止数据丢失。

删除数据库快照

语法与删除数据库相同。

删除数据库快照_测试_快照

结果:

sql数据库恢复数据(sql数据库三种备份和恢复)

数据库下没有快照,这意味着它们已被删除。

应用场景

数据库快照在MSDN的典型应用有

1)维护历史数据以生成报告。

2)使用维护的镜像数据库卸载报告,以实现可用性目标。

3)保护数据免受管理错误的影响。

4)保护数据免受用户错误的影响。

sql数据库恢复数据(sql数据库三种备份和恢复)

数据分析知识

Ai数据学习她

佭ϴý Ѷ Media8ý

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部