Chinaunix首页 | 论坛 | 博客
  • 博客访问: 135726
  • 博文数量: 9
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 98
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-21 11:59
文章分类

全部博文(9)

文章存档

2014年(1)

2013年(2)

2012年(6)

我的朋友

分类: Oracle

2013-12-30 17:38:21

原文地址:BBED修复ORA-01190 作者:TOMSYAN


 

在数据库恢复的过程中可能遇到如下的错误:


 

点击(此处)折叠或打开

  1. SQL> alter tablespace htyansp online;
  2. alter tablespace htyansp online
  3. *
  4. ERROR at line 1:
  5. ORA-01190: control file or data file 6 is from before the last RESETLOGS
  6. ORA-01110: data file 6: '/u01/app/oracle/oradata/huateng/htyansp01.dbf'


这是由于数据文件头记录的RESETLOG SCN 及其RESETLOG COUNT与 控制文件中的不一致。

如下所示:

 

点击(此处)折叠或打开

  1. SQL> select to_char(RESETLOGS_CHANGE#,'xxxxxxxx'),to_char(PRIOR_RESETLOGS_CHANGE#,'xxxxxxxx')

  2. from v$database;

  3. TO_CHAR(R TO_CHAR(P
  4. --------- ---------

  5.    20704c 206c94


数据文件记录的本次RESETLOGS SCN为 0x20704c ,上一次为0x206c94 。

BBED查看到这个文件头记录的RESETLOG SCN 及其RESETLOG COUNT 为 上次的,如下所示:

点击(此处)折叠或打开

  1.    ub4 kcvfhrlc                             @112      0x2f2a2021
       struct kcvfhrls, 8 bytes                 @116    
          ub4 kscnbas                           @116      0x00206c94
  2.       ub2 kscnwrp                           @120      0x0000

正常文件的RESETLOG SCN为如下:

点击(此处)折叠或打开

   ub4 kcvfhrlc                             @112      0x2f2a23d8
   struct kcvfhrls, 8 bytes                 @116    
      ub4 kscnbas                           @116      0x0020704c
      ub2 kscnwrp                           @120      0x0000

如果没有备份的话,可以通过BBED来修复:

点击(此处)折叠或打开

  1. BBED> set offset 116
  2.         OFFSET 116

  3. BBED> dump /v count 16
  4.  File: /u01/app/oracle/oradata/huateng/htyansp01.dbf (0)
  5.  Block: 1 Offsets: 116 to 131 Dba:0x00000000
  6. -------------------------------------------------------

  7.  946c2000 00000000 00000000 00000000 l .l .............

  8.  <16 bytes per line>

  9. BBED> set mode edit
  10.         MODE Edit

  11. BBED> modify /x 4c70
  12. Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
  13.  File: /u01/app/oracle/oradata/huateng/htyansp01.dbf (0)
  14.  Block: 1 Offsets: 116 to 131 Dba:0x00000000
  15. ------------------------------------------------------------------------

  16.  4c702000 00000000 00000000 00000000

  17.  <32 bytes per line>

  18. BBED> set offset 112
  19.         OFFSET 112

  20. BBED> dump /v count 16
  21.  File: /u01/app/oracle/oradata/huateng/htyansp01.dbf (0)
  22.  Block: 1 Offsets: 112 to 127 Dba:0x00000000
  23. -------------------------------------------------------

  24.  21202a2f 4c702000 00000000 00000000 l ! */Lp .........

  25.  <16 bytes per line>

  26. BBED> modify /x d823
  27.  File: /u01/app/oracle/oradata/huateng/htyansp01.dbf (0)
  28.  Block: 1 Offsets: 112 to 127 Dba:0x00000000
  29. ------------------------------------------------------------------------

  30.  d8232a2f 4c702000 00000000 00000000

  31.  <32 bytes per line>

  32. BBED> sum apply
  33. Check value for File 0, Block 1:
  34. current = 0x39b6, required = 0x39b6

再次使表空间在线,错误就会变为ORA-01113。


 

点击(此处)折叠或打开

  1. SQL> alter tablespace htyansp online;
  2. alter tablespace htyansp online
  3. *
  4. ERROR at line 1:
  5. ORA-01113: file 6 needs media recovery
  6. ORA-01110: data file 6: '/u01/app/oracle/oradata/huateng/htyansp01.dbf'

ORA-01113错误修复就比较简单了,如果没有归档日志的话,也可以通过BBED来修复。

阅读(1964) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~