分享 一个NetApp删除所有卷后的数据恢复过程

NetApp FAS3220是NetApp推出的中端存储阵列,针对NAS和SAN环境构建,被定制为虚拟化、私有云或传统、早先的用途,适用于从几TB到超过2PB的存储需求,提供数据保护,可扩展性,自动精简配置,精简克隆,备份和灾难恢复,下面就讲解NetApp FAS 3220存储的数据恢复的方法。
·
本次讲解的NetApp FAS 3220型号的存储,硬件环境是一共96块600G的SAS硬盘,硬盘和普通的硬盘还不一样,这个硬盘的扇区大小是520字节一个扇区,上层应用环境也很复杂,所有的lun都是映射给小型机使用,存放是Oracle数据库文件还是ASM裸设备存储方式。可能是工作人员失误,误操作删除了存储上的是所有lun,据了解当时是要重新规划存储空间,直接把存储卷全部删除进行重新分配。在删除之后还没有分配的时候,上层业务就宕机了,这个时候运维工程师紧急排查故障情况,发现业务服务器上的磁盘都没有了,没有办法访问数据了,发现操作失误,紧急启动数据恢复预案。
·

为保护好现场环境,防止数据恢复过程中由于误操作对原始磁盘造成二次破坏,数据恢复工程师把每块磁盘都做只读完全镜像。此后所有恢复操作都在镜像文件上进行。
在做完镜像的同时,工程师紧急制定了恢复方案,为客户讲解恢复方案的可行性,客户认可方案,做完镜像之后,我们就立即按照制定方案实施,下面是恢复方案的具体实施步骤:
·

# 1、Netapp存储的存储过程分析,
第一步,分析盘序和LVM的组成方式。
第二步,扫描硬盘内的所有节点。
第三步,在节点扫描结果中找到文件大小符合需求的节点并提取此节点。
第四步,根据索引根内的第一级数据指针提取本文件的所有直接数据指针,在指针提取完毕后开始提取文件数据。
·

# 2、解析超级块
在硬盘的前面扇区的位置找到超级块相关信息,从超级块中得到相应信息,下图是超级块基本信息:
# 3、剔除校验盘
数据块会有数据块描述信息。根据这些信息可以判断出哪些磁盘是校验盘(提取数据时校验盘需剔除),下图是校验块描述信息:
# 4、判断aggr盘序
盘序分析时主要依据每块磁盘的磁盘信息以及磁盘的RAID盘序表确定盘序。首先要确定各个磁盘所属aggr组,然后再判断组内盘序,取得数据盘的盘序即可。
·
# 5、节点及节点头部信息分析
Netapp的节点分布在数量众多的数据块内,在数据块内又被统一组织为节点组。每个节点组的部分字节记录一些系统数据,部字节为一项记录各个文件节点。根据用户级别可分为两类:系统文件节点和用户文件节点。
·
# 6、获取目录项,并根据其节点编号,找到对应节点,
·
# 7、分析好存储结构之后,就开始用NetApp解析程序进行数据的提取了, 解析asm文件系统,提取出数据库文件
·
# 8、搭建小机环境,安装oracle数据库,检测数据库文件和备份文件。
·
# 9、检测数据库文件
使用提取出的数据库文件启动数据库,正常启动
# 10、检测数据库备份文件
筛选出最新的数据库备份文件,使用筛选出的备份文件还原数据库,经过一一尝试,筛选出最新的可用的数据库备份,还原数据库环境,由客户进行验证,客户对数据库恢复确认无误,此次数据恢复工作圆满成功。

原文地址:https://blog.51cto.com/sun510/2464065

时间: 2024-11-11 18:10:27

分享 一个NetApp删除所有卷后的数据恢复过程的相关文章

18.n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。 当一个数字删除后,从被删除数字的下一个继续删除第m个数字。 求出在这个圆圈中剩下的最后一个数字。

转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4263868.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明.谢谢. 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始, 每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字). 当一个数字

分享一个很实用的java代码,可以将以逗号分隔的数字以从大到小的方式排序后返回

原文:分享一个很实用的java代码,可以将以逗号分隔的数字以从大到小的方式排序后返回 源代码下载地址:http://www.zuidaima.com/share/1550463693032448.htm 对于web开发中,多个id的排序很实用,有需要的牛人可以下载. package com.zuidaima.math; import java.util.Arrays; /** *@author www.zuidaima.com **/ public class SortIDString { pu

