今天下午,迁移数据完成后,再给用户做rman备份,备份到一半后,报
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on t2 channel at 06/14/2009 15:49:09
ORA-19566: exceeded limit of 0 corrupt blocks for file /ora9idata02/oradata/stjj/ntiis_01.dbf
检查日志中发现以下表空间文件号和块号
Corrupt block relative dba: 0x1a43d4e3 (file 24, block 359808)
Fractured block found during backing up datafile
Data in bad block -
type: 0 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
consistency value in tail: 0x00000000
check value in block header: 0x0, block checksum disabled
spare1: 0x0, spare2: 0x0, spare3: 0x0
***
然后用dbv检查发现至少有四,五个坏块
dbv file=/ora9idata02/oradata/stjj/ntiis_01.dbf blocksize=8192
然后用以下sql检查,看是什么对象损坏
select * from dba_extents where file_id=24 and 359808 between block_id and block_id+blocks-1;
通过检查没有任何行输出
如果所有的坏块执行这个sql检查出来的结果都是返回0行,说明没有对象在坏块上。
因为数据刚导完,应用还在测试,这个用户下的表没数据更新,
而且这个表空间只属于这个用户,就采取删除,重建表空间的方法和数据重新导入
然后用rman备份数据正常
也可采用小荷的方法:
http://www.oracleblog.cn/working-case/how-to-deal-with-corrupt-block/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9375/viewspace-607652/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9375/viewspace-607652/