1、项目背景

某重要项目使用oracle数据库,基于ADG构建一主一备,数据总量在4TB左右,正常运行了近5年。最近备库因磁盘性能严重下降导致主从同步延迟了1.4T的归档日志未被应用(每天生产350G的日志,延迟了4天),目前所有的应用都切换到主库,备库进行检修。然而刚切换2天,主库于周5晚上挂掉了,所以就有了这篇文章,旨在为遇到相同问题的朋友提供一些处理思路和方法,当然希望大家不会看到这篇文章最好。

2、系统环境

2台数据库服务器:system x3950 x6 ,一共16块硬盘,前4块硬盘大小为300GB,后12块大小为4T,以4块硬盘为一组做的raid10.
操作系统版本:redhat6.5
数据库版本:oracle11.2.0.4
OGG版本:ogg12.2.0.1
数据库架构:基于ADG构建一主一备

3、故障描述

1、磁盘分区挂载的几个目录执行ls无法显示信息,报input/output错误
2、/var/log/messages相关报错信息如下
Jan 31 03:47:03 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
Jan 31 03:49:47 test-db-2 kernel: sd 1:2:0:0: rejecting I/O to offline device
3、数据库无法访问,其中45个数据文件在sdc2,sdc3分区上.
4、数据库备份在sdd1分区上,无法基于备份来及时恢复。

4、问题排查

1、确认数据库无法正常打开的原因
2、确认数据库服务器上硬盘是否有告警情况

5、问题分析与解决

1、磁盘IO错误导致磁盘分区上的45个数据文件无法方法,所以数据库无法直接打开,将45个数据文件offline,尝试打开数据库后,发现访问业务表报了大量的数据文件不存在,此时数据库无法对外提供正常访问。
2、服务器硬盘16块,以4块盘为一组做的raid10,分别对应sda,sdb,sdc,sdd,目前发现sdd对应的一块磁盘亮黄灯告警,正常情况下一块磁盘亮黄灯应该是不影响的,这里可能存在逻辑错误,可以将这几个分区umount通过fsck检查一下是否有坏块(遗憾的是通过fsck无法检测到这几个分区),接下来考虑重启动服务器(先关机、在启动)
重新启动的原因:
1、数据库无法正常对外提供访问
2、数据库备份无法访问
3、只有一个块磁盘亮黄灯,在重启过程中看看是否有其他报错信息或文件系统是否能自动修复
在数据库服务器关闭过程中,花了近1个小时都没有正常关闭,一直处理如下界面
最后,通过服务器上的开关键强制关闭了服务器,接下来将有亮黄灯的磁盘拔了出来,重新启动服务器



数据库服务器正常启动后发现sdc2,sdc3挂载并访问了,sdd目前无法正常挂载,尝试打开数据库并将所有处于offline的数据库文件变成online
首先将30号数据文件进行recover再online
SQL> alter database datafile 30 online;
alter database datafile 30 online
*
ERROR at line 1:
ORA-01113: file 30 needs media recovery
ORA-01110: data file 30: ‘/test/test2/teststg01.dbf’

SQL> recover datafile 30;
Media recovery complete.
SQL> select file#,status,name from v$datafile;


30 OFFLINE /test/test2/teststg01.dbf
31 RECOVER /test/test2/teststg02.dbf
32 RECOVER /test/test2/teststg03.dbf
33 RECOVER /test/test2/bigdata01.dbf

SQL> alter database datafile 30 online;
Database altered.
批量执行
SQL>recover datafile 31,32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60, 63;

SQL>alter database datafile 31,32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63 online;

到此所有数据文件都online了,接着执行dump备份并拷贝到其他服务器上

6、总结与思考

当把所有业务数据导出来了后,数据库出故障前的数据都存在,接下来就是及时恢复业务了,后面要完成的工作还有很多,后期接着更新。但通过这次数据库故障还是发现很多问题,所以有必要进行相应的总结与思考,避免再出现类似的情况。

当备库出现问题时,以下几点应该可以做到更好

1、虽然及时向公司报备了,但没有引起导相关领导的足够重视(因为有主库或领导关心的点不在这里,费用从哪里出的问题)
2、应该立即到机房进行巡检,两台设备是同时采购的(因进机房手续繁锁、分工有遗漏或不明确)
3、应该将主库上的备份及时备份其他服务器上
4、准备好其他备用服务器,最好是相同配置的,如果没有相同配置的,也可以降低配置,将最重要的业务数据实时同步过去。

