blocksize=8192
listfile=/home/oracle/file
mode=edit
[oracle@localhost ~]$ more file.txt
3 /free/oracle/oradata/orcl/sysaux01.dbf 1614807040
5、恢复过程
接下来就可以使用BBED工具了:
[oracle@localhost ~]$ bbed
Password:
BBED: Release 2.0.0.0.0 - Limited Production on Tue Sep 20 18:19:33 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED>
BBED> modify /x 00960000 offset 44 ---用find /x c8 curr 找出51200所在之处, 因为38400的十六进制为9600,在根据倒位法则就是0096
File: /u01/u01d/system01.dbf (1)
Block: 1 Offsets: 44 to 555 Dba:0x00400001
------------------------------------------------------------------------
00960000 00200000 01000300 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 a1014000 07000000 00000000
4bbaa02a 9aabd02a 0e3a0f00 00000000 00000000 00000000 00000000 00000400
7a061000 00000000 86a7dd2a 01005162 01000000 8d660000 1000ffbf 02000000
00000000 6c010000 54abd02a 6b010000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 06005359 5354454d 00000000 00000000 00000000
00000000 00000000 00000000 01000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 0a000a00 9cefc52a
5c0a0d00 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<32 bytes per line>
BBED> sum apply
Check value for File 1, Block 1:
BBED> quit
试着打开数据库:
SQL> alter database open;
Database altered.
SQL> col name for a50
SQL> select file#,status,bytes/1024/1024 mb,name from v$datafile;
FILE# STATUS MB NAME
---------- ------- ---------- --------------------------------------------------
1 SYSTEM 300 /u01/u01d/system01.dbf
2 ONLINE 100 /u01/u01d/undotbs01.dbf
3 SYSTEM 300 /u01/u01d/sysaux01.dbf ---控制文件里记录是300M,而且数据库已经成功打开
4 ONLINE 25 /u01/u01d/users01.dbf
5 ONLINE 25 /u01/u01d/indx01.dbf
6 ONLINE 100 /u01/u01d/perfstat.dbf
7 ONLINE 10 /u01/u01d/timi01.dbf
6 rows selected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 202445884 bytes
Fixed Size 451644 bytes
Variable Size 167772160 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
ok, 成功打开数据库。
6、总结
ORA-01200错误的具体原因已经清楚,但是是什么导致的这次数据库故障,已无从考究。但是应该可以肯定的是,此时的数据库应该立即做个导出重建导入操作。
作者“技术成就梦想”