您现在的位置是:首页 > 文章详情文章详情

SQL SERVER 2012 误删数据恢复过程

会飞的猪 2018-09-17 450人已围观

简介白码驿站是一个面向开发者的知识共享社区,专注于为开发者打造一个纯净的技术交流社区(源码下载,免费在线图片压缩,jquery插件,插件下载,JS/CSS在线压缩。)-白码驿站

  在工作中偶尔会遇到某些人操作数据库的时候没有加条件, 导致数据库中的数据被删除或者数据被批量更新,这个可以说是灭顶之灾, 话虽如此, 不过还是得想尽一些办法去找回数据,下面就来看一下,如果误删数据应该怎么找回。 

环境搭建     

        首先我搭建了一个测试环境,数据库名:Demo   表名:FF_Test   ,顺便加了一些测试数据

SQL SERVER 2012 误删数据恢复过程


我们需要看一下数据库的恢复模式是不是“完整”,如果不是,需要改为“完整”(数据库右键-》属性-》选项


SQL SERVER 2012 误删数据恢复过程

一般情况下, 创建数据库默认就是“完整”模式, 如果不是的话, 估计还原数据是有难度的,

注:这一系列操作的前提是有数据库备份,不然的话就没啥戏了, 所以要养成备份数据库的习惯, 有时候真的可以救命


备份数据库

接下来,我先对测试库进行备份,备份类型为完成(数据库右键-》任务-》备份

SQL SERVER 2012 误删数据恢复过程


        这些工作完成之后, 我们就可以模拟实际操作了, 例如:不小心删除了表中的数据,或者将数据库的数据更新掉了,(注意:一定要记录下当时误操作的时间, 时间越准确, 还原数据的可能性就越大,还原数据的精确度就越高。

SQL SERVER 2012 误删数据恢复过程


我已经数据全部删除, 此时需要记录一下时间, 接下来就看一下数据如何恢复吧。


备份事务日志

    首先需要做一下事务日志备份,备份类型选择“事务日志”(数据库右键-》任务-》备份

SQL SERVER 2012 误删数据恢复过程


选项:需要勾选的选项如下图

SQL SERVER 2012 误删数据恢复过程


如果出现下图错误:请检查该数据库是否正在被占用,如果是请kill。

查询有哪些连接

                                        
 select * from master.sys.sysprocesses where dbid = db_id('Demo')
 --kill连接
  kill spid
                                

SQL SERVER 2012 误删数据恢复过程 错误


事务日志备份完成后,数据库图片显示为“正在还原...”,此时的数据库处于正在还原状态。

SQL SERVER 2012 误删数据恢复过程


还原数据库

接下来开始还原数据库完整备份 (数据库右键-》任务-》还原) 选择“还原文件和文件组

SQL SERVER 2012 误删数据恢复过程


选项勾选:

SQL SERVER 2012 误删数据恢复过程


接着还原事务日志(数据库右键-》任务-》还原) 选择“事务日志”,勾选最近备份的事务日志

image.png


时间点选择为误删数据的时间点之前就可以恢复出误删的数据,所以之前强调要查看一下时间

SQL SERVER 2012 误删数据恢复过程


选项:勾选如下,

SQL SERVER 2012 误删数据恢复过程


这样就坐等数据库还原成功

若提示还原成功, 但是数据库一致显示“正在还原...”,可以使用以下代码解决问题

                                        
restore database [数据库名称] with recovery
                                

执行结果:

SQL SERVER 2012 误删数据恢复过程





Tags: Sql Server 、 数据库恢复

很赞哦! (1)

文章评论

系统处理中...