创建測试表:

  1. ZBDBA@orcl11g>select * from zbdba;
  2. NAME
  3. ------------------------------------------------------------
  4. zbdba
  5. huihui
  6.  
  7. ZBDBA@orcl11g>
  8. ZBDBA@orcl11g>
  9. ZBDBA@orcl11g>
  10. ZBDBA@orcl11g>
  11. ZBDBA@orcl11g>select rowid,dbms_rowid.rowid_object(rowid) robject,
  12. 2 dbms_rowid.rowid_relative_fno(rowid) fno,
  13. 3 dbms_rowid.rowid_block_number(rowid) bno,
  14. 4 dbms_rowid.rowid_row_number(rowid) rno from zbdba where rownum=1;
  15.  
  16. ROWID ROBJECT FNO BNO RNO
  17. ------------------ ---------- ---------- ---------- ----------
  18. AAASMNAAGAAAAC/AAA 74509 6 191 0

使用bbed改动块状态:

  1. BBED> set file 6 block 191
  2. FILE# 6
  3. BLOCK# 191
  4.  
  5. BBED> map
  6. File: /opt/oracle/oradata/orcl11g/zbdba01.dbf (6)
  7. Block: 191 Dba:0x018000bf
  8. ------------------------------------------------------------
  9. KTB Data Block (Table/Cluster)
  10.  
  11. struct kcbh, 20 bytes @0
  12.  
  13. struct ktbbh, 72 bytes @20
  14.  
  15. struct kdbh, 14 bytes @100
  16.  
  17. struct kdbt[1], 4 bytes @114
  18.  
  19. sb2 kdbr[2] @118
  20.  
  21. ub1 freespace[8047] @122
  22.  
  23. ub1 rowdata[19] @8169
  24.  
  25. ub4 tailchk @8188
  26.  
  27. BBED> p kcbh
  28. struct kcbh, 20 bytes @0
  29. ub1 type_kcbh @0 0x06
  30. ub1 frmt_kcbh @1 0xa2
  31. ub1 spare1_kcbh @2 0x00
  32. ub1 spare2_kcbh @3 0x00
  33. ub4 rdba_kcbh @4 0x018000bf
  34. ub4 bas_kcbh @8 0x005036cd
  35. ub2 wrp_kcbh @12 0x0000
  36. ub1 seq_kcbh @14 0x01
  37. ub1 flg_kcbh @15 0x06 (KCBHFDLC, KCBHFCKV)
  38. ub2 chkval_kcbh @16 0x426d
  39. ub2 spare3_kcbh @18 0x0000
  40.  
  41. BBED> modify /x ff offset 14
  42. Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
  43. File: /opt/oracle/oradata/orcl11g/zbdba01.dbf (6)
  44. Block: 191 Offsets: 14 to 525 Dba:0x018000bf
  45. ------------------------------------------------------------------------
  46. ff066d42 00000100 00000d23 01009636 50000000 00000200 3200b800 80011300
  47. 02001800 0000e90b 80021100 38000220 0000cd36 50000000 00000000 00000000
  48. 00000000 00000000 00000000 00000000 00000000 00000001 0200ffff 1600851f
  49. 6f1f6f1f 00000200 8f1f851f 00000000 00000000 00000000 00000000 00000000
  50. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  51. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  52. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  53. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  54. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  55. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  56. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  57. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  58. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  59. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  60. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  61. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  62.  
  63. <32 bytes per line>
  64.  
  65. BBED> p kcbh
  66. struct kcbh, 20 bytes @0
  67. ub1 type_kcbh @0 0x06
  68. ub1 frmt_kcbh @1 0xa2
  69. ub1 spare1_kcbh @2 0x00
  70. ub1 spare2_kcbh @3 0x00
  71. ub4 rdba_kcbh @4 0x018000bf
  72. ub4 bas_kcbh @8 0x005036cd
  73. ub2 wrp_kcbh @12 0x0000
  74. ub1 seq_kcbh @14 0xff
  75. ub1 flg_kcbh @15 0x06 (KCBHFDLC, KCBHFCKV)
  76. ub2 chkval_kcbh @16 0x426d
  77. ub2 spare3_kcbh @18 0x0000
  78.  
  79. BBED> sum apply
  80. Check value for File 6, Block 191:
  81. current = 0x4293, required = 0x4293

