当前位置: 首页 > news >正文

虚拟机数据恢复—通过拼接数据库页碎片的方式恢复数据库的数据恢复案例

虚拟机数据恢复环境:
某品牌服务器通过同品牌某型号的RAID卡,将4块STAT硬盘为一组RAID10阵列。上层部署XenServer虚拟化平台,虚拟机安装Windows Server系统,每台虚拟机有两个虚拟机磁盘(系统盘 + 数据盘),虚拟机作为Web服务器使用。

虚拟机故障&分析:
机房异常断电导致服务器中一台VPS(XenServer虚拟机)不可用,虚拟磁盘文件丢失。
故障服务器中的XenServer虚拟机的磁盘是通过LVM管理的。每台虚拟机的虚拟磁盘都是一个LV,且虚拟磁盘为精简模式。LVM的相关信息在XenServer中都有记载。查看“/etc/lvm/backup/“目录下关于LVM的相关信息,没有发现损坏的虚拟磁盘的信息,因此可以判断出LVM的信息已经被更新。只能通过分析底层看是否能找到未被更新的LVM信息,结果还真在底层发现了未被更新的LVM信息。

根据未被更新的LVM信息定位到虚拟磁盘的数据区域,但是发现该区域的数据已被破坏。虚拟磁盘被破坏导致虚拟机操作系统和数据丢失。这类情况发生通常是由于虚拟机遭遇网络攻击或虚拟机被入侵后留下的恶意程序造成的。仔细观察发现虽然该区域中很多数据被破坏,但是发现很多数据库的页碎片,因此可以尝试将数据库的页碎片拼接成一个完整可用的数据库。

虚拟机数据恢复过程:
1、分析底层,根据RAR压缩包的结构找到很多压缩包的数据开始位置。由于RAR压缩包文件的第一个扇区会记录此RAR压缩包文件的文件名,因此可以根据用户方提供的备份数据库的压缩包文件名匹配目前从压缩包第一个扇区找到的文件名,通过这种方式可以找到备份数据库压缩包的开始位置。找到备份数据库压缩包的开始位置后,仔细分析这片区域的数据,然后将此区域的数据恢复出来重命名为一个RAR格式的压缩文件。然后尝试解压此压缩包,但是解压报错。

经过数据恢复工程师的分析,确定解压报错的原因是部分数据被破坏了。尝试使用RAR的修复工具(设置为忽略错误)来解压数据。结果在解压出来的数据中只找到网站的部分代码,并没有找到数据库的备份文件。因此可以判断RAR压缩包中的数据库备份文件是损坏的。

2、根据SQLServer数据库的结构,在底层分析数据库的开始位置。SQLServer数据库的第9个页会记录本数据库的数据库名,因此可以通过用户方提供的数据库名称在底层定位数据库的开始位置。SQLServer数据库的每个页都会记录数据库页编号以及文件号,因此北亚企安数据恢复工程师根据上述SQLServer数据库特征编写程序在底层扫描符合数据库页的数据。
将扫描出来的数据库页碎片按照顺序重组成一个完整MDF文件,然后通过MDF校验程序检测这个MDF文件的完整性。

3、MDF文件检测没问题之后,数据恢复工程师搭建数据库环境,将重组的数据库附加到搭建好的数据库环境中。查询相关表数据是否正常以及最新数据是否存在。

4、使用用户方提供的网站代码搭建好环境,然后将恢复好的数据库结合网站进行验证,一切正常。用户方认可数据恢复结果。

相关文章:

虚拟机数据恢复—通过拼接数据库页碎片的方式恢复数据库的数据恢复案例

虚拟机数据恢复环境: 某品牌服务器通过同品牌某型号的RAID卡,将4块STAT硬盘为一组RAID10阵列。上层部署XenServer虚拟化平台,虚拟机安装Windows Server系统,每台虚拟机有两个虚拟机磁盘(系统盘 数据盘)&am…...

【vue】自封组件,基于vue2封装一个弹框组件

源码:https://download.csdn.net/download/galaxyJING/89913551...

ES6基础知识

一、定义变量的关键字let和const 1. let 定义变量的语法: let 变量名 值; 2. 和var定义变量的区别 1. 是否支持同一个作用域变量同名 var支持,let不支持 2. 是否支持预解析 var支持,let不支持 3. 是否会挂载在window对象…...

基于Multisim的模拟拔河游戏比赛设计与仿真

1.设计一个模拟拔河游戏比赛的逻辑电路 2.使用15个发光二极管表示绳子,开机后只有最中间的发光二极管亮。 3.比赛双方各持一个按钮,快速不断地按动按钮,产生脉冲,谁按的快,发光的二极管就向谁的方向移动,每…...

MyBatis 配置详解

在项目中经常会用到 mybatis 相关的一些配置,而在启动类项目工程中,一般会把 mybatis 配置文件单独写到 mybatis,yml 中,如下简单介绍下常用的 mybatis 配置 mybatis:configuration:call-setters-on-nulls: truemap-underscore-to-camel-case…...

研发运营一体化(DevOps)能力成熟度模型

