【中亦安图】关于数据库文件损坏风险的提醒(3)

 

第一章 技术人生系列 · 我和数据中心的故事(第三期)-中亦科技关于数据库文件损坏风险的提醒

中亦安图 | 2016-01-19 21:38

前言

小y最近处理了几起Oracle数据库文件损坏的case,因为某些Bug风险较大,因此不敢有丝毫怠慢,赶紧拿出来分享!希望能够帮助到有需要的朋友!风险提示!

如上图所示,Linux 5/6上的一个已知缺陷,在某些触发条件下,将导致Oracle数据文件出现内容全是0的的坏块。该操作系统上的缺陷,除了会导致Oracle数据库数据文件损坏外,还会导致包括归档日志、在线日志的损坏。而如果是current状态的在线日志发生损坏,那么对于数据库的影响将是致命的。需要引起重视!

BUG触发条件:

当同时满足下列条件下时,会触发一个Linux上的已知缺陷,导致数据库数据文件或归档文件或在线日志文件的损坏:

1、 操作系统为Linux,版本为Redhat 5/6 或Oralce Linux 5/6

2、 数据文件/归档日志/在线日志所在的文件系统采用ext4

3、 数据库参数filesystemio_options=SETALL(为了提升IO性能而设置)

4、 数据库版本从10g到12c

如何修复?

1、临时的,可以通过修改数据库参数来绕开该BUG

filesystemio_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、检查数据库文件存放的目录:

检查结果,数据库文件存放在/home目录下,该目录是ext4文件系统,满足Bug触发条件

4、检查filesystemio_options参数:

检查结果,数据库参数filesystemio_options为SETALL,即同时支持异步IO和DIRECT IO,,满足Bug触发条件。

5、结论和结果

可以看到,所有触发条件全部满足,至此可以确认命中一开始提到的Linux BUG了。

在调整filesystemio_options=NONE后,jeanron确认问题得到最终解决。

小y很开心,除了解决问题带来的成就感之外,

自己的经验可以帮到客户、帮到朋友,还可以交到朋友,

那不就是小y的追求么!

 

 

About Me

....................................................................................................................................................

本文来自于微信公众号转载文章,若有侵权,请联系小麦苗及时删除

ITPUB BLOG:http://blog.itpub.net/26736162

QQ:642808185 若加QQ请注明您所正在读的文章标题

【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】

....................................................................................................................................................

时间: 2024-12-22 17:52:17

【中亦安图】关于数据库文件损坏风险的提醒(3)的相关文章

【中亦安图】风险提醒之Oracle RAC高可用失效(2)

  第一章 技术人生系列 · 我和数据中心的故事(第二期)--风险提醒之Oracle RAC高可用失效 中亦安图 | 2016-01-15 21:36 前言 不知不觉,技术人生·我和数据中心的故事来到了第二期,有朋友开始关心小y是谁,这不重要,我们更关心的是技术层面的分享以及给客户带来的实际的风险提示.后续我们还会继续分享中包括操作系统的小亦,中间件的小W的故事....小y这个名字,其实没有什么特殊的含义,就暂且用他来代表我们这些为数据中心奉献自己无悔青春的运维人吧! 本期分享主题 小y今天要和

【中亦安图】Oracle内存过度消耗风险提醒(6)

第一章 技术人生系列 · 我和数据中心的故事(第六期)-Oracle内存过度消耗风险提醒 中亦安图 | 2016-02-26 13:11 前言 时间过的真快,技术人生系列·我和数据中心的故事已经来到了第六期,小y又和大家见面了! 小y今天要和大家分享的是一个综合型问题的的分析和解决过程. 解决该类问题,只懂数据库是不够的,还需要掌握比较扎实的操作系统技能. 同时引出了另外一种不太常见形式的优化,内存优化. 由于今天要分享的问题具有普遍性,建议大家可以按照文中方法检查自己的系统中有无类似问题.分享

【中亦安图】运维无小事之一次导致数据丢失的小变更(10)

