博客园 首页 联系 订阅 管理

近期有客户由于虚拟化平台系统负载过高,重启之后导致数据库出现一些坏块
1_1


其中被框起来的坏块比较好处理,属于数据库中间某个对象的block,对异常对象进行处理即可,但是有一个block 2,block 10 这种都属于数据文件中位图块(用来记录哪些block被使用,哪些block是没有使用),这种block如果损坏会导致该文件无法分配新的空间(也不能回收空间,无法统计表空间使用情况等)
1_2
1_3

alert日志有大量报错
1_5

对于这种情况,直接使用obet的坏块修复功能

 

OBET> set file 116
filename set to: /oradata/NNC_DATA207.dbf (file# 116)
endian auto-detected: little
 
OBET> set block 10
block set to: 10
 
OBET> backup
Backing up file #116, block 10
Successfully backed up block 10 from /oradata/NNC_DATA207.dbf to backup_blk/NNC_DATA207.dbf.10_20260902200547.blk
 
OBET> repair block
Warning: Missing value for 'block', using global setting: 10
 
Repairing block 10 in file /oradata/NNC_DATA207.dbf...
 
Repair analysis for block 10:
1. seq_kcbh check: 0xFF -> needs repair (0x01)
2. Tailchk check: 0x00001EFF -> needs repair (0x00001E01)
3. Checksum check: 0xCBC7 -> OK
 
Confirm repair operations:
File: /oradata/NNC_DATA207.dbf
Block: 10
Operations needed: fix offset14, fix tailchk
Confirm? (Y/YES to proceed): y
 
Verification after repair:
1. seq_kcbh: 0x01 OK
2. Tailchk: 0x00001E01 OK
3. Checksum: 0xCBC7 OK
 
Block 10 repair completed successfully.
 
OBET>
 
OBET> set file 119
filename set to: /oradata/NNC_DATA210.dbf (file# 119)
endian auto-detected: little
 
OBET> set block 2
block set to: 2
 
OBET> backup
Backing up file #119, block 2
Successfully backed up block 2 from /oradata/NNC_DATA210.dbf to backup_blk/NNC_DATA210.dbf.2_20260902200645.blk
 
OBET> repair block
Warning: Missing value for 'block', using global setting: 2
 
Repairing block 2 in file /oradata/NNC_DATA210.dbf...
 
Repair analysis for block 2:
1. seq_kcbh check: 0xFF -> needs repair (0x01)
2. Tailchk check: 0x00001DFF -> needs repair (0x00001D01)
3. Checksum check: 0x80EC -> OK
 
Confirm repair operations:
File: /oradata/NNC_DATA210.dbf
Block: 2
Operations needed: fix offset14, fix tailchk
Confirm? (Y/YES to proceed): y
 
Verification after repair:
1. seq_kcbh: 0x01 OK
2. Tailchk: 0x00001D01 OK
3. Checksum: 0x80EC OK
 
Block 2 repair completed successfully.
 
OBET> exit
Exiting OBET.

使用dbv检测,位图坏块全部修复

[oracle@nccdb ~]$ dbv file=/oradata/NNC_DATA210.dbf
 
DBVERIFY: Release 11.2.0.4.0 - Production on Wed Sep 2 20:07:15 2026
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
 
DBVERIFY - Verification starting : FILE = /oradata/NNC_DATA210.dbf
 
 
DBVERIFY - Verification complete
 
Total Pages Examined         : 4194302
Total Pages Processed (Data) : 3472440
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 205988
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 515867
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 7
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 751241252 (22.751241252)
[oracle@nccdb ~]$ dbv file=/oradata/NNC_DATA207.dbf
 
DBVERIFY: Release 11.2.0.4.0 - Production on Wed Sep 2 20:08:23 2026
 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
 
DBVERIFY - Verification starting : FILE = /oradata/NNC_DATA207.dbf
 
 
DBVERIFY - Verification complete
 
Total Pages Examined         : 4194302
Total Pages Processed (Data) : 3471468
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 204185
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 518642
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 7
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 751241266 (22.751241266)

后续数据顺利导出,完成这次恢复
1_4