Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

16

积分

0

好友

2

主题
1#
发表于 2011-12-22 16:19:43 | 查看: 8181| 回复: 4
环境:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/ora10g
System name: Linux
Node name: hxzqcx
Release: 2.6.9-78.0.0.0.1.ELlargesmp
Version: #1 SMP Fri Jul 25 16:15:22 EDT 2008
Machine: x86_64

在数据库里面发现如下错误信息:
Tue Dec 20 14:58:57 2011
Read from controlfile member '/oradata/hxlscx/control02.ctl' has found a corrupted block (blk# 3, seq# 0)
Hex dump of (file 0, block 3) in trace file /oracle/admin/hxlscx/udump/hxlscx_ora_28551.trc
Corrupt block relative dba: 0x00000003 (file 0, block 3)
Bad check value found during control file block read
Data in bad block:
type: 21 format: 2 rdba: 0x00000003
last change scn: 0x0000.00000000 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00001501
check value in block header: 0x139b
computed block checksum: 0x1
Re-read from controlfile member '/oradata/hxlscx/control02.ctl' returned valid block 3
Tue Dec 20 19:02:33 2011
Thread 1 advanced to log sequence 2337 (LGWR switch)
  Current log# 3 seq# 2337 mem# 0: /oradata/hxlscx/redo03.log
Tue Dec 20 19:03:08 2011
Thread 1 advanced to log sequence 2338 (LGWR switch)
  Current log# 4 seq# 2338 mem# 0: /oradata/hxlscx/redo04.log
Tue Dec 20 19:04:29 2011
Thread 1 advanced to log sequence 2339 (LGWR switch)
  Current log# 5 seq# 2339 mem# 0: /oradata/hxlscx/redo05.log
Tue Dec 20 19:07:08 2011
Thread 1 advanced to log sequence 2340 (LGWR switch)
  Current log# 1 seq# 2340 mem# 0: /oradata/hxlscx/redo01.log

trace 文件:
/oracle/admin/hxlscx/udump/hxlscx_ora_28551.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/ora10g
System name: Linux
Node name: hxzqcx
Release: 2.6.9-78.0.0.0.1.ELlargesmp
Version: #1 SMP Fri Jul 25 16:15:22 EDT 2008
Machine: x86_64
Instance name: hxlscx
Redo thread mounted by this instance: 1
Oracle process number: 19
Unix process pid: 28551, image: [email=oracle@hxzqcx]oracle@hxzqcx[/email] (TNS V1-V3)
*** 2011-12-20 14:58:57.340
*** ACTION NAME:() 2011-12-20 14:58:57.275
*** MODULE NAME:([email=vagentd@hxzqcx]vagentd@hxzqcx[/email] (TNS V1-V3)) 2011-12-20 14:58:57.275
*** SERVICE NAME:(SYS$USERS) 2011-12-20 14:58:57.275
*** SESSION ID:(1636.93) 2011-12-20 14:58:57.275
*** 2011-12-20 14:58:57.340
Read from controlfile member '/oradata/hxlscx/control02.ctl' has found a corrupted block (blk# 3, seq# 0)
Hex dump of (file 0, block 3)
Dump of memory from 0x0000002A9737BE00 to 0x0000002A9737FE00
2A9737BE00 0000C215 00000003 00000000 04010000  [................]
2A9737BE10 0000139B 00000002 00000000 00000079  [............y...]
2A9737BE20 00000920 00153E81 00000000 00000920  [ ....>...... ...]
2A9737BE30 00153FB6 00000000 EB5715FB 0000000E  [.?........W.....]
2A9737BE40 2DEB50B0 28D777F6 060F63DC 00000000  [.P.-.w.(.c......]
2A9737BE50 2DD51468 628423F2 00000000 00000000  [h..-.#.b........]
2A9737BE60 00000000 00000000 00000000 00000000  [................]
        Repeat 1016 times
2A9737FDF0 00000000 00000000 00000000 00001501  [................]
Corrupt block relative dba: 0x00000003 (file 0, block 3)
Bad check value found during control file block read
Data in bad block:
type: 21 format: 2 rdba: 0x00000003
last change scn: 0x0000.00000000 seq: 0x1 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x00001501
check value in block header: 0x139b
computed block checksum: 0x1
Re-read from controlfile member '/oradata/hxlscx/control02.ctl' returned valid block 3


这种情况是不是磁盘有坏块?
2#
发表于 2011-12-24 00:13:07
Re-read from controlfile member '/oradata/hxlscx/control02.ctl' returned valid block 3

不一定。

"当rman读取到该数据块时可能存储正在对其进行写的操作,所以rman在第一次读取时认为该快断裂了(Fractured);之后rman对该块进行reread发现”断裂”现象已不存在,而”Corrupt block”仅仅是一种假象;针对上述问题可以对表或索引进行进一步的analyze..validate操作以确保不存在坏块。
同时上述”Corrupt block误报”现象极有可能是因为在Rman备份期间个别数据文件的IO过于活跃所致(如频繁的dml操作),建议在磁盘活跃度低的时间段运行rman备份工作。"


见 Fractured block found during backing up datafile http://www.oracledatabase12g.com ... ng-up-datafile.html

回复 只看该作者 道具 举报

3#
发表于 2011-12-24 00:46:05
在上述时间段应该没有Rman备份的操作,对与你给出的建议会去做进一步的观察,Thinks!

[ 本帖最后由 Honcho 于 2011-12-24 00:53 编辑 ]

回复 只看该作者 道具 举报

4#
发表于 2011-12-24 01:00:40
Thanks 打错了 。。。。。

回复 只看该作者 道具 举报

5#
发表于 2011-12-26 20:26:31
你好,

未必一定要有RMAN的操作。 一般发现块断裂了(Fractured),都会尝试去re-read重复读的;而造成Fractured的IO原因可能有很多

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 01:55 , Processed in 0.048224 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569