SQL Server如何还原误删除的数据-操作篇(一)

一 、前期准备

1、需要保证数据库的恢复模式为【大容量日志】或【完整】,不能为【简单】。具体操作如下:

选中需要还原数据的数据库,右键【属性】——【选项】——将右侧的恢复模式选为【完整】或【大容量日志】(建议选为【完整】),点击确认即可。如下图1,图2

SQL Server如何还原误删除的数据-操作篇(一)


图1

SQL Server如何还原误删除的数据-操作篇(一)

图2

同时也可以用脚本查看当前数据库的恢复模式:

SELECT recovery_model,recovery_model_desc
FROM sys.databases
WHERE name ='AdventureWorks'

结果如图3:

  SQL Server如何还原误删除的数据-操作篇(一)

图3

其中的FULL就代表【完整】恢复模式的意思。


2、至少完整备份一次数据库。因为所有类型的备份都基于完整备份,如果没有一次完整备份,其他类型的备份都是多余的,所以在这里强调一下,在创建完一个新数据库之后,强烈建议甚至做一次完整备份,这里我们先演示一次完整备份。

将已打开的页面全部关闭,右键AdventureWorks——【任务】——【备份】,在弹出的对话框中进行配置,如图4:


SQL Server如何还原误删除的数据-操作篇(一)

图4

点击确定即可开始备份,待备份完成弹出备份成功我们就完成了一次完整备份。

注意:如果有用户在使用当前数据库AdventureWorks,则会一直卡在备份界面,所以在操作前请务必将所有查询页面关闭。


备份完成后可以查询刚才备份的文件

SELECT  database_name,recovery_model,name,backup_finishi_date
FROM msdb.dbo.backupset

结果如图5:



SQL Server如何还原误删除的数据-操作篇(一)

图5


二、建立测试数据

我们在AdventureWorks下新建一个TEST表,并插入一些测试数据。

USE AdventureWorks
GO
IF OBJECT_ID('TEST') IS NOT NULL
   DROP TABLE TEST
GO
CREATE TABLE TEST
(
ID VARCHAR(10),
TNAME NVARCHAR(20),
AGE INT
)
INSERT INTO dbo.TEST
VALUES  ('1001',N'张三',20),
 ('1002',N'李四',23),
 ('1003',N'王五',21),
 ('1004',N'马六',22),
 ('1005',N'赵七',20),
 ('1006',N'宋一',19),
 ('1007',N'刘二',22)

查看一下表TEST里的内容,如图6:


  SQL Server如何还原误删除的数据-操作篇(一)

图6


然后来做个删除操作,为了定位是什么时候发生的,我加了一个WAITFOR 命令,让它在某个具体时间发生,这样恢复的时候就有准确性:

USE AdventureWorks
GO
WAITFOR TIME '16:09'
DELETE FROM dbo.TEST


然后再来看TEST表中的数据,如图7:

  SQL Server如何还原误删除的数据-操作篇(一)

图7



上一篇:CDN行业未来的发展空间及市场格局


下一篇:Linux SendMail发送邮件失败诊断案例(二)