Oracle ora-19556 超出损坏块限制0
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 然后删除这个表就可以了 坏块问题就解决了