Oracle ora-19556 超出损坏块限制0

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:447

Oracle ora-19556 超出损坏块限制0

ora-19556 超出损坏块限制 0

RMAN> backup database;

启动 backup 于 26-10月-07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\TEST\TOOLS01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\TEST\INDX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\TEST\USERS01.DBF
输入数据文件 fno=00007 name=D:\ORACLE\ORADATA\TEST\PAULTEST.DBF
输入数据文件 fno=00006 name=D:\TEST.DBF
通道 ORA_DISK_1: 正在启动段 1 于 26-10月-07
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 10/26/2007 17:31:
07
ORA-19566: 超出损坏块限制 0 (文件 D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF)

检查alert.log 文件 发现有坏快
Corrupt block relative dba: 0x00410040 (file 1, block 65600)
Bad check value found during backing up datafile
Data in bad block -
type: 6 format: 2 rdba: 0x00410040
last change scn: 0x0000.0001f5c6 seq: 0x8 flg: 0x04
consistency value in tail: 0xf5c60608
check value in block header: 0x3d26, computed block checksum: 0x8
spare1: 0x0, spare2: 0x0, spare3: 0x0
***

然后通过sql去查询看到底是哪个段出现的问题
SQL> select segment_type,owner||'.'||segment_name
2 from dba_extents
3 where 1 = file_id and 65600 between block_id and block_id+blocks-1;

未选定行
没查到任何数据
但通过dbv检查
C:\Documents and Settings\Paul Yi>dbv file=D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF l
ogfile=c:\1.log blocksize=8192

DBVERIFY: Release 9.2.0.4.0 - Production on 星期五 10月 26 17:38:21 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

DBV-00200: 块, dba 4243128, 已经标记为崩溃

1.log日志文件里面内容

DBVERIFY: Release 9.2.0.4.0 - Production on 星期五 10月 26 17:38:21 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

DBVERIFY - 验证正在开始 : FILE = D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
标记为损坏的页65600
***
Corrupt block relative dba: 0x00410040 (file 1, block 65600)
Bad check value found during dbv:
Data in bad block -
type: 6 format: 2 rdba: 0x00410040
last change scn: 0x0000.0001f5c6 seq: 0x8 flg: 0x04
consistency value in tail: 0xf5c60608
check value in block header: 0x3d26, computed block checksum: 0x8
spare1: 0x0, spare2: 0x0, spare3: 0x0
***

DBVERIFY - 验证完成

检查的页总数 :76800
处理的页总数(数据):62294
失败的页总数(数据):0
处理的页总数(索引):5364
失败的页总数(索引):0
处理的页总数(其它):1369
处理的总页数 (段) : 0
失败的总页数 (段) : 0
空的页总数 :7772
标记为损坏的总页数:1
汇入的页总数 :0

不理解的是有坏块为什么查不到,还有这种问题怎么处理好点?

通过网络求助和朋友查询metalink
这种坏块中文名称叫游离坏块
出现上面这种问题 与属于某一对象的坏块一样,os,硬件,数据库都可能引起,
解决方法:
重新format这个个块应该就能解决问题
思路:
在这个表空间上建一个表,在表上建一个触发器,不断地往表里插数据,一旦有一条数据用到这个块时,触发器抛出提示,再drop表即可
就是促使表用这个块后format 然后删除这个表就可以了 坏块问题就解决了

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】