Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2896239
  • 博文数量: 599
  • 博客积分: 16398
  • 博客等级: 上将
  • 技术积分: 6875
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 12:04
个人简介

WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606

文章分类

全部博文(599)

文章存档

2014年(12)

2013年(56)

2012年(199)

2011年(105)

2010年(128)

2009年(99)

分类: Oracle

2012-08-06 16:21:23

ORA-01200错误的修复(一) http://blog.chinaunix.net/uid-22948773-id-3302663.html
 
除了使用构造文件的方法来骗过oracle外,我们还可以通过bbed修改文件头的方法来解决这个问题:
 

点击(此处)折叠或打开

  1. SQL> alter database open;
  2. alter database open
  3. *
  4. ERROR at line 1:
  5. ORA-01122: database file 6 failed verification check
  6. ORA-01110: data file 6: '/u01/app/oracle/oradata/huateng/htyansp01.dbf'
  7. ORA-01200: actual file size of 7399 is smaller than correct size of 12800
  8. blocks


  9. [oracle@db2server ~]$ bbed password=blockedit filename=/u01/app/oracle/oradata/huateng/htyansp01.dbf

  10. BBED: Release 2.0.0.0.0 - Limited Production on Sun Aug 5 17:52:43 2012

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

  12. ************* !!! For Oracle Internal Use only !!! ***************

  13. BBED> set block 1
  14.         BLOCK# 1

  15. BBED> show
  16.         FILE# 0
  17.         BLOCK# 1
  18.         OFFSET 0
  19.         DBA 0x00000000 (0 0,1)
  20.         FILENAME /u01/app/oracle/oradata/huateng/htyansp01.dbf
  21.         BIFILE bifile.bbd
  22.         LISTFILE
  23.         BLOCKSIZE 8192
  24.         MODE Browse
  25.         EDIT Unrecoverable
  26.         IBASE Dec
  27.         OBASE Dec
  28.         WIDTH 80
  29.         COUNT 512
  30.         LOGFILE log.bbd
  31.         SPOOL No

  32. BBED> p offset 44 --偏移量44记录了文件的实际大小,一共4个字节

  33. kcvfh.kcvfhhdr.kccfhfsz
  34. -----------------------

  35. ub4 kccfhfsz @44 0x00003200




  36. SQL> select to_number('3200','xxxx') from dual;

  37. TO_NUMBER('3200','XXXX')
  38. ------------------------

  39.                    12800

  40. SQL> select to_char(7399,'xxxx') from dual;

  41. TO_CH
  42. -----

  43.  1ce7



  44. BBED> set offset 44
  45.         OFFSET 44

  46. BBED> dump /v count 16
  47.  File: /u01/app/oracle/oradata/huateng/htyansp01.dbf (0)
  48.  Block: 1 Offsets: 44 to 59 Dba:0x00000000
  49. -------------------------------------------------------

  50.  00320000 00200000 06000300 00000000 l .2... ..........

  51.  <16 bytes per line>

  52. BBED> modify /x e71c
  53. BBED-00215: editing not allowed in BROWSE mode


  54. BBED> set mode edit
  55.         MODE Edit

  56. BBED> modify /x e71c
  57. Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
  58.  File: /u01/app/oracle/oradata/huateng/htyansp01.dbf (0)
  59.  Block: 1 Offsets: 44 to 59 Dba:0x00000000
  60. ------------------------------------------------------------------------

  61.  e71c0000 00200000 06000300 00000000

  62.  <32 bytes per line>

  63. BBED> sum apply
  64. Check value for File 0, Block 1:
  65. current = 0x4285, required = 0x4285

  66. BBED>


下面就可以打开数据库了:
 

点击(此处)折叠或打开

  1. SQL> alter database open;

  2. Database altered.

  3. SQL>

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