几起Oracle数据库文件损坏的case
来源:互联网 发布:福特翼虎刷车软件 编辑:程序博客网 时间:2024/05/18 17:02
风险提示
如上图所示,Linux 5/6上的一个已知缺陷,在某些触发条件下,将导致Oracle数据文件出现内容全是0的的坏块。该操作系统上的缺陷,除了会导致Oracle数据库数据文件损坏外,还会导致包括归档日志、在线日志的损坏。而如果是current状态的在线日志发生损坏,那么对于数据库的影响将是致命的。需要引起重视!
BUG触发条件
当同时满足下列条件下时,会触发一个Linux上的已知缺陷,导致数据库数据文件或归档文件或在线日志文件的损坏:1、 操作系统为Linux,版本为Redhat 5/6 或Oralce Linux 5/6
2、 操作系统kernel的版本为
3、 数据文件/归档日志/在线日志所在的文件系统采用ext4
4、 数据库参数filesystemio_options=SETALL(为了提升IO性能而设置)
5、 数据库版本从10g到12c
如何修复?
1、临时的,可以通过修改数据库参数来绕开该BUGfilesystemio_options=none或
filesystemio_options=ASYNCH或
filesystemio_options=DIRECTIO
2、进一步的,建议尽快修复Linux操作系统的缺陷
对于Redhat 5
在kernel-2.6.18-238.el5 - RHEL5.6 Errata RHSA-2011-0017 或更高的版本中修复
对于Redhat 6
在kernel-2.6.32-71 或更高的kernel版本中修复
更多内容,可以参考My Oracle Support,参考文档号1487957.1:
ORA-1578 ORA-353 ORA-19599 Corrupt blocks with zeros when filesystemio_options=SETALL on ext4 file system using Linux (Doc ID 1487957.1)
小y已经好几次处理该类型的case,接下来看一个最近的一个CASE。
相关案例分享
小y不是个懂得生活的人,故障处理、性能调优等工作占据了小y的全部生活,剩下的时间就是在补觉(好无趣的人啊)。小y也曾幻想走出门,多交些朋友。但小y不善言谈,帮助他人解决问题就是小y交朋友的典型方式。
最近在微信里,看到jeanron杨建荣的Oracle公众号发表了一篇名为<最近让我焦灼的四个问题>的文章。其中第一个问题就是dataGuard备库老报坏块的问题。报错如下所示
对于这个问题,jeanron已经分析了各种场景,前前后后做了不下十多种测试,基本都排除了,重建了多次,问题还是没能解决。
看完该文章的时候,结合过去所处理的case,小y已经基本上可以断定:
Jeanron很不幸,他遇到了文章一开始我们所提到的Bug了!
虽然和jeanron不熟,但帮助人和交朋友是小y现在很乐意做的事情。
于是小y私信了他,告诉他可能遇到操作系统的Bug了,并让他做了以下检查,很幸运的,小y又一次猜对了。
1、检查操作系统版本检查结果,满足bug的触发条件Redhat 5.3
2、检查kernel版本:
检查结果,Linux的该Bug在kernel-2.6.18-238.el5以下会触发,
而该Kernel版本为2.6.18-194,满足Bug触发条件
3、检查数据库文件存放的目录:
4、检查filesystemio_options参数:
5、结论和结果
可以看到,所有触发条件全部满足,至此可以确认命中一开始提到的Linux BUG了。
在调整filesystemio_options=NONE后,jeanron确认问题得到最终解决。
小y很开心,除了解决问题带来的成就感之外,
自己的经验可以帮到客户、帮到朋友,还可以交到朋友,
那不就是小y的追求么!
结束语
后续小y将通过微信首发放出更多的风险提示和实战分享。
关注公众号可获得最快的资讯。
如果亲们迫不及待地想了解其他的风险,小y可到现场做进一步交流哦(jiao peng you)。
- 几起Oracle数据库文件损坏的case
- oracle 数据库文件损坏无法启动
- Oracle数据库文件坏块损坏的恢复方法
- sqlite数据库文件损坏的问题解决
- 如何修复损坏的数据库文件FoxPro的?
- 数据库文件损坏后的恢复方法
- InterBase数据库文件损坏的修复方法
- InterBase数据库文件损坏的修复方法
- 关于数据库文件损坏风险的提醒
- [HOWTO]SQL Server2000数据库文件损坏的时候如何恢复
- 统计Oracle数据库文件的大小
- Oracle 数据库文件的导入导出
- 关于Oracle语句中case when起别名
- ORACLE数据库文件损坏,Error:ORA-01033:ORACLE initialization or shutdown in progress
- ORACLE数据库文件损坏,Error:ORA-01033:ORACLE initialization or shutdown in progress解决 .
- ORACLE数据库文件损坏,Error:ORA-01033:ORACLE initialization or shutdown in progress
- oracle的case函数
- Oracle的Case语句
- hdu 2063 过山车
- 同步传输-异步传输-详解
- Codeforces 452C Magic Trick (概率)
- django静态文件配置
- EditText 禁止输入emoji(过滤emoji)
- 几起Oracle数据库文件损坏的case
- guestfish 命令修改镜像文件
- ios 视频捕捉
- 解读宏#define SWAP(a,b)
- 最强身份证验证
- 使用JAXB类库实现JAVA对象与XML互转
- instanceof, isinstance,isAssignableFrom的区别
- C/C++中int、long、long long取值范围
- Android Studio中单元测试某个类中的一个方法