SUN平台服务器光纤共享存储互斥失败如何恢复数据?
服务器数据恢复故障描述:
服务器最初的设计思路为将两台SPARC SOLARIS系统通过光纤交换机共享同一存储作为CLUSTER使用,正常情况下A服务器工作,当A服务器发生故障宕机后即可将其关机然后开启B服务器进行接管。但由于服务器配置不当导致两台SERVER并未很好地对存储互斥,
管理员对服务器进行运维检查时开启B服务器,查到B服务器连接了一组未知的大容量磁盘,由于B服务器并未启用,处于闲置状态,所以管理员以为磁盘也是闲置的,于是将整个磁盘的某个分区做了newfs。然而这个磁盘就是那个共享存储,A服务器很快报警并宕机。
管理员于是对服务器做了如下操作:首先重启A服务器但所有的文件系统均无法mount。然后执行了fsck,多数分区数据修复成功,只有在B机做过newfs的文件系统结果不理想,根目录下只有一个lost+found文件夹,里面有大量数字标号的文件。
故障文件系统存储了两组ORACLE实例,原结构为UFS,约有200~400个数据文件需要恢复。
数据恢复分析:
光纤设备的共享冲突案例很多,起缘于光纤交换的灵活性。此例中,A机与B机同时对UFS这个单机文件系统进行访问是很糟糕的,两台SERVER都以想当然的独享方式对存储进行管理,A机正常管理的文件系统其实底层上已经被B机做了文件系统初始化,A机从缓冲区写入文件系统的数据也会破坏B机初始化的结果。
B机newfs实际上直接会作用于原先的文件系统之上,但此例与单纯的newfs会有些不同,在A机宕机之前,会有一小部分数据(包括元数据)回写回文件系统。newfs如果结构与之前的相同,数据区是不会被破坏的,同时如果有一小部分元数据存在,部分数据恢复的可能性还是存在的。

UFS是传统的UNIX文件系统,以块组切割,每块组分配若干固定的inode区。文件系统newfs时,如果结构与之前的相同,文件系统最重要的inode区便会全部初始化,之前的无法保留,inode管理着所有文件的重要属性,所以单纯从文件系统角度考虑,数据恢复的难度很大。好在oracle数据文件的结构性很强,同时UFS文件系统还是有一定的存储规律性,可以通过对oracle数据文件的结构重组,直接将数据文件、控制文件、日志等恢复出来。同时oracle数据文件本身会有表名称描述,也可以反向推断原来的磁盘文件名。
数据恢复过程与结果:
首先对故障的文件系统做dd备份。针对整个镜像文件做完全的oracle数据结构分析、重组。然后对部分结构太乱,无法重组的文件,参考ufs文件系统结构特征进行辅助分析。利用恢复的数据文件、控制文件在oracle平台恢复数据库。所有数据库完全恢复。
后记:
fsck是很致命的操作,在fsck之前最好做好备份(dd即可)。光纤存储的不互斥是非常多的数据灾难原因,方案应谨慎部署与实施。
北亚数据恢复中心:4006-505-646
SUN平台服务器光纤共享存储互斥失败如何恢复数据?的更多相关文章
- shell脚本自动部署nignx反向代理及web服务器,共享存储
#!/bin/bash systemctl status nginx var=$? ] then yum install epel-release -y ] then echo "epel库 ...
- raid5两块硬盘离线怎么办? 强制上线失败如何恢复数据
服务器故障描述: 客户使用Dell 2850服务器组建了raid5磁盘阵列,阵列中包含有6块硬盘(SCSI硬盘,单盘容量300G),服务器操作系统为linux Redhat4:文件系统为ext3文件系 ...
- RMAN备份到共享存储失败(win平台)
RMAN备份到共享存储失败(win平台) 之前在<Win环境下Oracle小数据量数据库的物理备份>这篇文章中,介绍了在win平台下对于小数据量的数据库的物理备份设计. 文中重点提到,强烈 ...
- Linux下搭建iSCSI共享存储详细步骤(服务器模拟IPSAN存储)
一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...
- nfs服务器共享存储
NFS的使用: 主机 192.168.189.129 备份机 192.168.189.130 图文详解见:https://www.cnblogs.com/security-guard/Linux公 ...
- 阿里云PolarDB及其共享存储PolarFS技术实现分析(上)
PolarDB是阿里云基于MySQL推出的云原生数据库(Cloud Native Database)产品,通过将数据库中计算和存储分离,多个计算节点访问同一份存储数据的方式来解决目前MySQL数据库存 ...
- Linux 进程间通信(一)(经典IPC:消息队列、信号量、共享存储)
有3种称作XSI IPC的IPC:消息队列.信号量.共享存储.这种类型的IPC有如下共同的特性. 每个内核中的IPC都用一个非负整数标志.标识符是IPC对象的内部名称,为了使多个合作进程能够在同一IP ...
- 阿里云PolarDB及其共享存储PolarFS技术实现分析(下)
上篇介绍了PolarDB数据库及其后端共享存储PolarFS系统的基本架构和组成模块,是最基础的部分.本篇重点分析PolarFS的数据IO流程,元数据更新流程,以及PolarDB数据库节点如何适配Po ...
- 【windows 操作系统】进程间通信(IPC)简述|无名管道和命名管道 消息队列、信号量、共享存储、Socket、Streams等
一.进程间通信简述 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进 ...
随机推荐
- webpack中hash与chunkhash区别和需要注意的问题
项目发布时,为了解决缓存,需要进行md5签名,这时候就需要用到 hash 和 chunkhash等. 问题一:hash问题 使用 hash 对js和css进行签名时,每一次hash值都不一样,导致无法 ...
- js中实现继承的不同方式以及其缺点
1.利用call和apply,借助构造函数 fucntion P(){ this.name = "P"; } fucntion C1(){ P.call(this); } 解释一下 ...
- 常用Oracle进程资源查询语句(运维必看)
(一)根据程序名称查找相关信息select A.process,B.spid,A.sid,A.serial#,A.sql_address,A.username,A.program,A.status,A ...
- VHDL和verilog应该先学哪个?
网上有太多的VHDL和verilog比较的文章,基本上说的都是VHDL和verilog之间可以实现同一级别的描述,包括仿真级.寄存器传输级.电路级,所以可以认为两者是等同级别的语言.很多时候会了其中一 ...
- 简单探讨 javascript 闭包
函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个对Array的求和.通常情况下,求和的函数是这样定义的: function sum(arr) { ret ...
- php基础知识(三)---常用函数--2017-04-16
常用函数如下:(红色为重点) 1.取字符串的长度 echo strlen("hello"); 2.echo strcmp("字符串1","字符串2&q ...
- 如何在IPFS里面上传一张图片
之前有好几人问过小编,想在IPFS里面上传一张图片.如何做? 今天小编就讲一下如何在IPFS里面上传.下载文件? 1 下载IPFS软件 下载地址:https://dist.ipfs.io/#go-ip ...
- es6学习笔记--新数据结构Set,Map以及WeakSet,WeakMap
在javascript中,存储数据的方式大部分就是以数组或者对象形式存储的,es6出现了4种新集合Set,Map,WeakSet,WeakMap来存储数据,简化了编程. 集合--Set 类似于数组,但 ...
- 【Python】 配置解析ConfigParser & 命令行参数解析optparser
ConfigParser ConfigParser包装了配置文件的读取和写入,使得python程序可以更加轻松操作配置文件了.这里的配置文件是指.ini的那种文件,基本格式如下 [section_a] ...
- linux --> vimrc的配置
vimrc的配置 .vimrc文件: " 去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 set nocompatible "代码补全 set completeopt ...