用UE替换了datafile中的几个字符,注意个数要一致,否则会出现ORA错误,提示datafile大小与blocksize不匹配,或者提示实际块大小小于指定块大小等错误.
C:\Documents and Settings\oracle>dbv file='D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF'
DBVERIFY: Release 10.2.0.4.0 - Production on 星期一 5月 5 20:22:55 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - 开始验证: FILE = D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
页 201 标记为损坏
Corrupt block relative dba: 0x018000c9 (file 6, block 201)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x018000c9
last change scn: 0x0000.000b0e50 seq: 0x1 flg: 0x06
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e500601
check value in block header: 0x2969
computed block checksum: 0x3939
页 339 标记为损坏
Corrupt block relative dba: 0x01800153 (file 6, block 339)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x01800153
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x4d14
computed block checksum: 0x1e36
页 492 标记为损坏
Corrupt block relative dba: 0x018001ec (file 6, block 492)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x018001ec
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x2421
computed block checksum: 0x3a36
页 511 标记为损坏
Corrupt block relative dba: 0x018001ff (file 6, block 511)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x018001ff
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x9f65
computed block checksum: 0x362f
DBVERIFY - 验证完成
检查的页总数: 1280
处理的页总数 (数据): 497
失败的页总数 (数据): 0
处理的页总数 (索引): 0
失败的页总数 (索引): 0
处理的页总数 (其它): 30
处理的总页数 (段) : 0
失败的总页数 (段) : 0
空的页总数: 749
标记为损坏的总页数: 4
流入的页总数: 0
最高块 SCN : 728966 (0.728966)
我们制造了4个坏块.这时我们用RMAN进行恢复,必须用RMAN.
16进制0x018000c9 相当于 10进制25166025 (在UE中可以进行进制转换)
RMAN> blockrecover tablespace "TEST" DBA 25166025 from datafilecopy;
启动 blockrecover 于 2008-05-05 20:39:01
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在从数据文件副本 D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF1 还原块
正在开始介质的恢复
介质恢复完成, 用时: 00:00:08
完成 blockrecover 于 2008-05-05 20:39:10
C:\Documents and Settings\oracle>dbv file='D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF'
DBVERIFY: Release 10.2.0.4.0 - Production on 星期一 5月 5 20:40:38 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - 开始验证: FILE = D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
页 339 标记为损坏
Corrupt block relative dba: 0x01800153 (file 6, block 339)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x01800153
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x4d14
computed block checksum: 0x1e36
页 492 标记为损坏
Corrupt block relative dba: 0x018001ec (file 6, block 492)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x018001ec
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x2421
computed block checksum: 0x3a36
页 511 标记为损坏
Corrupt block relative dba: 0x018001ff (file 6, block 511)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x018001ff
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x9f65
computed block checksum: 0x362f
DBVERIFY - 验证完成
检查的页总数: 1280
处理的页总数 (数据): 498
失败的页总数 (数据): 0
处理的页总数 (索引): 0
失败的页总数 (索引): 0
处理的页总数 (其它): 30
处理的总页数 (段) : 0
失败的总页数 (段) : 0
空的页总数: 749
标记为损坏的总页数: 3
流入的页总数: 0
最高块 SCN : 728966 (0.728966)
我们可以看到已经成功恢复了一个坏块.
339对应的DBA应该是25166163,这时我故意写错,测试是否可以通过block号进行恢复,即使DBA写错
RMAN> blockrecover datafile 6 block 339 tablespace "TEST" DBA 25166164 from datafilecopy;
启动 blockrecover 于 2008-05-05 20:43:33
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在从数据文件副本 D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF1 还原块
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
完成 blockrecover 于 2008-05-05 20:43:38
我们查看DBV,发现已经恢复了:
C:\Documents and Settings\oracle>dbv file='D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF'
DBVERIFY: Release 10.2.0.4.0 - Production on 星期一 5月 5 20:44:08 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - 开始验证: FILE = D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
页 492 标记为损坏
Corrupt block relative dba: 0x018001ec (file 6, block 492)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x018001ec
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x2421
computed block checksum: 0x3a36
页 511 标记为损坏
Corrupt block relative dba: 0x018001ff (file 6, block 511)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x018001ff
last change scn: 0x0000.000b0e91 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x0e910602
check value in block header: 0x9f65
computed block checksum: 0x362f
DBVERIFY - 验证完成
检查的页总数: 1280
处理的页总数 (数据): 499
失败的页总数 (数据): 0
处理的页总数 (索引): 0
失败的页总数 (索引): 0
处理的页总数 (其它): 30
处理的总页数 (段) : 0
失败的总页数 (段) : 0
空的页总数: 749
标记为损坏的总页数: 2
流入的页总数: 0
最高块 SCN : 728966 (0.728966)
还剩2个坏块,我们通过块号和DBA来分别指定:
RMAN> blockrecover datafile 6 block 492 tablespace "TEST" DBA 25166335 restore until scn 728966 from datafilecopy
2> ;
启动 blockrecover 于 2008-05-05 20:47:40
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在从数据文件副本 D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF1 还原块
正在开始介质的恢复
介质恢复完成, 用时: 00:00:07
完成 blockrecover 于 2008-05-05 20:47:49
25166335 是551块的DBA地址.
C:\Documents and Settings\oracle>dbv file='D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF'
DBVERIFY: Release 10.2.0.4.0 - Production on 星期一 5月 5 20:48:20 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
DBVERIFY - 开始验证: FILE = D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST.DBF
DBVERIFY - 验证完成
检查的页总数: 1280
处理的页总数 (数据): 501
失败的页总数 (数据): 0
处理的页总数 (索引): 0
失败的页总数 (索引): 0
处理的页总数 (其它): 30
处理的总页数 (段) : 0
失败的总页数 (段) : 0
空的页总数: 749
标记为损坏的总页数: 0
流入的页总数: 0
最高块 SCN : 728966 (0.728966)
再次检查,我们发现已经没有坏块,全部修复.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/175005/viewspace-260443/ ,如需转载,请注明出处,否则将追究法律责任。