current online redo logfile 丢失的处理方法(一)

2014-11-24 17:15:06 · 作者: · 浏览: 0

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 26 13:40:37 2014


Copyright (c) 1982, 2005, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options


SQL> select * from aaron8219.test1;


INT
----------
1
2


SQL> insert into aaron8219.test1 values(3);


1 row created.


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


GROUP# STATUS SEQUENCE#
---------- ---------------- ----------
1 INACTIVE 1
2 CURRENT 2
3 INACTIVE 0


--不提交,另开一个session进行rm -rf操作
[root@ora10g ~]# cd /u01/app/oracle/oradata
[root@ora10g oradata]# ll
total 4
drwxr-x--- 2 oracle oinstall 4096 Aug 25 16:09 ora10g
[root@ora10g oradata]# rm -rf ora10g/
[root@ora10g oradata]# ll
total 0


--原session直接abort关闭,模拟current online redo logfile丢失
SQL> shutdown abort


--用之前刚生成的rman全备来还原数据库各类文件
[oracle@ora10g ~]$ rman target /


Recovery Manager: Release 10.2.0.1.0 - Production on Tue Aug 26 13:44:58 2014


Copyright (c) 1982, 2005, Oracle. All rights reserved.


connected to target database: ora10g (not mounted)


RMAN> restore controlfile from '/rmanbak/full_ORA10G_4175411955_20140826_02pgtq5h_1_1.bak';


Starting restore at 26-AUG-14
using channel ORA_DISK_1


channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output filename=/u01/app/oracle/oradata/ora10g/control01.ctl
output filename=/u01/app/oracle/oradata/ora10g/control02.ctl
output filename=/u01/app/oracle/oradata/ora10g/control03.ctl
Finished restore at 26-AUG-14


RMAN> alter database mount;


database mounted
released channel: ORA_DISK_1


RMAN> restore database;


Starting restore at 26-AUG-14
Starting implicit crosscheck backup at 26-AUG-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
Crosschecked 1 objects
Finished implicit crosscheck backup at 26-AUG-14


Starting implicit crosscheck copy at 26-AUG-14
using channel ORA_DISK_1
Finished implicit crosscheck copy at 26-AUG-14


searching for all files in the recovery area
cataloging files...
cataloging done


List of Cataloged Files
=======================
File Name: /u01/app/oracle/flash_recovery_area/ORA10G/autobackup/2014_08_26/o1_mf_s_856615092_9zr3snsq_.bkp


using channel ORA_DISK_1


channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /u01/app/oracle/oradata/ora10g/system01.dbf
restoring datafile 00002 to /u01/app/oracle/oradata/ora10g/undotbs01.dbf
restoring datafile 00003 to /u01/app/oracle/oradata/ora10g/sysaux01.dbf
restoring datafile 00004 to /u01/app/oracle/oradata/ora10g/users01.dbf
restoring datafile 00005 to /u01/app/oracle/oradata/ora10g/example01.dbf
channel ORA_DISK_1: reading from backup piece /rmanbak/full_ORA10G_4175411955_20140826_01pgtq36_1_1.bak
channel ORA_DISK_1: restored backup piece 1
piece handle=/rmanbak/full_ORA10G_4175411955_20140826_01pgtq36_1_1.bak tag=TAG20140826T123653
channel ORA_DISK_1: restore complete, elapsed time: 00:01:46
Finished restore at 26-AUG-14


RMAN> exit



Recovery Manager complete.


由于rman并不备份在线日志文件,刚才的rman只是做了个全库备份和控制文件的备份,可以看到redo01.log,redo02.log,redo03.log这3个文件并不存在


[oracle@