数据库全备无法正常进行,通过在出现空块的表上添加数据的手段解决

来源:互联网 发布:数据分析师的职业素养 编辑:程序博客网 时间:2024/05/22 13:39

         这个算是对问题的一个总结吧,复制数据库备份的工程师与我沟通说数据库不能全备,在备份软件中查看是因为数据库有坏块的缘故。立马查看两个节点的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可以正常进行全备操作。

原创粉丝点击