在做案例之前,先查看v$archived_log记录,发现太多了,考虑清除这些归档然后生成一些再做实验。在操作系统上删除这些归档并不会在控制文件中有记录,所以查看v$archived_log时还会有记录,考虑用RMAN来删除:RMAN
>delete archivelog
all;之后再查看v$archived_log发现还有记录。google了下怎么解决,有三种方法。相关阅读: Oracle手工恢复案例(非归档模式) http://www.linuxidc.com/Linux/2013-06/86718.htm1.重建控制文件,例如 backup controlfile
to trace后重建该控制文件,但要求有数据文件均存在。2.设置control_file_record_keep_time
=0 然后等待记录被重用,这样很不好。3.使用包来清理,注意不要在生产库上这么做
PROCEDURE resetCfileSection
(record_type
INbinary_integer);– This
procedure attempts
to reset the circular controlfile
section.–
Input parameters:– record_type– The circular
record type whose controlfile
sectionisto be reset
.execute sys
.dbms_backup_restore
.resetCfileSection
(11
); ==> 清理v$ARCHIVED_LOG对应的记录
execute sys
.dbms_backup_restore
.resetCfileSection
(28
); ==>清理v$rman_status对应的记录
手工完全恢复
案例一:media fuilure 丢失数据文件,其他文件不丢失
模拟环境:首先做一个冷备。查看当前日志状态
select group#
,sequence#
,archived
,status
from v$
log;GROUP#
SEQUENCE# ARC STATUS----------------------- ----------------1 4
NO CURRENT2 2 YES INACTIVE3 3 YES INACTIVE查看归档日志
select name
,sequence#
from v$archived_log
;NAME
SEQUENCE#------------------------------------------------------------------------------------------
/u01
/fast_recovery_area
/MIKE
/archivelog
/2013_06_28
/o1_mf_1_1_8wtf58m4_
.arc 1
/u01
/fast_recovery_area
/MIKE
/archivelog
/2013_06_28
/o1_mf_1_2_8wtf59cw_
.arc 2
/u01
/fast_recovery_area
/MIKE
/archivelog
/2013_06_28
/o1_mf_1_3_8wtf5ctc_
.arc 3此时我用test用户创建一个t1表,使用的是TEST表空间
create table t1
(id
number);写一个循环插入数据
beginfor i
in 1..10
loopinsert into t1
values(i
);end loop;end;/提交
commit;查看下当前日志
select group#
,sequence#
,archived
,status
from v$
log;GROUP#
SEQUENCE# ARC STATUS----------------------- ----------------1 4
NO CURRENT2 2 YES INACTIVE3 3 YES INACTIVE刚才的操作变化记录在了
sequence为4的日志中。下面切一组日志,让其归档。
alter system switch logfile
;现在模拟介质失败rm
-f
/u01
/oradata
/mike
/*.dbf关库shutdown abort起库startup出错ORA
-01157
: cannot identify
/lockdatafile1
- see DBWR trace
fileORA
-01110
:datafile1
:"/u01/oradata/mike/system01.dbf"查看所需要恢复的文件
select file#
,error
from v$recover_file
;FILE# ERROR---------------------------------------------------------------------------1
FILENOTFOUND2
FILENOTFOUND3
FILENOTFOUND4
FILENOTFOUND5
FILENOTFOUND8
FILENOTFOUND现在开始还原cp
/backup
/cold
/mike
/*.dbf
/u01
/oradata
/mike
/再查看控制文件头部和数据文件头部SCN的差异sys@MIKE
>selectfile#
,checkpoint_change#
from v$datafile
;FILE# CHECKPOINT_CHANGE#---------- ------------------1 15531222 15531223 15531224 15531225 15531228 1553122sys@MIKE
>selectfile#
,checkpoint_change#
from v$datafile_header
;FILE# CHECKPOINT_CHANGE#---------- ------------------1 15525272 15525273 15525274 15525275 15525278 1552527
Oracle手工恢复案例(非归档模式)Oracle冷备和热备脚本相关资讯 Oracle恢复 Oracle归档模式
- 归档模式下四种完全恢复的场景 (07/27/2015 17:52:18)
- 如何启动或关闭Oracle的归档( (10/16/2014 18:39:19)
- Oracle基于cancel的不完全恢复 (10/08/2014 19:32:05)
| - Oracle归档模式下恢复一个被 (02/21/2015 11:02:47)
- Oracle数据表被drop后的恢复 (10/15/2014 10:43:07)
- Oracle在归档模式下删除非系统文件 (09/19/2014 06:47:20)
|
本文评论 查看全部评论 (0)