删库不用跑路:Sql Server 利用日志恢复被删除的表及数据

相信不少人都有删库或被删库的经历。当事情发生后,是跑路,还是自首?相信每个人都没有想过这两个选项,大家首先想到的是如何恢复数据。

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
网络图,侵删

今天我们将进行一个实验,试图在删库后悄悄的恢复数据,然后假装什么都没发生,继续混点。

实验目的

通过Microsoft Sql Server 的数据库日志,恢复被删的表及数据。

此实验过程适用于以下场景:

  • 数据被删
  • 表被删
  • 错误的UPDATE
  • 错误的表结构更改

实验条件

  • Microsoft Sql Server 2008 R2
  • 数据库有很久以前的备份
  • 数据库最新的数据没有备份
  • 数据库还在,表没了
  • 数据库恢复模式是“完整”级别

实验过程

1、首先,我们创建一个数据库,创建一个表,弄点数据进去,并做一个备份。

特别强调,我们数据库的恢复模式应为“完整”,不要为了节省磁盘空间,而去收缩数据库日志,或把日志设为简单。

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
确保MSSQL的恢复模式起码是完整级别的
删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
输入测试数据
删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
备份

2、下面,我们假装业务在继续,又有新的数据产生了,这时候我们要记录一个时间点,即表或数据被删除前一刻的时间。

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
输入新的数据

记录时间点,稍微缓几分钟,然后删除数据,记住,这波数据是没有备份的。

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
删除

3、好了,假装有客户投诉发现数据异常,这时候我们发现数据不见了,库里面空如也,不要慌,先把日志备份一波。

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
备份日志

4、把以前的旧备份,还原为一个新的库,切记,不要弄到旧库上去了,不然哭不死你。

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
还原为一个新库

5、敲黑板,重点,还原的时候,在选项中选择图中红框标记的那项,这样我们才能在下一步中进行事务日志还原。

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
执行还原到最近的备份

6、这时候,新的数据库显示为(XXX正在还原),右键——任务——还原——事务日志

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
显示还原中,右键

7、选择我们刚才用SQL备份的那个日志,设置时间点为我们刚才记下的时间。还原


删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
还原事务日志
删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
还原时间点为:17:11:50

PS:由于实验途中被一波电话打断几小时,回来又重搞了一遍,有些图和内容有点不匹配,以后有空再改,见谅

删库不用跑路:Sql Server 利用日志恢复被删除的表及数据
数据回来了
上一篇:在树莓派上借助Mono + Jexus 布署 .Net 4.0 WebForm应用


下一篇:Influxdb 安装