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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
日志服务 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
数据回来了
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
SQL 安全 数据处理
揭秘数据脱敏神器:Flink SQL的神秘力量,守护你的数据宝藏!
【9月更文挑战第7天】在大数据时代,数据管理和处理尤为重要,尤其在保障数据安全与隐私方面。本文探讨如何利用Flink SQL实现数据脱敏,为实时数据处理提供有效的隐私保护方案。数据脱敏涉及在处理、存储或传输前对敏感数据进行加密、遮蔽或替换,以遵守数据保护法规(如GDPR)。Flink SQL通过内置函数和表达式支持这一过程。
56 2
|
7天前
|
存储 运维 监控
超级好用的C++实用库之日志类
超级好用的C++实用库之日志类
14 0
|
1月前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
134 3
|
9天前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
1月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
61 0
|
2月前
|
Java 网络架构 数据格式
Struts 2 携手 RESTful:颠覆传统,重塑Web服务新纪元的史诗级组合!
【8月更文挑战第31天】《Struts 2 与 RESTful 设计:构建现代 Web 服务》介绍如何结合 Struts 2 框架与 RESTful 设计理念,构建高效、可扩展的 Web 服务。Struts 2 的 REST 插件提供简洁的 API 和约定,使开发者能快速创建符合 REST 规范的服务接口。通过在 `struts.xml` 中配置 `<rest>` 命名空间并使用注解如 `@Action`、`@GET` 等,可轻松定义服务路径及 HTTP 方法。
38 0
|
2月前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
62 0
|
2月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
38 0
|
2月前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
下一篇
无影云桌面