一次意外情况出现逻辑坏块的处理

项目是一个政府内部办公应用,环境是这样的,两个节点,配合深信服的负载均衡器,组成高可用,挂载宏衫存储。

准备做一次应用更新,手动备份应用,出现了根目录只读。
![](http://i2.51cto.com/images/blog/201808/21/a4c6059ea312c278b7e79b1c96bca0c2.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
哎呦,什么情况,这个事情不妙。因为我这直接是root用户,不存在权限问题。
立即访问通过IP访问应用,发现应用仍然正常!有点摸不着头脑了,第一反应是,立即查看硬盘情况,如下图中,空间还是很富裕的。
![](http://i2.51cto.com/images/blog/201808/21/af0a86fed91c93631240c0936182eb4b.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
这个情况也有可能是挂载情况,查挂载看看,发现存储挂载正常,而且读写权限正常显示!
那么问题就奇怪了,挂载点的权限正常,为什么不能写数据呢?带着这个疑问,我在其他的挂载点创建了其他文件,包括存储的挂载点,均正常。
既然这样,我心里有个思路,根目录出问题了,那问题出在哪里呢。
没有弄明白,不做其他的操作,是运维最大的保证。在操作前做好应用备份到挂载的存储。
先重启服务器看看。
启动好,我后悔了,如果挂载不上,系统会无法启动。
真让我料到了,系统无法启动,堡垒机等一系列通过ssh登录的系统均无法连接。没有办法了,只能联系系统管理员通过虚拟机管理端登录,系统界面报挂载错误。通过修复模式,进入shell 界面,查看MESSAGE日志,发现出现根目录区域报逻辑块错误。
![](http://i2.51cto.com/images/blog/201808/21/87c15f8d09e4760e4d584b96235acfb6.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
挂载根目录后,系统完成启动,SSH服务恢复。
重新挂载系统,完成了挂载后,问题仍然存在,重启后,没有解决挂载问题。
那么问题就出在逻辑坏块上,查找了几篇问题处理类似的问题,均是通过重新挂载,或者重新安装系统解决问题。
联系一个系统内核高手,得到的消息是,系统在加载挂载点时,当发现了系统坏块后,把挂载点直接变成了可读文件系统,但不改系统挂载配置,也就是看到的FSTAB文件以及挂载信息都很正常。
既然知道了问题出在哪里,那好解决了,处理逻辑坏块有多种方式,选择哪种根据自己的情况而定。
一般,处理坏块,都是进行标注,让系统自己检查,然后把坏块进行标注,系统在使用过程中不再进行读写。或者通过第三方工具进行修复。就操作难度来说,第一种更合适。同时,还能避免对系统继续写入数据造成更多的坏块。
这里毕竟情况特殊,选择系统修复。
如果这个办法无法解决那么在找其他方法修复。避免二次破坏。
![](http://i2.51cto.com/images/blog/201808/21/c3bd7c726deb968c1a6b546ea6eb5d9d.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

修复完成后,系统重启。错误修复成功。

总结:应用在非正常关机,或者存储硬件问题都会出现坏块问题,或者文件系统问题。遇到此类问题,首先一定要稳住心态,戒急戒躁。没有定到问题所在不可做大的修改,和数据的继续写入。首先应该,最打限度的保存现有数据,然后才是修复文件系统。这里我是先停掉应用,备份数据。然后选择修复,同时选择工具时,也要避免对当前情况的最小话的破坏。

同时注重基础知识的学习,FSCK命令使用的很少,出问题了,一般很难想到。建议熟练使用系统工具。

原文地址:http://blog.51cto.com/11291778/2162524

时间: 2024-10-10 07:20:39

一次意外情况出现逻辑坏块的处理的相关文章

无RMAN备份集情况下的坏块恢复

测试的环境是没有可用的RMAN备份集,但是有数据文件的热备,下面来看测试: --创建测试用户和测试表 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 16 16:01:02 2014 Copyright (c) 1982, 2005, Oracle.  All rights reserved. Connected to: Oracle Database 10g Ente

Oracle Rman修复逻辑坏块

RMAN 实现数据块恢复试用Rman可以实现数据块级的数据恢复,在传统恢复手段中即某个数据文件的一个数据块被损坏,就造成整个数据文件无法试用,此时必须通过备份恢复整个数据文件.显然这样的方法会会时间较长,而RMAN实现块级恢复,如果某个数据文件的数据损坏,通过数据文件的完整备份就可以恢复数据块. 案例:数据库是一个单实例ORACLE数据库,该库的总大小有700G.存储设备使用华为存储,备份设备使用希捷3T的移动硬盘.该数据库无DG无OGG.备份策略为每周六0点全库备份,周三0点1级差异备份其余时

ORA-600[kcratr_scan_lastbwr]逻辑坏块解决

数据库版本: 11.2.0.3 问题现象: 今天在启动一台测试数据库的时候,发现db不能open,报错如下: ERROR at line 1: ORA-00600: internal error code, arguments: [kcratr_scan_lastbwr], [], [], [],[], [], [], [], [], [], [], [] 解决过程: 1.检查alert日志 Mon Jul 22 11:35:12 2013 ALTER DATABASE OPEN Beginni

Oracle corrupt block(坏块) 详解

转自:http://blog.csdn.net/tianlesoftware/article/details/5024966 一. 坏块说明 1.1 相关链接 在看坏块之前,先看几个相关的链接,在后面的说明中,会用到链接中的一些内容. ORA-600 各个参数含义说明 http://blog.csdn.net/tianlesoftware/article/details/6645809 Oracle 不同故障的恢复方案 http://blog.csdn.net/tianlesoftware/ar

如何处理Oracle数据库中的坏块问题

本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率会越来越大,因此,做为一个DBA,怎么去解决数据库出现的坏块问题就成了一个重要的议题了. 一:什么是数据库的坏块   首先我们来大概看一下数据库块的格式和结构 数据库的数据块有固定的格式和结构,分三层:cache layer,transaction layer,data layer.在我们对数据块进

Oracle 处理坏块

本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率会越来越大,因此,做为一个DBA,怎么去解决数据库出现的坏块问题就成了一个重要的议题了. 什么是数据库的坏块首先我们来大概看一下数据库块的格式和结构 数据库的数据块有固定的格式和结构,分三层:cache layer,transaction layer,data layer.在我们对数据块进行读取写入

12 oracle 数据库坏块--物理坏块-ORA-01578/ORA-01110

oracle 数据库坏块--物理坏块 数据坏块的类型物理坏块:通常是由于硬件损坏如磁盘异常导致.内存有问题.存储链有问题. IO有问题.文件系统有问题. Oracle本身的问题等逻辑坏块:可能都是软件问题导致通常是由于oracle bug导致,比如data block和index block数据不一致第三方软件或者硬件造成的物理损坏物理数据坏块的场景常见的物理坏块(Physical Block Corruptions)有块头和块尾信息不一致(Fractured/Incomplete),check

对Oracle数据库坏块的理解

1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说的物理坏块和逻辑坏块. 在每一个数据块的头部有一个校验和字段,每当数据块要被写回磁盘前,Oracle都会重新计算 这个数据块的校验和,并记录到这个字段最终写会磁盘.下次数据块被读入内存,Oracle会重新 计算数据块的校验和,并和块头的字段相比较,如果有差异,Oracle就知道这个数据块有错误, 会

数据库坏块触发ora-00600和ora-07445

上午10:03分收到资源同步库的宕机告警,登陆数据库核实数据库确实异常,第一反应手动重启库,但依旧失败. 回过头查看数据库告警日志,发现大量的600和7445报错 查看trace文件,发现都是对同一个表T_PRODUCT_ADDR_6_8_TEMP_AREA的更新操作: 在连续的报错后,数据库自身有个坏块recover的操作 从在线日志恢复成功后,依然有类似的报错信息,最后数据库直接宕机 [分析过程] 1.根据数据库报错信息中涉及的两个数据文件号信息,在数据库启动到mount状态,通过以下脚本查