目录 应用设计 安全风险管理 技术运 持续交付 敏捷开发管理 基于微服务的端到端持续交付流水线案例 应用设计 安全风险管理 技术运 持续交付...

躺平成长-利用kimi编辑助手帮助自己编程第二天

天有道,无常道,兵无常势。 {今天开始听歌(歌曲:青丝!)进行编程!} 尝试用ai帮助自己进行小程序的开发,同时最为关键,是无法能够完成相关的代码的记忆,所以我开…...

OpenSuse-搭建NFS-Server

在OpenSUSE上搭建NFS服务可以通过以下步骤完成: ### 1. 安装NFS服务器软件 首先,确保你已经安装了NFS服务器软件包。你可以使用zypper命令来安装: sudo zypper install nfs-kernel-server### 2. 配置NFS导出目录 编辑/etc/exports文件&#x…...

【数据结构与算法】之二分查找

二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。它通过比较数组中间元素与目标值来工作,从而将搜索范围缩小到一半,也称折半查找,是一种非常高效的工作于有序数组的查找算法。本文主要介绍二分查找…...

vue修饰符

表单修饰符 1、lazy <input type "text" v-model.lazy "value"> <p>{{value}}</p>lazy跟懒加载类似&#xff0c;只有再说鼠标离开光标的时候才会触发&#xff0c;也就是说在input事件的oninput书法的时候不会赋值&#xff0c;当onch…...

Oracle里面,with ... as 用法介绍

在Oracle数据库中&#xff0c;WITH AS 子句&#xff08;也称为公用表表达式&#xff0c;CTE, Common Table Expression&#xff09;是一种在查询中定义临时结果集的方法。这个临时结果集可以在后续的查询中被引用&#xff0c;就像是一个临时的表或视图一样。使用 WITH AS 子句可…...

一个简单的Qt Console Application计算练习程序

初步体验Qt Creator 用途&#xff1a;练习20以内2位数乘法速算的程序 功能1&#xff1a;支持用户设定题目数量 std::cout << "请输入本次练习题目数量&#xff1a;";int numProblems 0;std::string num;std::cin >> num;try {numProblems std::stoi(…...

windows文件拷贝给wsl2的Ubuntu

参考&#xff1a; windows文件如何直接拖拽到wsl中_win 移到文件到wsl-CSDN博客 cp -r /mnt/盘名/目标文件 要复制到wsl中的位置e.g.cp -r /mnt/d/byt5 /home Linux文件复制、移动、删除等操作命令_linux移动命令-CSDN博客 Linux 文件、文件夹的复制、移动、删除 - Be-myse…...

vivado 采用 SSI 器件进行设计

SSI 管脚的考虑因素 在为特定 SLR 中的组件规划管脚时&#xff0c;请将引脚放置在同一个 SLR 中。例如&#xff0c;将器件的 DNA 信息作为外部接口的一部分 时&#xff0c;请将该接口的引脚放置在 DNA_PORT 所在的主 SLR 中。其它考虑因素包括如下&#xff1a; • 把…...

Lua环境安装

软考鸭微信小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 Lua是一种轻量级、小巧且易于嵌入应用程序的脚本语言&#xff0c;广泛用于游戏开发、Web开发、自动化脚本等领域。本文将详细介绍如何在不同操作系统上安装L…...

浏览器控制的无线开关

esp32-c3 作为HTTP server 控制led 灯。服务器注册两个uri 。一个"/open" 控制开&#xff0c;一个"/close"控制关。下一步再用一片c3作为客户端&#xff0c;运行http client 发送/open. /Close 模拟浏览器&#xff0c;控制led. 其实只要用手机或pc或平…...

Docker部署SSM项目及避坑指南

#又踩坑了&#xff0c;这里记录一下&#xff0c;以免日后忘记 前言&#xff1a;本来以为用docker部署个项目很轻松&#xff0c;嗯结果&#xff0c;又踩坑了&#xff0c;这里记录一个完整版。话不多说&#xff0c;开整。 第一步&#xff1a; 用docker拉取MySQL和Tomcat&#…...

多线程代码案例:单例模式/阻塞队列/线程池/定时器

案例一.单例模式 单例模式是一种设计模式;类似于棋谱,有固定套路,针对一些特定场景可以给出一些比较好的解决方案; 只要按照设计模式来写代码,就可以保证代码不会太差,保证了代码的下限; --------------------------------------------------------------------------------…...

Ruby CGI Cookie

Ruby CGI Cookie 在Web开发中,Cookie是一种常用的技术,用于在用户浏览器和服务器之间存储和传递信息。Ruby作为一种流行的编程语言,提供了CGI(Common Gateway Interface)库来处理Cookie。本文将详细介绍如何在Ruby中使用CGI库来创建、读取、修改和删除Cookie。 Cookie的…...

linux中取消anaconda默认使用base环境

在linux新安装anaconda之后&#xff0c;每次打开终端&#xff0c;总是显示正在使用默认anaconda中的base环境&#xff0c;如下如所示&#xff1a; 取消该默认设置&#xff0c;打开home目录下的.condarc文件&#xff0c;在末尾添加如下命令&#xff1a; auto_activate_base: fa…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...