open的时候报错ORA-01157 ORA-01110 ORA-27048

在这里插入图片描述

问题原因:

数据文件的0号块(OS块信息)被更改导致。

模拟报错:

1.查看0号块信息
方法一、(bvi)
查看bb01.dbf文件的0开始到96字节(其实看前32字节就行,后面的无关紧要)
bvi -b 0 -s 96 /tmp/soft/app/oracle/oradata/WLH/datafile/bb01.dbf

方法二、(bbed)
过程省略,见bbed文档
bbed修改数据文件

查看
dump /v file 5 block 0 count 32 offset 0
在这里插入图片描述

2.修改0号块信息(offset 29-32)

3.重启数据库
shutdown immediate;
startup;

查看alert日志:
在这里插入图片描述

报错模拟完成

修复

1.将29-32改回即可
bvi查看
bvi -b 0 -s 96 /tmp/soft/app/oracle/oradata/WLH/datafile/bb01.dbf

0号块关键为29-32字节,下面为常规11g,其他版本自行bvi或者bbed查询
00 A2 00 00 00 00 C0 FF 00 00 00 00 00 00 00 00 E6 F4 00 00 00 20 00 00 80 0E 00 00 7D 7C 7B 7A


部分大神的说法是需要建同样大小的数据文件,这样下面2部分的值也会完全一样,此时,直接dd或者bbed copy即可。
在这里插入图片描述

方法一、(DD)
dd if=o1_mf_users_k76kdpw2_.dbf of=bb01.dbf bs=32 count=1 conv=notrunc

方法二、(bbed)
BBED>copy file 7 block 0 to file 4 block 0

参考:
好记忆不如烂笔头abc/张文胜

更多推荐