现象
接到应用反馈某张业务表无法进行查询,报ORA-01578有坏块出现。
分析
2.1 该表为普通表,可以通过analyze命令快速分析是表有问题还是索引有问题,可以确定表有坏块。
2.2 视图查询,显示有3个坏块(可能不准确),通过文件号和块号查询出坏块都指向了这张表。目前看只有这张表有问题。CORRUPTION_CHANGE#列0表示物理坏块,非0表示逻辑坏块。
该库没有未接入备份,blockrecover用不了,也就是说正常手段无法修复。但可以通过expdp工具或者dbms_repair包等其它手段来抢救该表上正常块上的数据。
2.3 这套库有adg,在adg上可正常查询,比较幸运的是这张当前无数据,无数据丢失风险。
处理方法
因为不需要做数据恢复,DB侧最终给的建议是换表,便于后续写入读取数据。
另外因为有坏块出现,后面通过dbv对全库数据文件进行检测,命令大致如下如下:
set feedback off head off echo off linesize 200 pagesize 1000
spool /tmp/dbvchk.sh
select dbv file= || name || blocksize=|| block_size || USERID=sys/x’x’x’x logfile= ||substr(name, instr(name, /, -1, 1) +1) ||. || file# || .log from v$datafile;
对输出结果进行过滤,部分数据文件上出现了大量坏块。
对于这种大量的坏块,初步怀疑可能是存储有问题,但主机侧反馈底层存储都正常,问题到这里就比较无解了,但好在有套adg环境,容灾库上未发现有坏块,后期考虑切到容灾库。另外业务侧除了反馈这张表有问题外,其它表再也没反馈。只能说运气较好,可能坏块不是出在热表上。
总 结
当出现坏块时,DBV可以快速的且不影响业务的情况下统计出全库有多少坏块。如果只有个别几个块,我们可以尝试修复或者抢救出非坏块上的数据。但如果是大量的出现坏块,且影响业务,这可能就是灾难的故障。最后要说的是,对于DBA来说,备份重于一切。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129109.html
摘要:夏华夏先生以美团发展的五个阶段为演讲主线,分别介绍每个阶段中所遇到的问题及解决方案。在夏华夏先生的分享之后,第五届开幕式圆满结束,他山之石可以攻玉是的宗旨,我们希望通过优秀案例的分享传播更多的经验。 showImg(https://segmentfault.com/img/bVHgPK?w=629&h=418);(第五届TOP100summit开幕式现场) 12月09日-12日,由ms...
摘要:夏华夏先生以美团发展的五个阶段为演讲主线,分别介绍每个阶段中所遇到的问题及解决方案。在夏华夏先生的分享之后,第五届开幕式圆满结束,他山之石可以攻玉是的宗旨,我们希望通过优秀案例的分享传播更多的经验。 showImg(https://segmentfault.com/img/bVHgPK?w=629&h=418);(第五届TOP100summit开幕式现场) 12月09日-12日,由ms...
摘要:摘要今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如在国际赛事中屡夺佳绩的团队,其队长将亲临现场,分享穿针引线般的漏洞利用艺术。从数据视角探索安全威胁阿里云安全工程师议题解读本议题讨论了数据为安全人员思维方式带来的变化。 摘要: 今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如HITCON在国际赛事中屡夺佳绩的CTF团队,其队长Orange将亲临现场...
阅读 1247·2023-01-11 13:20
阅读 1555·2023-01-11 13:20
阅读 1008·2023-01-11 13:20
阅读 1676·2023-01-11 13:20
阅读 3968·2023-01-11 13:20
阅读 2510·2023-01-11 13:20
阅读 1305·2023-01-11 13:20
阅读 3474·2023-01-11 13:20