删除online日志测试及ORA-600 [4194]错误的处理(六)

2015-07-16 12:07:50 · 作者: · 浏览: 3
> conn / as sysdba
Connected.
SYS@ora10g> shutdown abort
ORACLE instance shut down.
SYS@ora10g>


--OS上将current在线日志文件redo02.log删除
[oracle@ora10g ora10g]$ rm -f redo02.log
[oracle@ora10g ora10g]$ ls -l redo*
-rw-r----- 1 oracle oinstall 52429312 Jun 24 11:16 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Jun 24 11:08 redo03.log


--再次启动数据库
SYS@ora10g> startup
ORACLE instance started.


Total System Global Area? 524288000 bytes
Fixed Size? ? 1220384 bytes
Variable Size? 327155936 bytes
Database Buffers? 192937984 bytes
Redo Buffers? ? 2973696 bytes
Database mounted.
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/ora10g/redo02.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3


SYS@ora10g> alter database clear logfile group 2;
alter database clear logfile group 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance ora10g (thread 1)
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/ora10g/redo02.log'


SYS@ora10g> recover database until cancel;
ORA-00279: change 1497127 generated at 06/24/2015 11:08:48 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/ORA10G/archivelog/2015_06_24/o1_mf_1_2_%u_.arc
ORA-00280: change 1497127 for thread 1 is in sequence #2


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/ora10g/system01.dbf'


ORA-01112: media recovery not started


SYS@ora10g>


之前使用的方法,在此处都不成立,原因是数据库强制要求current的在线日志文件需要crash recover,重新创建自然是不行的,由于是非正常关闭数据库,也没有写入归档文件,当然也无法进行还原,那么此时只有通过别的方法来将数据库OPEN了,当然丢失数据已经是不可避免的了,也就是刚才current在线日志文件中未归档的那部分,即t1表中最后插入的10条记录,权衡利弊,即便是丢数据,也要先将数据库拉起来,那么可以通过设置隐含参数"_allow_resetlogs_corruption=true"来实现


SYS@ora10g> create pfile from spfile;


File created.


SYS@ora10g> show parameter spfile


NAME? ? ? TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile? ? ? string /u01/app/oracle/product/10.2.0
?/db_1/dbs/spfileora10g.ora
SYS@ora10g> host
[oracle@ora10g ~]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs/
[oracle@ora10g dbs]$ ls -l
total 7412
-rwxr-xr-x 1 oracle oinstall? ? 5494 Aug 26? 2014 alert_ora10g.log
-rwxr-xr-x 1 oracle oinstall? ? 1544 Aug 25? 2014 hc_ora10g.dat
-rwxr-xr-x 1 oracle oinstall? 12920 May? 3? 2001 initdw.ora
-rwxr-xr-x 1 oracle oinstall? ? 8385 Sep 11? 1998 init.ora
-rw-r--r-- 1 oracle oinstall? ? 1343 Jun 24 11:24 initora10g.ora
-rwxr-xr-x 1 oracle oinstall? ? ? 24 Aug 25? 2014 lkORA10G
-rw-r----- 1 oracle oinstall? ? 1536 Nov 26? 2014 orapwora10g
-rwxr-xr-x 1 oracle oinstall 7520256 Jun 24 11:09 snapcf_ora10g.f
-rw-r----- 1 oracle oinstall? ? 3584 Jun 24 11:19 spfileora10g.ora
[oracle@ora10g dbs]$ echo "_allow_resetlogs_corruption=true" >> initora10g.ora
[oracle@ora10g dbs]$ cat initora10g.ora
ora10g.__db_cache_size=192937984
ora10g.__java_pool_size=4194304
ora10g.__large_pool_size=4194304
ora10g.__shared_pool_size=155189248
ora10g.__streams_pool_size=8388608
*._disable_image_check=TRUE
*.audit_file_dest='/u01/app/oracle/admin/ora10g/adump'
*.background_dump_dest='/u01/app/oracle/admin/ora10g/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/app/oracl