磁盘rejecting I/O to offline device故障导致4TB生产数据库无法访问相关推荐

  1. HP-EVA4400故障导致的oracle数据库丢失的恢复过程

    一.故障描述 整个EVA存储结构是由一台EVA4400控制器,三台EVA4400扩展柜和28块FC 300G硬盘构成的.由于两块磁盘掉线导致存储某些LUN不可用,某些LUN丢失.由于EVA4400是因 ...

  2. EVA 4400存储硬盘故障导致的数据丢失应该怎么找回和恢复

    EVA系列存储是一款以虚拟化存储为实现目的的HP中高端存储设备,平时数据会不断的迁移,加上任务通常较为繁重,所以磁盘的负载相对是较重的,也是很容易出现故障的.EVA是依靠大量磁盘的冗余空间,以及故障后 ...

  3. EVA 4400存储硬盘故障导致数据丢失怎么恢复?

    EVA系列存储是一款以虚拟化存储为实现目的的HP中高端存储设备,平时数据会不断的迁移,加上任务通常较为繁重,所以磁盘的负载相对是较重的,也是很容易出现故障的.EVA是依靠大量磁盘的冗余空间,以及故障后 ...

  4. SQL Server 2008故障转移集群+数据库镜像配置实例之三

    前两篇文章已经建立了SQL 2008 的故障转移集群,由于故障转移集群存在一个单点故障,既是当网络存储设备不可用时,整个集群就不可用了.所以为了获得更好的高可用特性和容灾机制,我们可以将集群中的某一特 ...

  5. 光纤收发器故障导致不能上网该如何解决?

    光纤收发器的作用就是光信号和电信号之间的相互转换,其过程大概为:把电信号转换为光信号,通过光纤传送出去,在另一端再把光信号转化为电信号,再接入路由器.交换机等等设备.但是,光纤收发器在使用过程中难免也 ...

  6. 故障恢复:一次底层超融合故障导致的异常处理

    墨墨导读:底层超融合故障导致数据库产生较多坏块,最终导致数据库宕机. 背景概述 某客户数据由于底层超融合故障导致数据库产生有大量的坏块,最终导致数据库宕机,通过数据抢救,恢复了全部的数据. 下面是详细 ...

  7. 计算机病毒主要造成内存损坏,内存故障导致电脑频繁死机 内存损坏后的几种直接表现...

    我们在使用电脑的时候,可能会遇到电脑频繁死机的故障,导致电脑死机的原因很多,比如电脑中了病毒,CPU温度过高,内存松动或者损伤,电源供电不足等都会出现电脑频繁死机,其中内存故障较为常见,下面我们还来看 ...

  8. 【北亚数据恢复案例】raid0硬盘故障导致服务器崩溃的数据恢复

    服务器数据恢复环境: 2块硬盘 raid0 故障: 其中一块硬盘出现故障导致服务器崩溃,管理员联系北亚数据恢复中心进行数据恢复. 服务器数据恢复分析: 通过服务器管理员的简单介绍,北亚数据恢复工程师初 ...

  9. mysql zimbra_记一次zimbra服务器故障导致mysql起不来问题

    记一次zimbra服务器故障导致mysql起不来问题 记一次zimbra服务器故障导致mysql起不来问题 服务器有一天突然访问不了,局域网连接不上,去机房查看,硬盘灯亮着,屏黑的,按电源键没法关机, ...

最新文章

  1. 亲 , Zookeeper了解一下 : 概述
  2. mac下开启docker API远程调用
  3. win7安装mysql-5.7.18
  4. Wireshark数据抓包教程之Wireshark捕获数据
  5. python 办公自动化-Python办公自动化|从Excel到Word
  6. IOS UITableView性能优化
  7. springmvc的讲解
  8. 一个不错的shell 脚本教程 入门级
  9. Eclipse在Ubuntu8.04桌面系统下安装和弹出空白对话框
  10. POJ - 1475 Pushing Boxes(bfs套bfs)
  11. 正则表达式案例分析 (二)
  12. Jmeter之Bean shell使用(二)——断言加密的响应信息
  13. 7-5 华氏度转摄氏度(四舍五入) (5分) java pta
  14. 【JS-05】javascript检测ie版本
  15. c语言 计算华氏温度
  16. 英剧推荐【IT狂人】
  17. 多方位玩转“地平线新发布AIoT开发板——旭日X3派(Sunrise x3 Pi)” 插电!开机!轻松秒杀!
  18. 留言赠书|GitHub收获1W星标《迁移学习导论》重新整理升级
  19. 时间把回忆开成花海,谁的等待,恰逢花开
  20. SpringBoot 自动配置初探

热门文章

  1. 网关、默认路由、特定选择路由
  2. 异步回调需要注意的问题
  3. 【东北大学秦皇岛分校计算机专硕考研二战回忆录】
  4. ChatGPT与网络安全
  5. 支付宝支付接口之异步回调
  6. linux中mongodb的安装配置及基础使用
  7. rowspan无效_c# – RowSpan在iTextSharp中不起作用?
  8. 访问文件夹路径,文件名
  9. 图像处理——HSV图像应用(matlab)
  10. charles安装与使用