天萃荷净

运维DBA巡检发现数据文件中存在坏块,使用RMAN工具的命令clear标记数据坏块,使用bbed修复坏块

在rman中有隐藏的命令clear,可以标记数据块为corrupt,从而实现数据库坏块试验,本篇blog通过dbv,bbed,table select来验证坏块的出现和修复

创建测试表

SQL> create table t_oracleplus as

2 select object_id,object_name from dba_objects where rownum<10;

Table created.

SQL> select rowid,

2 dbms_rowid.rowid_relative_fno(rowid) rel_fno,

3 dbms_rowid.rowid_block_number(rowid) block

4 from chf.t_oracleplus;

ROWID REL_FNO BLOCK

------------------ ---------- ----------

AAAStAAAEAAAACrAAA 4 171

AAAStAAAEAAAACrAAB 4 171

AAAStAAAEAAAACrAAC 4 171

AAAStAAAEAAAACrAAD 4 171

AAAStAAAEAAAACrAAE 4 171

AAAStAAAEAAAACrAAF 4 171

AAAStAAAEAAAACrAAG 4 171

AAAStAAAEAAAACrAAH 4 171

AAAStAAAEAAAACrAAI 4 171

9 rows selected.

SQL> alter system checkpoint;

System altered.

1.dbv验证坏块

[oracle@oracleplus ~]$ dbv file=/u01/oracle/oradata/ora11g/users01.dbf

DBVERIFY: Release 11.2.0.3.0 - Production on Sun Jan 20 09:12:16 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

DBVERIFY - Verification starting : FILE = /u01/oracle/oradata/ora11g/users01.dbf

DBVERIFY - Verification complete

Total Pages Examined : 7680

Total Pages Processed (Data) : 3776

Total Pages Failing (Data) : 0

Total Pages Processed (Index): 167

Total Pages Failing (Index): 0

Total Pages Processed (Other): 744

Total Pages Processed (Seg) : 0

Total Pages Failing (Seg) : 0

Total Pages Empty : 2993

Total Pages Marked Corrupt : 0

Total Pages Influx : 0

Total Pages Encrypted : 0

Highest block SCN : 1006717955 (2956.1006717955)

这里创建了t_oracleplus表,数据存储在file 4 block 171中,现在该block一切正常,本试验就是要通过rman来使得该block corrupt,然后通过bbed来修复

bbed查看kcbh

BBED> set block 171

BLOCK# 171

BBED> p kcbh

struct kcbh, 20 bytes @0

ub1 type_kcbh @0 0x06

ub1 frmt_kcbh @1 0xa2

ub1 spare1_kcbh @2 0x00

ub1 spare2_kcbh @3 0x00

ub4 rdba_kcbh @4 0x010000ab

ub4 bas_kcbh @8 0x3c014bfe

ub2 wrp_kcbh @12 0x0b8c

ub1 seq_kcbh @14 0x02

ub1 flg_kcbh @15 0x04 (KCBHFCKV)

ub2 chkval_kcbh @16 0x6e0c

ub2 spare3_kcbh @18 0x0000

2.rman标记坏块

RMAN> BLOCKRECOVER DATAFILE 4 block 171 clear;

Starting recover at 20-JAN-13

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 device type=DISK

Finished recover at 20-JAN-13

dbv再次检查坏块

[oracle@oracleplus ~]$ dbv file=/u01/oracle/oradata/ora11g/users01.dbf

DBVERIFY: Release 11.2.0.3.0 - Production on Sun Jan 20 09:53:16 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

DBVERIFY - Verification starting : FILE = /u01/oracle/oradata/ora11g/users01.dbf

Page 171 is marked corrupt

Corrupt block relative dba: 0x010000ab (file 4, block 171)

Bad check value found during dbv:

Data in bad block:

type: 6 format: 2 rdba: 0x010000ab

last change scn: 0x0b8c.3c014bfe seq: 0x2 flg: 0x04

spare1: 0x0 spare2: 0x0 spare3: 0x0

consistency value in tail: 0x4bfe0602

check value in block header: 0x6e0c

computed block checksum: 0xb5bc

DBVERIFY - Verification complete

Total Pages Examined : 7680

Total Pages Processed (Data) : 3775

Total Pages Failing (Data) : 0

Total Pages Processed (Index): 167

Total Pages Failing (Index): 0

Total Pages Processed (Other): 744

Total Pages Processed (Seg) : 0

Total Pages Failing (Seg) : 0

Total Pages Empty : 2993

Total Pages Marked Corrupt : 1

Total Pages Influx : 1

Total Pages Encrypted : 0

Highest block SCN : 1006717955 (2956.1006717955)

尝试查询数据

SQL> select count(*) from t_oracleplus;

select count(*) from t_oracleplus

*

ERROR at line 1:

