暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库管理-第310期 坏块修复的小坑(20250405)

原创 胖头鱼的鱼缸 2025-04-05
205

数据库管理310期 2025-04-05

数据库管理-第310期 坏块修复的小坑(20250405)

作者:胖头鱼的鱼缸(尹海文) Oracle ACE Pro: Database PostgreSQL ACE Partner 10年数据库行业经验 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP,ITPUB认证专家 圈内拥有“总监”称号,非著名社恐(社交恐怖分子) 公众号:胖头鱼的鱼缸 CSDN:胖头鱼的鱼缸(尹海文) 墨天轮:胖头鱼的鱼缸 ITPUB:yhw1809。 除授权转载并标明出处外,均为“非法”抄袭

胖头鱼的鱼缸_01.png
经过一天一夜的搏斗,最终排查出有90个文件有坏块需要修复,综合下来有接近3000个坏块需要修复,只能在判断完有坏块的数据文件后,多开几个终端进行dbv然后用Excel拼接出命令执行。在操作过程中还是发现一些小坑,这里做个扩展。

1 validate database

在rman中使用validate database后,不会像EM的备份日志那样有个统一地方展示有坏块的数据文件,而备份因发现有坏块数据文件后会中止备份导致文件检查不全,可以通过下面的方式记录validate database的结果:

cat > check_datafile.sh <<EOX export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export ORACLE_SID=sid export PATH=$ORACLE_HOME/bin:$PATH rman target / <<EOF validate database; exit; EOF EOX chmod +x ./check_datafile.sh ./check_datafile.sh >check_datafile_`date +%F_%T`.log grep FAILED check_datafile_xxxx-xx-xx_xx:xx:xx.log|wc -l

image.png
这样可以简单查看有多少个有坏块的数据文件,然后再在文件中找到对应文件详细信息用dbv检查即可。

2 dbv

在使用dbv的过程中会输出文件编号和块编号:
image.png
但是在实际操作中发现这里输出的文件编号不一定是正确的,可以用两种方式找到正确的文件编号:一是通过上面validate database生成的日志检查对应文件的文件编号;另一种方式可以通过下面语句查找:

select file#, name from v$datafile where name='/path/to/file';

通过正确的文件标号来执行blockrecover。

3 反响

其实以前我这边数据库被硬件维护那边吐槽最多的就是:

  • 占用了较多的高性能物理机
  • 占用了最多的高性能存储
  • 占用了最多的备份空间
  • 占用了较多的跨IDC网络带宽

当本次故障发生处理完成后,硬件维护那边的态度发生了极大转变:

  • 还好有备库
  • 还好有备份
  • 占了那么大空间是值得的

毕竟数据库是业务运行的基础。

总结

完成所有坏块修复,并反馈一些期间遇到一些小坑坑。
老规矩,知道写了些啥。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论