再回数据库查看该表:

  1. ZBDBA@orcl11g>select * from zbdba;
  2. select * from zbdba
  3. *
  4. ERROR at line 1:
  5. ORA-01578: ORACLE data block corrupted (file # 6, block # 191)
  6. ORA-01110: data file 6: '/opt/oracle/oradata/orcl11g/zbdba01.dbf'

常规坏块的处理方式:

1、event 10231

2、rowid抽取

3、DBMS_REPAIR

这里我用bbed修复该块:

  1. BBED> p kcbh
  2. struct kcbh, 20 bytes @0
  3. ub1 type_kcbh @0 0x06
  4. ub1 frmt_kcbh @1 0xa2
  5. ub1 spare1_kcbh @2 0x00
  6. ub1 spare2_kcbh @3 0x00
  7. ub4 rdba_kcbh @4 0x018000bf
  8. ub4 bas_kcbh @8 0x005036cd
  9. ub2 wrp_kcbh @12 0x0000
  10. ub1 seq_kcbh @14 0xff
  11. ub1 flg_kcbh @15 0x06 (KCBHFDLC, KCBHFCKV)
  12. ub2 chkval_kcbh @16 0x4293
  13. ub2 spare3_kcbh @18 0x0000
  14.  
  15. BBED> p tailchk
  16. ub4 tailchk @8188 0x36cd0601

这里tailchk信息正确,无需改动

  1. BBED> modify /x 01 offset 14
  2. Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
  3. File: /opt/oracle/oradata/orcl11g/zbdba01.dbf (6)
  4. Block: 191 Offsets: 14 to 525 Dba:0x018000bf
  5. ------------------------------------------------------------------------
  6. 01069342 00000100 00000d23 01009636 50000000 00000200 3200b800 80011300
  7. 02001800 0000e90b 80021100 38000220 0000cd36 50000000 00000000 00000000
  8. 00000000 00000000 00000000 00000000 00000000 00000001 0200ffff 1600851f
  9. 6f1f6f1f 00000200 8f1f851f 00000000 00000000 00000000 00000000 00000000
  10. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  11. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  12. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  13. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  14. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  15. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  16. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  17. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  18. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  19. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  20. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  21. 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  22.  
  23. <32 bytes per line>
  24.  
  25. BBED> p kcbh
  26. struct kcbh, 20 bytes @0
  27. ub1 type_kcbh @0 0x06
  28. ub1 frmt_kcbh @1 0xa2
  29. ub1 spare1_kcbh @2 0x00
  30. ub1 spare2_kcbh @3 0x00
  31. ub4 rdba_kcbh @4 0x018000bf
  32. ub4 bas_kcbh @8 0x005036cd
  33. ub2 wrp_kcbh @12 0x0000
  34. ub1 seq_kcbh @14 0x01
  35. ub1 flg_kcbh @15 0x06 (KCBHFDLC, KCBHFCKV)
  36. ub2 chkval_kcbh @16 0x4293
  37. ub2 spare3_kcbh @18 0x0000
  38.  
  39. BBED> sum apply
  40. Check value for File 6, Block 191:
  41. current = 0x426d, required = 0x426d
  42.  
  43. BBED> verify
  44. DBVERIFY - Verification starting
  45. FILE = /opt/oracle/oradata/orcl11g/zbdba01.dbf
  46. BLOCK = 191
  47.  
  48. DBVERIFY - Verification complete
  49.  
  50. Total Blocks Examined : 1
  51. Total Blocks Processed (Data) : 1
  52. Total Blocks Failing (Data) : 0
  53. Total Blocks Processed (Index): 0
  54. Total Blocks Failing (Index): 0
  55. Total Blocks Empty : 0
  56. Total Blocks Marked Corrupt : 0
  57. Total Blocks Influx : 0
  58. Message 531 not found; product=RDBMS; facility=BBED

再次去数据库查询:

  1. ZBDBA@orcl11g>select * from zbdba;
  2. NAME
  3. ------------------------------------------------------------
  4. zbdba
  5. huihui

BBED标记坏块以及修复坏块的更多相关文章

  1. 使用 DBMS_REPAIR 修复坏块

    对于Oracle数据块物理损坏的情形,在我们有备份的情况下可以直接使用备份来恢复.对于通过备份恢复,Oracel为我们提供了很多种方式,冷备,基于用户管理方式,RMAN方式等等.对于这几种方式我们需要 ...

  2. linux操作系统故障处理-ext4文件系统超级块损坏修复

    linux操作系统故障处理-ext4文件系统超级块损坏修复   背景 前天外面出差大数据测试环境平台有7台服务器挂了,同事重启好了五台服务器,但是还有两台服务器启动不起来,第二天回来后我和同事再次去机 ...

  3. About 静态代码块,普通代码块,同步代码块,构造代码块和构造函数的纳闷

    构造函数用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种.特点:1:该函数的名称和所在类的名称相同.2:不需要定义返回值类型.3:该函数没有具体的返回值.记住:所有对象创 ...

  4. Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究

    Java与C++有一个不同之处在于,Java不但有构造函数,还有一个”初始化块“(Initialization Block)的概念.下面探究一下它的执行顺序与可能的用途. 执行顺序 首先定义A, B, ...

  5. 10、代码块、构造代码块、静态代码块及main方法之间的关系

    1.普通代码块: 在方法或语句中出现在{}之间的类容就称为普通代码块,简称代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”,即顺序执行. /*下面第一个类时合法的 ...

  6. Java中普通代码块,构造代码块,静态代码块区别及代码示例

    //执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...

  7. Java中普通代码块,构造代码块,静态代码块执行顺序

    //执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...

  8. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  9. 静态(static)代码块、构造代码块、构造函数、父类子类执行顺序

    静态代码块:static修饰的代码块. 在类加载-初始化的时候进行,主要目的是给变量赋予初始值 构造代码块:直接在类中定义且没有加static关键字的代码块称为构造代码块. java会把构造代码块放到 ...

随机推荐

  1. 在Fedora8上安装使用ActiveMQ5.8

    [ActiveMQ安装] ActiveMQ在win平台的安装简单,在Linux Fedora上安装也不难,解压就可以了.以下是我总结的步骤: 第一步,从以下地址下载apache-activemq-5. ...

  2. 算法笔记_196:历届试题 剪格子(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+|10* 1|52|+--****--+|20|30* 1|**** ...

  3. 算法笔记_182:历届试题 核桃的数量(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是: 1. ...

  4. 开源 免费 java CMS - FreeCMS1.9 移动APP管理 网站配置

    项目地址:http://www.freeteam.cn/ 网站配置 管理员能够在这里设置当前管理网站是否同意移动app訪问,是否默认移动APP网站.首页的布局,首页数据最多载入页数. 从左側管理菜单点 ...

  5. js 取值&赋值-form表单

      form表单元素介绍 CreateTime--2016年9月22日10:25:54 Author:Marydon <form> 表单元素. 表单中的元素: <input>表 ...

  6. js-知识集锦

      CreateTime--2016年9月22日14:37:51Author:Marydonjs小知识点集锦1. JSON.stringify(Obj);//将Object对象转换成json格式的st ...

  7. exception PLS-00103: Encountered the symbol "(" when expecting one of the following:

      exception PLS-00103: Encountered the symbol "(" when expecting one of the following: Cre ...

  8. 〖Linux〗clang3.4的编译与安装

    1. 编译与安装clang3.4 sudo apt-get install -y g++ subversion cmake cd ~ mkdir Clang && cd Clang s ...

  9. 如何让history命令显示最近所执行过的命令的具体执行时间

    如何让history命令显示最近所执行过的命令的具体执行时间. 步骤如下: 1.以ROOT用户编辑/etc/profile文件,在里面加入下面内容(我一般习惯在最末尾加): export HISTTI ...

  10. Intellij IDEA 快捷键整理(dyCopy)

    原文:http://www.cnblogs.com/tonycody/p/3257601.html   [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “! ...