分享一个php实现MYSQL备份的类库

正好要研究如何备份数据库,分享一个php实现MYSQL备份的类库 <?php /****** 备份数据库结构 ******/ /****正好要研究如何备份数据库,分享一个php实现MYSQL备份的类库********/ /* 函数名称:table2sql() 函数功能:把表的结构转换成为SQL 函数参数:$table: 要进行提取的表名 返 回 值:返回提取后的结果,SQL集合 函数作者:heiyeluren */ function table2sql($table) { global $db;

【开源.NET】 分享一个前后端分离的轻量级内容管理框架

开发框架要考虑的面太多了:安全.稳定.性能.效率.扩展.整洁,还要经得起实践的考验,从零开发一个可用的框架,是很耗时费神的工作.网上很多开源的框架,为何还要自己开发?我是基于以下两点: 没找到合适的:安全.稳定.简单.易用.高效.免费: 想成为架构师: 于是就自己动手,参考网上开源的项目和借鉴网友的设计思路(特别是萧秦系列博文),结合自己的实践,开发了一个简单.易用.高效的的框架,虽然不完善,但也能解决现实中的问题.不过随着见识增广,发现没负责过千万级别的项目难以成为架构师,也不可能开发出一个完

发现一个骗粉丝的人后发现博客园的一个bug

发现一个骗粉丝的人后发现博客园的一个bug 当你点开这篇文章的时候,如果你已经登录博客园账号,那么你自动回成为我的博客园粉丝,因为我加了自动关注的js,这里并不是想骗粉丝,希望博客园能重视这个bug(当然博客园肯定知道这个bug的).明天早上我会删除掉这段js的. 起因>发现一个骗粉丝的人 经过>他是如何实现骗粉丝的 我的一些思考 1.发现一个骗粉丝的人 今天下班,打开博客园的时候看到这篇文章,点了进去,感觉排版不错,自定义的界面体验非常不错,职业性地点击了主页看了看,发现了一个问题,于是乎有

linux删除大文件后空间没释放的问题

问题描述: 磁盘100%,删除大文件后,df -h发现磁盘空间未释放 解决办法: 该问题是因为在Linux系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用. #lsof  |grep deleted #kill xxx     删除占用文件的进程 #df -h     再次查看磁盘空间

分享一个近期写的简单版的网页采集器

分享一个近期写的简单版的网页采集器 功能特点: 1.可通过配置,保存采集规则. 2.可通过采集规则,进行数据采集. 3.可分页,分关键字,进行采集. 4.可保存数据至数据库,文本中. ........... 功能还比较简单,喜欢深入的可以继续深入下去,暂时还没有登录的功能,因为登录功能涉及到的范围比较广,待日后慢慢研究后再开发. 我先上个图让大家一睹为快吧: 首先看看页面,我们要采集这个网站的文章 接下来,首先是查找分页,获得分页里面的文章链接,接着查找内容页需要采集的字段,生成规则,进行采集.

分享一个C++写的远程控制木马:Gh0st_VS2010直接编译

经过修改VS2010已经可以直接编译了,之前做了360等主流的免杀现在已经失效了 放出代码给需要的朋友学习,请勿用作非法用途 代码下载地址如下: 链接: http://pan.baidu.com/s/1sjwhh8L  密码: rc6f 编译后有3个文件,运行Gh0st.exe就行了,运行以后配置好,可以生成被控端,运行以后自动删除自己的exe,开机启动服务等--至于使用教程百度很多,自己找一找吧 解压密码在: http://www.bcwhy.com/thread-21884-1-1.html

[Unity3D入门]分享一个自制的入门级游戏项目&quot;坦克狙击手&quot;

[Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://www.4399.com/flash/127672_3.htm),虽然抄袭了人家的创意,不过我只用来练习(目前还很不成熟,离人家的境界相差很大),坦克.导弹.建筑模型来自网络,应该不会有版权问题吧. 由于模型和代码总共10M以上了,需要源代码和发布的Windows版.网页版程序的同学麻烦点个赞并留下你的邮箱~ 到