这个算是对问题的一个总结吧,复制数据库备份的工程师与我沟通说数据库不能全备,在备份软件中查看是因为数据库有坏块的缘故。立马查看两个节点的alert日志,在orcl2上面看到的信息,截取如下
Wed Apr 10 01:18:55 GMT+08:00 2013Hex dump of (file 6, block 386738180) in trace file /oracle/admin/orcl/udump/orcl2_ora_11862556.trc Corrupt block relative dba: 0x170d2804 (file 6, block 386738180) Fractured block found during backing up datafile Data in bad block: type: 0 format: 2 rdba: 0x170d2804 last change scn: 0x0000.00000000 seq: 0x1 flg: 0x05 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0xdabe40d8 check value in block header: 0x3eaf computed block checksum: 0x1316 Reread of blocknum=386738180, file=/oradata/orcl/users/DT_VIO_SURVEIL_PHOTO01.dbf. found valid data |
若是在告警日志中看,确实有坏块的存在,但是是怎么形成的呢,要怎么处理呢。
通过在网上的求助的结果,
在rman中进行下面操作
backup validate check logical database;(对数据库进行检查,并不是真正的backup数据库)
然后查询v$database_block_corruption,里面什么结果都没有。
得知这不是真正的坏块,是rman在备份的时候,该数据文件有剧烈的IO导致的。
然后初步决定的方法是,首先在该这个数据文件上大量的建表,将空块利用上,当空块被占用之后,将创建的临时表删除掉。
这个方法目前把问题解决了。rman可以正常进行全备操作。