Articles of 数据恢复

ZPOOLreplace导出池中的有缺陷的磁盘

昨天,我把一个新的磁盘放到我的服务器上。 可悲的是,我没有在失败之前检查磁盘。 我使用命令zpool add nas /dev/disk/by-id/scsi-SATA_ST31500341AS_9VS27Z4M-part1将其添加到池中 之后不久,服务器的CPU负载几乎变成了无穷大,我甚至无法login。 所以我执行了硬重启(Alt + SysRq + b),但服务器无法启动。 (在GRUB出现后,大约5分钟没有发生什么事,然后关掉它,拿出新的磁盘,我启动并运行。 但现在,我遇到了问题,因为最后一个(新的)磁盘显示状态为“UNAVAIL”,因此无法访问所谓的“nas”池,并且由于没有镜像池,因此整个池都处于州UNAVAIL。 如果我再次放入磁盘并执行zpool online nas /dev/disk/by-id/scsi-SATA_ST31500341AS_9VS27Z4M-part1它不起作用,并告诉我“磁盘找不到”。 所以我尝试了一些从oracle-docs读取的可能性,并使用zpool export nas将其zpool export nas 。 现在,我甚至无法导入池。 zpool import nas -f cannot import 'nas': one or more devices is currently unavailable 如果我看zpool import ,它告诉我: pool: nas id: 3366469163144781663 state: UNAVAIL status: One or more devices are missing […]

我不小心丢弃了MySQL数据库

今天,我心不在焉,而不是丢掉我想写的数据库 drop database mysql; 现在我该怎么做!?! 我没有做任何事情,因为我没有结束我的会议。 幸运的是,这只是我的本地计算机没有真正的数据。 我应该删除MySQL数据文件夹? 我可以解开它吗? 有一个cmd我可以修复它吗? 有没有真正的问题,我什么都没有想到? – 编辑 – 好吧,这是我的服务器。 幸运的是我的服务器,而不是公司的服务器。 我只有网站没有人访问。 由于它是服务器,我每天有两次转储的网站几乎没有变化。 我试图使用我的转储脚本来转储分贝,但它有一个错误。 我认为它的好,没有被触及的日子,所以我试图恢复与此 gunzip < mybackup.sql.gz | mysql 我得到了错误 ERROR 1146 (42S02) at line 12: Table 'mysql.time_zone_name' doesn't exist 现在我不能恢复,我该怎么办?

从故障的SAS驱动器恢复数据? (RAID0 …是的,我知道)

我们有一个带有P400控制器的HP DL360服务器,它有一个RAID 0configuration的两个72GB 10K SAS驱动器(是的,我知道… RAID 0)。 驱动器的HP型号是DG072A8B54 最近,两个驱动器中的一个似乎失败了,不再被检测到。 在HP iLO控制台中,我们看到: POST Error: 1784-Drive Array Drive Failure 驱动器的前部指示灯面板上有稳定的黄色指示灯(即严重故障)。 我有一个SATA转USB适配器,我知道物理适配器是相同的SAS,但我猜这实际上不适用于连接到SAS驱动器。 从快速search,似乎我需要得到一个shell和一个外部HBA。 我想知道,在这个阶段有什么数据恢复的机会? 我的理解是,一般来说,企业驱动器更容易将报告简单地描述为致命的,而不是返回可能的腐败数据。 我们能从故障驱动器中获得任何数据吗? 如果我们不能,我想,带条纹,根据条纹大小,你会得到小块?

如何从一个混乱的驱动器(LVM写在Ext4的顶部)恢复数据?

现在在我监督下的服务器的前一个pipe理员犯了一个错误。 他在一个实际包含Ext4分区数据的磁盘上意外地创build了一个LVM卷(不超过pvcreate,我想,虽然不确定)。 如何从这样的错误中恢复数据? 我准备阅读ext4文档并推出我自己的,但也许我不需要? 我试过的一些工具无法find它的Ext4文件系统,所以我想我需要更严肃的东西。

如何恢复Outlook电子邮件

在我的组织里发生过很多次了,有些人没有很好的条件。 所以当你去检查他们的电脑时,你会发现他们通常会删除他们的电子邮件,有时你可以在删除的文件夹中find他们(lol),但有时他们甚至会从那里删除他们。 这是一个让他们回来的方法,我想看看其他系统pipe理员如何处理这个… 从谷歌下载hex编辑器。 用hexeditor打开.pst并删除位置7和13.(只要计算字母并在空格7的字母顶部和空格处填上空格13。 这将破坏PST文件。 保存。 运行SCANPST.EXE,通常位于“C:\ Program Files \ Common Files \ System \ MSMAPI \ 1033”中。 它将做一个备份,然后它将尝试修复该文件。 一旦完成,打开Outlook的Outlook和电子邮件现在应该在那里。 现在…如果你是一个系统pipe理员,你离开公司,你不想让任何人恢复你的电子邮件,或者至less让他们更难……那么删除你的电子邮件后,所有你需要做的是去到(在MS Outlook中)工具>选项>邮件设置>数据文件>select.pst,然后单击设置>立即压缩。

在BTRFS上恢复旧版本文件的前景是什么?

我不小心覆盖了BTRFS上的一个重要文件。 知道这个文件系统是COW,理论上可以恢复旧版本的文件。 不幸的是,谷歌search没有透露相关信息。 有人可以请教我,我可以做什么步骤(如果有的话)?

有没有办法从SATA驱动器读取扇区没有纠错?

我知道,在旧的ATA标准中有这样的可能性:“READ LONG”命令产生了LBA扇区+ ECC有效载荷。 sg_read_long支持在linux中,但是这个命令已经过时很久了,所以我并不感到惊讶,我的硬盘没有实现它。 root@ubuntu:~# sg_read_long –lba=2118229 /dev/sdc sg_read_long: issue read long (10) to device /dev/sdc xfer_len=520 (0x208), lba=2118229 (0x205255), correct=0 SCSI READ LONG (10) command not supported root@ubuntu:~# sg_read_long -v –16 –lba=2118229 /dev/sdc sg_read_long: issue read long (16) to device /dev/sdc xfer_len=520 (0x208), lba=2118229 (0x205255), correct=0 Read Long (16) cmd: 9e 11 00 00 […]

RAID如何处理不一致的数据?

RAID 1和RAID 5(及其兄弟10和50)分别通过镜像和奇偶校验来实现数据冗余。 这允许RAIDarrays在磁盘(或整个磁盘)上的扇区变得不可读时仍然访问数据。 RAID 6(或60)使用额外的检查来允许出现双重故障。 但是,RAIDarrays如何处理不完全不可读的数据,却显然不一致呢? 如果出现一些错误,例如磁盘上的条带数据被改变,但是这个改变不会传播到另一个磁盘上,那么整个条带就会变得不一致。 如果在一个镜像集中,一个磁盘表示“这个位是0”,而另一个磁盘表示“这个位是1”,RAID控制器怎么知道哪一个是对的? 同样的推理可以应用到RAID-5条带,增加了复杂性,你不能容易地知道在条带中哪个扇区实际上是错误的。 此外,RAID 6是否可以通过双重caching来缓解这个问题,或者当数据实际可读时,它仍然可以从数据损坏中恢复,但在某些地方是错误的,特别是当RAID 6arrays倾向于拥有大量磁盘时? 这在理论上可以通过校验和来解决,以确保哪个数据副本(或奇偶校验)是正确的; 但是任何RAID控制器实际上是否实现了这种校验和(这当然会占用额外的空间)? 或者是否需要在操作系统级别进行处理,大多数文件系统可以并将对其内容进行校验? 如果是这种情况,那么RAID控制器的一般方法是如何从底层存储层抽象操作系统,如何告诉RAID控制器“在条带Z上的磁盘Y上的扇区X上的数据是错误的”可能?

join大量重叠的文件

我正试图从崩溃的磁盘恢复(MySQL)数据库。 有一些最近转储,这是损坏的bz2文件。 由于数据库不会经常更改,所以转储应该几乎相同。 bzip2recover从文件中恢复了大约70-80%的块,所以大部分(如果不是全部)数据可以通过find文件中的重叠并将它们连接在一起来恢复。 例如: dump1: |—————–|xxxxxxxxxxxxxxxx|——————| dump2: |————-|—————-|xxxxxxxxxxxxxxxxxxxxxx| dump3: |xxxxxxxxxxxxxxxxxxxxxx|—————|xxxxxxxxxxxxxx| 在这里我可以检测到dump1中的第一个数据块是由dump2中的第二个数据块继续存储的,dump2中的第二个数据块继续是dump3中的第二个数据块。 通过join这四个文件,我已经恢复了数据。 问题是,有成千上万的文件(我有每个大约400个1M块的十个转储)。 有没有一个工具可以自动化这个过程,或者至less是其中的一部分(像一个Linux命令检查一个文件的结尾和另一个文件的开始之间的最长重叠)?

需要帮助恢复损坏的SQL数据库

我有一个非常特殊的情况,我已经做了好几天了。 我有一个非常大的SQL Server 2008数据库(约2 TB),其中包含500个文件组以支持非常大的分区表。 最近我们在一个驱动器上发生了一次灾难性的失败,丢失了几个文件组,数据库变得无法访问。 我们每天都在进行文件组备份,但由于其他问题,我们丢失了日志和主文件组的最新备份。 我们备份了所有数据,但主文件组备份已旧。 自主文件组备份以来,没有任何模式更改,但lsn现在全部不同步,我们无法恢复数据。 我已经尝试了所有我能想到的(并且已经尝试了几乎所有的技巧,而且我可以google),但是我仍然得到同样的信息,说明文件组x的文件与主文件组不匹配。 我现在正试图编辑系统表(我们有一个单独的临时环境来做到这一点,所以我们不担心会破坏任何生产数据库)。 我已经尝试更新sys.sysdbreg,sys.sysbrickfiles和sys.sysprufiles,试图欺骗SQL,认为所有的文件都在线,但“select*从OPENROWSET(TABLE DBPROP,5)”显示不同的数据库状态我在sys.sysdbreg中看到。 我现在想我需要以某种方式编辑实际数据文件的头文件,以尝试将lsn与主文件alignment。 我很欣赏任何人可以在这里给我的帮助,但请不要用“你不应该编辑mdf,ndf文件….”或“看到MSDN文章….”等等这样的回应。一个先进的紧急情况,我需要一个真正的黑客,所以我们可以得到在这个损坏的数据库中的数据,并导出到一个新的数据库。 我知道有一种方法可以做到这一点,但不知道DBPROP系统函数做了什么(例如看系统表还是实际打开文件),使我无法想出如何愚弄SQL让我阅读这些文件。 谢谢你的帮助。