ORA-01578: ORACLE data block corrupted (file # 4, block # 171)

ORA-01110: data file 4: '/u01/oracle/oradata/ora11g/users01.dbf'

bbed验证坏块

BBED> set block 171

BLOCK# 171

BBED> p kcbh

struct kcbh, 20 bytes @0

ub1 type_kcbh @0 0x06

ub1 frmt_kcbh @1 0xa2

ub1 spare1_kcbh @2 0x00

ub1 spare2_kcbh @3 0x00

ub4 rdba_kcbh @4 0x010000ab

ub4 bas_kcbh @8 0x3c014bfe

ub2 wrp_kcbh @12 0x0b8c

ub1 seq_kcbh @14 0x02

ub1 flg_kcbh @15 0x04 (KCBHFCKV)

ub2 chkval_kcbh @16 0x6e0c

ub2 spare3_kcbh @18 0x0000

BBED> verify

DBVERIFY - Verification starting

FILE = /u01/oracle/oradata/ora11g/users01.dbf

BLOCK = 171

Block 171 is corrupt

Corrupt block relative dba: 0x010000ab (file 0, block 171)

Bad check value found during verification

Data in bad block:

type: 6 format: 2 rdba: 0x010000ab

last change scn: 0x0b8c.3c014bfe seq: 0x2 flg: 0x04

spare1: 0x0 spare2: 0x0 spare3: 0x0

consistency value in tail: 0x4bfe0602

check value in block header: 0x6e0c

computed block checksum: 0xb5bc

DBVERIFY - Verification complete

Total Blocks Examined : 1

Total Blocks Processed (Data) : 0

Total Blocks Failing (Data) : 0

Total Blocks Processed (Index): 0

Total Blocks Failing (Index): 0

Total Blocks Empty : 0

Total Blocks Marked Corrupt : 1

Total Blocks Influx : 0

Message 531 not found; product=RDBMS; facility=BBED

这里通过dbv,bbed,select table都证明rman能够标记block为Corrupt.

这里需要分析:block已经被标记,那证明该块肯定有修改,也就是说chkval_kcbh一定要变化,但是这里没有变化,证明该处异常

3.bbed修复rman生成坏块

BBED> sum apply

Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y

Check value for File 0, Block 171:

current = 0xdbb0, required = 0xdbb0

BBED> verify

DBVERIFY - Verification starting

FILE = /u01/oracle/oradata/ora11g/users01.dbf

BLOCK = 171

DBVERIFY - Verification complete

Total Blocks Examined : 1

Total Blocks Processed (Data) : 1

Total Blocks Failing (Data) : 0

Total Blocks Processed (Index): 0

Total Blocks Failing (Index): 0

Total Blocks Empty : 0

Total Blocks Marked Corrupt : 0

Total Blocks Influx : 0

Message 531 not found; product=RDBMS; facility=BBED

bbed测试坏块已经修复

dbv验证坏块

[oracle@oracleplus ~]$ dbv file=/u01/oracle/oradata/ora11g/users01.dbf

DBVERIFY: Release 11.2.0.3.0 - Production on Sun Jan 20 10:01:46 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

DBVERIFY - Verification starting : FILE = /u01/oracle/oradata/ora11g/users01.dbf

DBVERIFY - Verification complete

Total Pages Examined : 7680

Total Pages Processed (Data) : 3776

Total Pages Failing (Data) : 0

Total Pages Processed (Index): 167

Total Pages Failing (Index): 0

Total Pages Processed (Other): 744

Total Pages Processed (Seg) : 0

Total Pages Failing (Seg) : 0

Total Pages Empty : 2993

Total Pages Marked Corrupt : 0

Total Pages Influx : 0

Total Pages Encrypted : 0

Highest block SCN : 1006717955 (2956.1006717955)

dbv测试坏块也被修复

查询表验证

SQL> select count(*) from t_oracleplus;

COUNT(*)

----------

9

数据也可以正常查询,证明rman的坏块问题通过bbed解决

总结说明

1.我们可以通过rman的clear命令来标记坏块(BLOCKRECOVER DATAFILE file# BLOCK block1#, block2#, block3#… CLEAR ;)

2.我们可以通过bbed的sum apply命令来修复该类型坏块

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之案例:Oracle坏块 使用RMAN工具的命令clear标记数据块为corrupt 修复坏块

oracle 数据块 修复,案例:Oracle坏块 使用RMAN工具的命令clear标记数据块为corrupt 修复坏块...相关推荐

  1. oracle dul 扫描磁盘,案例:Oracle dul数据挖掘 磁盘损坏dul提取数据文件中表的数据及l...

    天萃荷净 通过使用Oracle DUL工具提取损坏磁盘里的数据库文件中的表及lob字段中内容 在有次8i的库恢复中,因为硬盘损坏导致几个表出现很多诡异性坏块,尝试使用dul对其进行挖掘数据,当时使用d ...

  2. oracle log block size,案例:Oracle无法启动报错ORA-00218: block size 0 重建控制文件

    天萃荷净 oracle数据库无法启动报错ORA-00218故障,通过重建控制文件解决文件损坏问题 遇到一个案例在数据库启动的时候报ORA-00218错误,而这个故障的引起原因是因为重建控制文件的时候, ...

  3. oracle没用过元数据,案例:Oracle RAC asm备份元数据之md_backup和md_restore 好处与

    天萃荷净 Oracle rAC asm备份元数据之md_backup和md_restore好处与坏处 在11g的asm中增加了md_backup和md_restore命令,用来备份和还原asm的元数据 ...

  4. oracle 10035 err 942,案例:Oracle日志报错 Fatal NI connect error 12170 TNS-12535 TNS-00505

    天萃荷净 Oracle数据库alert日志文件报错Fatal NI connect error 12170,通过查看mos相关文章找到解决办法 今天在一台服务器的日志文件中,发现如下信息: Fatal ...

  5. oracle goldengate 数据库实例,案例:Oracle goldengate报错ggsci: error while loading shared libraries:...

    天萃荷净 Oracle goldengate配置时报错ggsci: error while loading shared libraries 在部署goldengate过程中发现如下错误: [orac ...

  6. oracle 提示存在lob,案例:Oracle数据库临时文件特别大 commit后lob字段使用临时表空...

    测试结果$ ./test1.sh SQL*Plus: Release 10.2.0.5.0 - Production on Fri Oct 12 10:04:39 2012 Copyright (c) ...

  7. 让数据填报、收集效率提升80%!这个报表工具真的太强大了

    需要做数据汇报,有什么好的数据填报工具推荐? 选择填报工具最主要还是要看你实际的数据量 1.对于小企业来说,简单的数据填报收集工具用石墨文档/腾讯文档足矣 2.对于中大型企业复杂数据填报场景来说,用F ...

  8. AI人工智能标记数据的技术:类型、方法、质量控制、应用

    AI人工智能 标记数据 在人工智能(Artificial Intelligence,简称AI)领域中,标记数据是非常重要的一环.它是指对原始数据进行标记和注释,以便机器学习算法可以理解和利用这些数据. ...

  9. oracle坏块 戴明明,Oracle数据库问题解决方案和故障排除手册

    第1 章 LOB 段性能的诊断与调优 1 1.1 LOB 数据类型的介绍 1 1.1.1 解决LOB 问题:一个真实的案例 2 1.1.2 另一个真实案例:HW 分析 4 1.1.3 BASICFIL ...

最新文章

  1. 藤摇椅游戏道具制作全流程讲解视频教程
  2. 请大佬们多给运维人员思考和决策的权利
  3. CDO/CDS与次贷危机
  4. 深入理解 C 指针阅读笔记 -- 第四章
  5. 机器学习常见算法汇总
  6. mysql嵌入式语句_MySQL/MariaDB 语句速查笔记
  7. 函数计算帮助石墨文档突破性能瓶颈,有效节省服务器成本
  8. C++描述杭电OJ 2017.字符串统计||
  9. iosession在linux下拒绝链接,iosession 关闭
  10. python编程入门与案例详解-干货|| 清华大佬推荐的python400集入门资料
  11. jQuery 选择器 (基础恶补之二)
  12. Linux find并移动mv 14天前的文件
  13. (最小割求最小割集)poweroj2883病毒侵染
  14. python 手机号码_Python手机号码归属地查询代码
  15. C语言程序设计精髓 第14周——结构设计的艺术 练兵区——编程题
  16. 腾讯云Ubuntu18.04.4上安装brat文本标注工具(2020年9月)
  17. ESP8266开发板+mysql数据库+DHT11
  18. seetaface6 GPU版本windows编译
  19. 张生情迷崔莺莺,襄王意欲会神女——新说莺莺传之二
  20. SQL查询语句分步详解——SELECT...FROM...WHERE...GROUP BY...

热门文章

  1. 著名物理学家张首晟2018年12月1日去世,享年 55 岁。此事件被美国当地警方认为是自杀,目前已经结案。
  2. Android开发之将Edittext输入弹出的软键盘设置搜索确定键。详细代码,已验证可用。...
  3. 王老吉三亿元投资雅安被质疑作秀九
  4. java制造业MES企业生产管理系统,ERP系统源码 MES制造执行系统
  5. 冒泡排序zzzzzzz
  6. 2022-2028年中国氦质谱检漏仪行业竞争策略研究及未来前景展望报告
  7. Timer TimerTask
  8. 《Openwrt开发》第一章:newifi3 刷自己编译的Openwrt固件
  9. Wonderware MES—施耐德MES/MOM平台解读
  10. SCons简单入门(一)