背景关键词:Hyper-V ,VHDX ,HDD ,SqlServer ,删库
事件经过:昨天同事误操作右键删除了 SqlServer 中的开发数据库,无备份。mdf 文件超过 10G 。发现之后第一时间把这台虚拟机关机了。
恢复过程:
DiskGenius
挂载 vhdx 尝试恢复,未找到被删除的 mdf 及 ldf 文件。easyrecovery
尝试恢复,选择分区,勾选深度扫描,在指定分区未找到被删除文件。easyrecovery
扫描整个 vhdx 磁盘,目前正在跑。请问大家有没有类似经历,求方案,先谢各位大佬了
1
bootvue 14 天前
放弃吧
|
2
SS945 14 天前
同事(是自己吗)
|
![]() |
5
wyntalgeer 14 天前
从生产拉一份得了,正好缓解一下开发生产不同步
|
![]() |
6
dabao OP @wyntalgeer 还没有生产
|
7
sir283 14 天前 via Android
去咸鱼找专门搞数据恢复的团队搞,但是比较贵。你肯定接受不了,所以,跟你那个同事一起,赶紧提桶跑路吧。
|
![]() |
8
Oa 14 天前 ![]() 各种数据恢复软件都试试吧。比如 SysTools Hyper-V Recovery😆
|
![]() |
9
wyntalgeer 14 天前
@dabao #6 啊?
|
![]() |
10
newaccount 14 天前
小文件还能碰碰运气,10G……
|
![]() |
11
knva 14 天前
10G 洗洗睡吧
|
12
i8086 14 天前
Hyper-V 有没检查点?先看看这个。
|
![]() |
15
dabao OP @newaccount 是啊,换了三四个恢复工具都找不到,其实不是 10G ,是 36G
|
18
liuidetmks 14 天前
开发数据库,数据很重要吗?
自己根据业务写一些垃圾数据可行吗 |
![]() |
19
dabao OP @liuidetmks ETL 跑了好几个月
|
![]() |
20
dabao OP @liuidetmks 问题还不是数据,数据可以重新跑,主要是表结构没了
|
![]() |
21
Immortal 14 天前
表结构没法通过代码反推吗
|
22
han1988 14 天前
丢数据记住不要关机。有专业公司可以恢复
|
![]() |
23
rlds 14 天前
估计难搞,按理来说同一块硬盘上的东西都得停止而不只是停这一个虚拟机。
|
24
webluoye 14 天前
表结构没有 git 么
|
![]() |
25
flynaj 14 天前 via Android
固态硬盘就不用试了,神仙来了也没有用
|
26
qyxx 14 天前
虚拟机磁盘格式、还是 vhdx 这种受管理的,应该难。 裸磁盘或者 raw 磁盘文件还机会大一点。
|
![]() |
27
yolee599 14 天前 via Android
虚拟机…那大概率没救了!
|
![]() |
28
yjd 14 天前
如上面说的,要整个盘停。如果 vhdx 不是一次性分配被复写到就难。我用过 UFS Explorer 最强但也不便宜,只有他能认我的 r10+vmfs+vmdk
|
![]() |
29
ruiy 14 天前
现在还有时间,可以收拾收拾东西。
|
![]() |
30
orangie 14 天前 via iPhone
开发环境,不必理会
|
![]() |
31
opengps 14 天前
小概率事件,很有可能这 10G 的存储已经被破坏,恢复了也不能用
|
![]() |
32
JKeita 14 天前
你们表结构都不存文档里吗
|
33
lhsakudsgdsik 14 天前
年初的时候,客户的生产 mysql 数据库服务器的磁盘直接被人格式化了,根本恢复不了,只能找恢复公司,整盘恢复大概 5000 ,恢复之后 mysql 先是起不来并且还是很多表还是没数据,然后一个库 2000 修复了快一个月才搞定,整个过程非常头大,还是放弃吧建议
|
34
lyle 14 天前
十年前曾在生产环境误删数据,当时尝试用 EasyRecovery 之类的软件恢复无果,最终找据恢复公司解决了。记得他们通过远程使用 WinHex 对磁盘的剩余空间镜像,大概编了一个小程序读取数据库数据包头完成恢复。但数据库运行在物理机上,不确定 VHDX 格式是否仍有恢复可能性。
|
![]() |
35
hugebug 14 天前
表结构都没有的话 说实话 有点不规范啊
|
![]() |
36
liuliancao 14 天前
问了 deepseek 推荐这个 R-Studio 建议先 dd 备份吧 然后再考虑操作 sqlserver 是 windows 的是吧
|
37
yinmin 14 天前 via iPhone
pve 、pd 虚拟机里删文件会自动 trim 释放磁盘空间,我记得 vhdx 里删文件好像是不会自动 trim 数据的,并且 ntfs 是日志型,我感觉找专业公司是有恢复出来的可能性,建议 OP 找找专业公司。
|
38
12345xw 14 天前
推荐 pc3000 ,B 站上的恢复数据 up 都用这个
|
40
yinmin 14 天前 via iPhone
题外话,给 hyper-v 的建议,如何备份:
1. 在 windows server 上新加一块备份专用 ssd 硬盘,也可以找一台 win server 的共享目录 2. 为备份专用磁盘(或者共享目录所在磁盘)开启 windows server 的磁盘删除重复数据功能 3. hyper-v 右键点击虚拟机,选择“导出”(虚拟机运行也可备份)到备份专用 ssd 4. 建议每周备份一次,可以在“任务计划程序”里定期运行 powershell 指令自动导出虚拟机 虚拟机开机备份,恢复出来的状态类似虚拟机备份时刻异常重启。由于启用了“磁盘删除重复数据”功能,你根本不用删历史备份,1 个 200GB 虚拟机每周备份一次保留 2 年历史备份,可能只占用了磁盘 250-300GB 空间。 |
41
yinmin 14 天前 via iPhone ![]() 接#40 如果使用共享目录作为备份目标,优选 windows server 的共享目录,因为群晖等一众 nas 只有非常高端的企业型号才有“删除重复数据”功能,最便宜的能开启“删重”功能的,好像就是 win server 吧。
|
![]() |
42
lycoo 14 天前
开发库难道就没有导出过全库 sql ?或者任何一个备份。太奇怪了
|
43
nm1st 14 天前
表结构都没有 这合理吗
|
![]() |
44
iceecream 14 天前
Rsstudio 试试。很好用,但是恢复出来的文件,在 mssql 上导入可能有逻辑问题
|
![]() |
45
chrawsl 14 天前
hyper-v 不打快照的吗
|
46
allendavis 14 天前
10G 了都没有一个备份或者表结构,说明不重要,没事儿继续造[doge]
|
![]() |
47
qping 14 天前 via iPhone ![]() 草台班子
|
48
wwhc 13 天前
遇到这种情况,首先应该做的关机,用 linux 启动服务器,使用 dd 克隆物理硬盘/ssd
|
![]() |
49
GuangXiN 13 天前
没有一天一个快照这虚拟机是白用了
|
50
2022study 13 天前
如果从物理机器的文件系统中删除的用恢复软件还有些搞头,虚拟机的硬盘就不好讲了,如果是通过数据库管理软件删除的,那就基本没戏了。
|
![]() |
51
iamzcr 13 天前
不是,你们表结构居然代码没 migrations 相关程序?你们更新咋办,直接手动去生产环境加字段?
|