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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 相信不少人都有删库或被删库的经历。当事情发生后,是跑路,还是自首?相信每个人都没有想过这两个选项,大家首先想到的是如何恢复数据。网络图,侵删今天我们将进行一个实验,试图在删库后悄悄的恢复数据,然后假装什么都没发生,继续混点。

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

img_7e549d8442df58f05b3dd3a330f43b49.png
网络图,侵删

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

实验目的

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

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

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

实验条件

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

实验过程

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

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

img_8ab9f9e03eac9fcd4fc17bd697130207.png
确保MSSQL的恢复模式起码是完整级别的
img_926e4abb5cf0ff4386272bc95313e22b.png
输入测试数据
img_721c6cfb93f2e00f4c544efb5358063c.png
备份

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

img_69ffd5d47860de1c9e740cd55b57c462.png
输入新的数据

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

img_e08ef386e4c3e00046246875e03b774e.png
删除

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

img_3aa37db2c370ed74d801e207741c54d0.png
备份日志

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

img_2bde52b6a8e4417738411639e6fdd291.png
还原为一个新库

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

img_b7a43474c091f76b83393f27a6a51739.png
执行还原到最近的备份

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

img_d9a1248b5fd598a6ce82c5fe01c2a336.png
显示还原中,右键

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


img_5b467432c63479b986707bc287e10f6d.png
还原事务日志
img_b234ec2d03b09896536d04910eb4c122.png
还原时间点为:17:11:50

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

img_df38c509af496b7eb719f7e3a18085a5.png
数据回来了
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
3月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
简介:本文整理自阿里云高级技术专家李麟在Flink Forward Asia 2025新加坡站的分享,介绍了Flink 2.1 SQL在实时数据处理与AI融合方面的关键进展,包括AI函数集成、Join优化及未来发展方向,助力构建高效实时AI管道。
780 43
|
2月前
|
SQL 传感器 人工智能
生成更智能,调试更轻松,SLS SQL Copilot 焕新登场!
阿里云日志服务(SLS)推出智能分析助手 SLS SQL Copilot,融合 AI 技术与日志分析最佳实践,将自然语言转换为 SQL 查询,降低使用门槛,提升查询效率。其具备原生集成、智能语义理解与高效执行能力,助力用户快速洞察日志数据价值,实现智能化日志分析新体验。
212 1
|
3月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
278 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
4月前
|
SQL
SQL如何只让特定列中只显示一行数据
SQL如何只让特定列中只显示一行数据
|
2月前
|
SQL 传感器 人工智能
生成更智能,调试更轻松,SLS SQL Copilot 焕新登场!
本文是阿里云日志服务(SLS)首次对外系统性地揭秘 SLS SQL Copilot 背后的产品理念、架构设计与核心技术积淀。我们将带你深入了解,这一智能分析助手如何从用户真实需求出发,融合前沿 AI 能力与 SLS 十余年日志分析最佳实践,打造出面向未来的智能化日志分析体验。
312 28
|
1月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
180 6
|
4月前
高性能网络库设计之日志组件
高性能网络库设计之日志组件
173 2
|
4月前
|
SQL
SQL中如何删除指定查询出来的数据
SQL中如何删除指定查询出来的数据
|
4月前
|
SQL 关系型数据库 MySQL
SQL如何对不同表的数据进行更新
本文介绍了如何将表A的Col1数据更新到表B的Col1中,分别提供了Microsoft SQL和MySQL的实现方法,并探讨了多表合并后更新的优化方式,如使用MERGE语句提升效率。适用于数据库数据同步与批量更新场景。
下一篇
oss云网关配置