第一章 技术人生系列 ·我和数据中心的故事(第十期)·运维无小事之一次导致数据丢失的小变更 中亦安图 | 2016-04-08 22:05 前言 不知不觉,技术人生系列·我和数据中心的故事来到了第十期,小y又和大家见面了! 前期我们分享了不少Oracle数据库故障和优化的实战案例,有朋友问,小y是否可以分享一些无备份时数据恢复方面的实战案例呢? 答案自然是--当然可以了.小y从来就不是一个藏着掖着的人嘛 ^_^ 这些年,小y所在的Oracle服务团队,该遇到的和不该遇到的问题,基本都碰到了. 所

【中亦安图】小机上运行Oracle需要注意的进程调度bug(1)

第一章 技术人生系列 · 我和数据中心的故事--第一期 第一期:技术人生系列 · 我和数据中心的故事(第一期)小机上运行Oracle需要注意的进程调度bug. 2016-01-11 小y 中亦安图   前 言   小y这个名字,是笔者临时想的一个笔名,其实没有什么特殊的含义,就暂且用他来代表我们这些为各个数据中心奉献自己青春的一群默默无闻的IT人吧!   小y今天要和大家分享的是一个疑难杂症的分析过程.如果大家有耐心读完这个案例,一定会或多或少有些收获,也就没浪费小y的一片苦心.   具体来说是

【中亦安图】Systemstate Dump分析经典案例(7)

第一章 技术人生系列 · 我和数据中心的故事(第七期)Systemstate Dump分析经典案例(上) 中亦安图 | 2016-03-03 21:42 前言 本期我们邀请中亦科技的另外一位Oracle专家老K来给大家分享systemstate dump分析的经典案例.后续我们还会有更多技术专家带来更多诚意分享. 老K作为一个长期在数据中心奋战的数据库工程师,看到小y前期的分享,有种跃跃欲试的感觉,也想把我日常遇到的一些有意思的案例拿出来分享讨论,希望我们都能从中获得些许收获,少走弯路.同时本文

【中亦安图】Systemstate Dump分析经典案例(8)

第一章 技术人生系列 · 我和数据中心的故事(第八期)Systemstate Dump分析经典案例(下) 中亦安图 | 2016-03-08 21:45 前言 接上一期:(上一期的阅读方法:关注"中亦安图"公众号后回复'007') 4.3.4 SSD中library cache lock的分析 接上一期: 分析到这步,前边看似毫无头绪的问题似乎理清了,大量cursor:pin S wait on X已经理清楚,所有的矛头走指向了sid 859 离真相只差一步了,我们只需要分析libra

[HOWTO]SQL Server2000数据库文件损坏的时候如何恢复

server|恢复|数据|数据库 数据库文件损坏的时候如何恢复 欢迎大家同我交流:小白  enhydra_boy@tom.com 欢迎转载,请保留本声明,谢谢! SQL Server2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,我们该怎么办.以下是笔者以前的笔记.仅适用于非master,msdb的数据库. 说明如下: 1 建一个测试数据库test(数据库类型为完全)2 建一个表,插入点记录  create table a(c1 varchar(2))  go  insert in

【中亦安图】清算/报表/日终跑批程序之性能优化案例(5)

第一章 技术人生系列 · 我和数据中心的故事(第五期)-清算/报表/日终跑批程序之性能优化案例(一) 中亦安图 | 2016-02-18 21:40 前言 不知不觉,技术人生系列·我和数据中心的故事来到了第五期.小y又和大家见面了! 前几期主要发了一些TroubleShooting的案例分享,其实小y最擅长的是性能优化,所以从这期开始,小y会陆续的分享更多的数据库性能优化案例. 进入正题,如果您的日终跑批/清算/报表等程序时快时慢,或者从某一天以后就一直变慢,作为运维DBA或开发的您,会怎么下手

【中亦安图】导致Oracle性能抖动的参数提醒(4)

第一章 技术人生系列 · 我和数据中心的故事(第四期)-导致Oracle性能抖动的参数提醒 中亦安图 | 2016-01-25 21:39 前言 不知不觉,技术人生系列·我和数据中心的故事来到了第四期.小y又和大家见面了! 当您看到业务系统压测呈现以下波浪形的tps曲线时,你会怎么下手? 小y(中亦科技)今天要和大家分享的就是这样一个业务系统压测性能问题的分析和解决过程.这个问题困扰了客户相当长一段时间,幸运的是,小y通过远程在10分钟定位到了问题的原因并帮助客户最终解决了问题.需要说明的是,在