虚拟机数据恢复—通过拼接数据库页碎片的方式恢复数据库的数据恢复案例
虚拟机数据恢复环境:
某品牌服务器通过同品牌某型号的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跟懒加载类似,只有再说鼠标离开光标的时候才会触发,也就是说在input事件的oninput书法的时候不会赋值,当onch…...
Oracle里面,with ... as 用法介绍
在Oracle数据库中,WITH AS 子句(也称为公用表表达式,CTE, Common Table Expression)是一种在查询中定义临时结果集的方法。这个临时结果集可以在后续的查询中被引用,就像是一个临时的表或视图一样。使用 WITH AS 子句可…...
一个简单的Qt Console Application计算练习程序
初步体验Qt Creator 用途:练习20以内2位数乘法速算的程序 功能1:支持用户设定题目数量 std::cout << "请输入本次练习题目数量:";int numProblems 0;std::string num;std::cin >> num;try {numProblems std::stoi(…...
windows文件拷贝给wsl2的Ubuntu
参考: 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 中的组件规划管脚时,请将引脚放置在同一个 SLR 中。例如,将器件的 DNA 信息作为外部接口的一部分 时,请将该接口的引脚放置在 DNA_PORT 所在的主 SLR 中。其它考虑因素包括如下: • 把…...
Lua环境安装
软考鸭微信小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 Lua是一种轻量级、小巧且易于嵌入应用程序的脚本语言,广泛用于游戏开发、Web开发、自动化脚本等领域。本文将详细介绍如何在不同操作系统上安装L…...
浏览器控制的无线开关
esp32-c3 作为HTTP server 控制led 灯。服务器注册两个uri 。一个"/open" 控制开,一个"/close"控制关。下一步再用一片c3作为客户端,运行http client 发送/open. /Close 模拟浏览器,控制led. 其实只要用手机或pc或平…...
Docker部署SSM项目及避坑指南
#又踩坑了,这里记录一下,以免日后忘记 前言:本来以为用docker部署个项目很轻松,嗯结果,又踩坑了,这里记录一个完整版。话不多说,开整。 第一步: 用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之后,每次打开终端,总是显示正在使用默认anaconda中的base环境,如下如所示: 取消该默认设置,打开home目录下的.condarc文件,在末尾添加如下命令: auto_activate_base: fa…...
一站式屏幕神器eSearch:如何5分钟打造你的智能工作流?
一站式屏幕神器eSearch:如何5分钟打造你的智能工作流? 【免费下载链接】eSearch 截屏 离线OCR 搜索翻译 以图搜图 贴图 录屏 万向滚动截屏 屏幕翻译 Screenshot Offline OCR Search Translate Search for picture Paste the picture on the screen Scree…...
从取证到防御:实战解析BadUSB攻击与USB流量异常检测(Wireshark实战)
从取证到防御:实战解析BadUSB攻击与USB流量异常检测(Wireshark实战) 在企业内网安全防护中,USB设备带来的威胁往往被低估。去年某金融机构遭遇的供应链攻击事件中,攻击者通过伪装成键盘的BadUSB设备,在3分钟…...
Umi-OCR终极指南:3分钟掌握免费离线OCR文字识别
Umi-OCR终极指南:3分钟掌握免费离线OCR文字识别 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …...
如何用XHS-Downloader解决内容采集难题?3大维度提升效率90%
如何用XHS-Downloader解决内容采集难题?3大维度提升效率90% 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接…...
别再手动改daemon.json了!1Panel面板里一键配置Docker国内镜像源(附最新可用源列表)
1Panel面板实战:3分钟搞定Docker国内镜像加速配置 刚部署完1Panel的新用户总会遇到一个经典问题——Docker拉取镜像慢得像蜗牛爬。传统解决方案是手动编辑daemon.json文件,但如今有了更优雅的选择。作为一款现代化服务器管理面板,1Panel将复杂…...
Blender 3MF插件终极指南:从零开始掌握3D打印文件格式
Blender 3MF插件终极指南:从零开始掌握3D打印文件格式 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 3MF(3D Manufacturing Format)格…...
像素风AI工具体验:像素史诗智识终端,让研究变得有趣又高效
像素风AI工具体验:像素史诗智识终端,让研究变得有趣又高效 1. 引言:当科研遇上像素冒险 想象一下:你是一位勇者,站在像素风格的城堡前,准备开始一场史诗般的冒险。但这次,你的武器不是剑与盾&…...
突破内容壁垒:5大核心优势解锁知识自由
突破内容壁垒:5大核心优势解锁知识自由 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的数字时代,付费墙已成为获取优质内容的主要障碍。无论是学术…...
实战-EdgeBoard赛事卡:从零部署飞桨模型到智能车竞赛
1. EdgeBoard赛事卡开箱与环境准备 第一次拿到EdgeBoard赛事专用卡时,这块巴掌大的小盒子让我有点怀疑——这么小的板子真能跑动智能车竞赛需要的视觉模型吗?拆开包装后发现,除了板卡本体,配件只有一根Type-C线,确实符…...
STEP3-VL-10B实际作品集:MMBench 92.05分视觉识别能力高清图文输出示例
STEP3-VL-10B实际作品集:MMBench 92.05分视觉识别能力高清图文输出示例 1. 引言:当AI“看懂”了世界 你有没有想过,让AI像人一样“看懂”一张图片,到底有多难? 这不仅仅是识别出图片里有什么东西那么简单。比如给你…...
