rose双机引起文件系统损坏使得数据库异常故障处理---惜分飞

有客户做了双机rose,由于某种故障导致共享存储在两个主机之间相互频繁挂载(甚至出现了同时挂载的情况),使得该文件系统发生损坏

修复双机故障之后,数据库启动ORA-01122 ORA-01110 ORA-01200错误

初步看这个报错,block差距有点大,文件头中记录为419840个block,现在实际有的block数量为384000,使用obet查看文件头记录block number情况

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| OBET> p kcvfh.kcvfhhdr File: E:\TEMP\20260219\SYSTEM01.DBF Size: 8192 bytes Block: 1 Offset: 20 struct kcvfhhdr, 76 bytes @20 ``ub4 kccfhswv @20 0x00000000 ``ub4 kccfhcvn @24 0x0B200400 ``ub4 kccfhdbi @28 0x85D98FAB ``text kccfhdbn[8] @32-39 XXXX ``ub4 kccfhcsq @40 0x00091079 ``ub4 kccfhfsz @44 0x00066800 <<--16转换为10进制为419840 ``s_blkz kccfhbsz @48 0x00 ``ub2 kccfhfno @52 0x0001 ``ub2 kccfhtyp @54 0x0003 ``ub4 kccfhacid @56 0x00000000 ``ub4 kccfhcks @60 0x00000000 ``text kccfhtag[32] @64-95 <kcvfh.kcvfhhdr structure printed successfully> |

对于这种情况,以前有过很多次处理经验(一般办法2个:1>修改文件头的block数量记录;2>修改现在的文件大小和实际文件有匹配),以前类似的处理记录:
bbed处理ORA-01200故障
记录一次ORA-01200完美恢复
ORA-01122 ORA-01200故障处理

处理完成system文件异常之后,sysaux文件继续异常

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| SQL> recover datafile 1; 完成介质恢复。 SQL> recover datafile 2; ORA-00283: 恢复会话因错误而取消 ORA-01110: 数据文件 2: ``'Z:\APP\ADMINISTRATOR\ORADATA\XXXX\SYSAUX01.DBF' ORA-01122: 数据库文件 2 验证失败 ORA-01110: 数据文件 2: ``'Z:\APP\ADMINISTRATOR\ORADATA\XXXX\SYSAUX01.DBF' ORA-01200: 149760 的实际文件大小小于 153600 块的正确大小 |

类似处理该故障之后,由于文件系统故障导致不少文件出现大量连续坏块(全0或者记录了其他文件内容的坏块),这种是由于文件系统元数据异常导致,通过文件系统层面恢复继续无法正常处理,对于这样的情况,通过碎片扫描工具按照oracle block级别的文件重组(其实就是基于rdba信息进行重组),获取正确的数据块信息然后重新重组成数据文件

然后打开数据库,顺利导出数据,实现客户数据最大限度恢复

相关推荐
dinl_vin17 小时前
FastAPI 系列 ·(四):数据库集成——SQLAlchemy 2.0 异步 ORM 与 Alembic 迁移
java·数据库·fastapi
坚定信念,勇往无前18 小时前
electron-vite 安装better-sqlite3
javascript·数据库·electron
大明者省18 小时前
Ubuntu22.04 宝塔面板与 XFCE 远程桌面端口兼容性分析
运维·服务器·数据库·笔记
liudanzhengxi19 小时前
巧用ULN2003A轻松扩展单片机IO口
数据库·mongodb
Teable任意门互动19 小时前
深度解析:AI 赋能开源多维表格,实现企业全场景数据整合与高效应用
数据库·人工智能·低代码·信息可视化·开源·数据库开发
DevOpenClub19 小时前
职教高考及高职分类招生控制线 API 接口
java·数据库·高考
funnycoffee12319 小时前
华为S5736交换机3层ECMP负载方式
linux·服务器·数据库
添砖java‘’19 小时前
MySQL复合查询
数据库·mysql
星川水月19 小时前
Access数据库快速入门——外部数据导入和SQL简单查询
数据库·sql·access