通过bbed解决数据文件不能online的问题

本文解决Oracle11g RAC环境下数据文件错误定位的问题,详细介绍了使用BBED工具修正SCN号,处理数据文件离线及归档日志缺失的步骤。涉及BBED安装配置、SCN号一致性检查与修改、数据文件在线恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.oracle11g rac一个数据文件建错地方了,应该建在ASM上边,但是建在本地的文件系统上了,导致节点2一直报错。

2.数据库管理员对数据文件进行了offline drop处理,节点2不报错了,但是文件系统上的数据文件一直删除不掉。

3.现在数据文件是recovery状态,对数据文件进行recover时,报缺少归档日志,但是因为数据库没开归档,所以没有归档日志。

4.分析这个问题应该是数据文件的scn号不一致导致。

5.最后决定用bbed来更改数据文件的scn号,把scn号改一致,然后再online数据文件。

因为数据库使用的是oracle11g,默认没有安装bbed,需要先安装bbed。

在ORACLE 11G下安装BBED,需要从ORACLE 10G中复制三个包
bbedus.msb              
sbbdpt.o                
ssbbded.o 

并将三个文件移到11g $ORACLE_HOME/rdbms/lib/ 目录下

$ mv sbbdpt.o $ORACLE_HOME/rdbms/lib/
$ mv ssbbded.o $ORACLE_HOME/rdbms/lib/
$ mv bbedus.msb $ORACLE_HOME/rdbms/mesg/ 

$ cd $ORACLE_HOME/rdbms/lib

$ make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

6.配置bbed

select file#||' '||name||' '||bytes from v$datafile ;

vi /home/oracle/datafile.lst
1 /u01/app/oracle/product/10.2.0/db_1/oradata/ora10g/system01.dbf 534773760
2 /u01/app/oracle/product/10.2.0/db_1/oradata/ora10g/undotbs01.dbf 414187520
3 /u01/app/oracle/product/10.2.0/db_1/oradata/ora10g/sysaux01.dbf 272629760
4 /u01/app/oracle/product/10.2.0/db_1/oradata/ora10g/users01.dbf 55050240
5 /u01/app/oracle/product/10.2.0/db_1/oradata/ora10g/example01.dbf 104857600
6 /u01/app/oracle/product/10.2.0/db_1/oradata/ora10g/users_test.dbf 209715200
7 /u01/app/oracle/product/10.2.0/db_1/oradata/ora10g/test.dbf 104857600

vi /home/oracle/bbed.par
blocksize=8192 
listfile=/home/oracle/datafile.lst
mode=edit
 

如果文件在asm上边,需要用rman把文件从asm拷贝到本地。然后在编译bbed参数文件。

bbed parfile=/home/oracle/bbed.par 登录bbed

select FILE_ID from dba_data_files 通过视图查找文件编号

根据文件编号,查询offline数据文件的scn号

select to_char(last_change#),to_char(checkpoint_change#) from v$datafile where file#=7;

TO_CHAR(LAST_CHANGE#)                    TO_CHAR(CHECKPOINT_CHANGE#)
---------------------------------------- ----------------------------------------
2067377 1F8BB1          current: [b18b1f00]                      2067338

select to_char1F8BB1 from v$datafile_header  where file#=7;

TO_CHAR(CHECKPOINT_CHANGE#)
----------------------------------------
2067338 1F8B8A   curreint: 8a8b1f00

发现文件的scn号并不一致

7.登录bbed,开始修改数据文件的scn号

bbed parfile=/home/oracle/bbed.par

在bbed输入

p kcvfhckp 确认484存放的是scn号

d /v dba 7,1 offset 484

set mode edit

将小的scn号,改成大的scn号

modify /x b18b1f00 dba 7,1 offset 484

BBED> sum

BBED> sum apply

BBED> d /v dba 7,1 offset 484 查看scn是否改成功了

BBED> exit

如果修改是asm中的数据文件,需要通过asmcmd把数据文件考回到asm里。

8.最后online数据文件

SQL> recover datafile 7;

SQL> alter database datafile 7 online;

9.因为数据文件建错了地方,需要把数据文件删除

alter tablespace 表空间名字 drop datafile '数据文件绝对路径‘;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值