通过BBED修复ORA-01190错误(一)

2015-12-01 16:03:15 · 作者: · 浏览: 130

1、配置BBET


$ORACLE_HOME/rdbms/lib/ssbbded.o?


$ORACLE_HOME/rdbms/lib/sbbdpt.o?


$ORACLE_HOME/rdbms/mesg/bbedus.msb


?在第一次使用时会发现有默认的口令,从这里可以看出oracle对bbed工具的限制,默认的密码是blockedit


SQL> col name for a50


SQL> select file#||' '||name||' '||bytes from v$datafile;


FILE#||''||NAME||''||BYTES


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


1 /u01/app/oracle/oradata/satdb/system01.dbf 786432000


2 /u01/app/oracle/oradata/satdb/sysaux01.dbf 618659840


3 /u01/app/oracle/oradata/satdb/undotbs01.dbf 94371840


4 /u01/app/oracle/oradata/satdb/users01.dbf 5242880


5 /u01/app/oracle/oradata/satdb/data01.dbf 104857600


6 /u01/app/oracle/oradata/satdb/fda_tbs01.dbf 524288000


[oracle@orcl ~]$ vi dbfiles.txt?


1 /u01/app/oracle/oradata/satdb/system01.dbf 786432000


2 /u01/app/oracle/oradata/satdb/sysaux01.dbf 618659840


3 /u01/app/oracle/oradata/satdb/undotbs01.dbf 94371840


4 /u01/app/oracle/oradata/satdb/users01.dbf 5242880


5 /u01/app/oracle/oradata/satdb/data01.dbf 104857600


6 /u01/app/oracle/oradata/satdb/fda_tbs01.dbf 524288000


[oracle@orcl ~]$ cat parameter.txt?


blocksize=8192


listfile=dbfiles.txt


mode=edit


2、模拟错误


SQL> select file#,status from v$datafile;


? ? ?FILE# STATUS


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


? ? ? ? ?1 SYSTEM


? ? ? ? ?2 ONLINE


? ? ? ? ?3 ONLINE


? ? ? ? ?4 ONLINE


? ? ? ? ?5 ONLINE


? ? ? ? ?6 ONLINE


6 rows selected.


SQL> alter database datafile 5 offline;


Database altered.


SQL> select file#,status from v$datafile;


? ? ?FILE# STATUS


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


? ? ? ? ?1 SYSTEM


? ? ? ? ?2 ONLINE


? ? ? ? ?3 ONLINE


? ? ? ? ?4 ONLINE


? ? ? ? ?5 RECOVER


? ? ? ? ?6 ONLINE


6 rows selected.


SQL> select hxfil,fhrba_seq from x$kcvfh;


? ? ?HXFIL ?FHRBA_SEQ


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


? ? ? ? ?1 ? ? ? ? ?1


? ? ? ? ?2 ? ? ? ? ?1


? ? ? ? ?3 ? ? ? ? ?1


? ? ? ? ?4 ? ? ? ? ?1


? ? ? ? ?5 ? ? ? ? ?1


? ? ? ? ?6 ? ? ? ? ?1


6 rows selected.


SQL> select group#,archived,sequence#,status from v$log;


? ? GROUP# ARCHIV ?SEQUENCE# STATUS


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


? ? ? ? ?1 YES ? ? ? ? ? ? 1 ACTIVE


? ? ? ? ?2 YES ? ? ? ? ? ? 2 ACTIVE


? ? ? ? ?3 NO ? ? ? ? ? ? ?3 CURRENT


SQL> startup force mount;


ORACLE instance started.


Total System Global Area 1603411968 bytes


Fixed Size ? ? ? ? ? ? ? ? ?2253664 bytes


Variable Size ? ? ? ? ? ? 989858976 bytes


Database Buffers ? ? ? ? ?603979776 bytes


Redo Buffers ? ? ? ? ? ? ? ?7319552 bytes


Database mounted.


SQL> recover database until cancel;


ORA-00279: change 1268630 generated at 10/01/2015 11:36:55 needed for thread 1


ORA-00289: suggestion : /u01/app/oracle/arch2/1_1_891948516.dbf


ORA-00280: change 1268630 for thread 1 is in sequence #1


Specify log: {=suggested | filename | AUTO | CANCEL}


cancel


ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below


ORA-01194: file 1 needs more recovery to be consistent


ORA-01110: data file 1: '/u01/app/oracle/oradata/satdb/system01.dbf'


ORA-01112: media recovery not started


SQL> alter database open resetlogs;


alter database open resetlogs


*


ERROR at line 1:


ORA-01194: file 1 needs more recovery to be consistent


ORA-01110: data file 1: '/u01/app/oracle/oradata/satdb/system01.dbf'


SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;


System altered.


SQL> startup force mount;


ORACLE instance started.


Total System Global Area 1603411968 bytes


Fixed Size ? ? ? ? ? ? ? ? ?2253664 bytes


Variable Size ? ? ? ? ? ? 989858976 bytes


Database Buffers ? ? ? ? ?603979776 bytes


Redo Buffers ? ? ? ? ? ? ? ?7319552 bytes


Database mounted.


注意:这里提示如果以resetlogs打开数