一、使用以下的命令清理了空间:
1
2
|
1.
cd
/orabak
2.
find
. -
type
f -mtime +30 -
exec
rm
-rf {} \;
|
二、然后开始使用rman备份的脚本进行备份,备份到最后出现以下报错
1
2
3
4
5
6
7
8
9
10
11
|
-------------------------------------------------------------------------------------------
archive log filename=
/oralog/1_20800_812554797
.dbf recid=20799 stamp=839154512
archive log filename=
/oralog/1_20801_812554797
.dbf recid=20800 stamp=839154513
released channel: ch1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup
command
on ch1 channel at 02
/10/2014
10:33:46
ORA-19571: archived-log recid 19009 stamp 837863118 not found
in
control
file
-------------------------------------------------------------------------------------------
|
三、分析及处理过程
1、当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行。
所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。
2、Crosscheck日志
1
2
3
|
$ rman target /
RMAN> crosscheck archivelog all;
#Oracle 9i及以后的版本用crosscheck archivelog all;
RMAN> change archivelog all crosscheck;
#Oracle 8i中用change archivelog all crosscheck;
|
3、再次运行备份脚本
1
2
3
4
5
6
7
|
--
archive log filename=
/oralog/1_20887_812554797
.dbf recid=20886 stamp=839198925 archive log filename=
/oralog/1_20888_812554797
.dbf recid=20887 stamp=839198982 archive log filename=
/oralog/1_20889_812554797
.dbf recid=20888 stamp=839199982 archive log filename=
/oralog/1_20890_812554797
.dbf recid=20889 stamp=839199982 Finished backup at 10-FEB-14
Starting backup at 10-FEB-14
channel ch1: starting full datafile backupset channel ch1: specifying datafile(s)
in
backupset including current control
file
in
backupset channel ch1: starting piece 1 at 10-FEB-14 channel ch1: finished piece 1 at 10-FEB-14 piece handle=
/orabak/control_11839200079688
tag=TAG20140210T230759 comment=NONE channel ch1: backup
set
complete, elapsed
time
: 00:00:01 Finished backup at 10-FEB-14
released channel: ch1
--
完成
|
4、参考资料
http://www.eygle.com/archives/2004/12/rman_crosscheck.html
5、rman的备份脚本
1
2
3
4
5
6
7
8
9
10
11
|
run{
allocate channel ch1 device
type
DISK;
backup full filesperset 50
database
format
'/orabak/full_%c_%p_%t_5s'
;
sql
'alter system archive log current'
;
backup filesperset 50 archivelog all
format
'/orabak/arch%c%p%t%s'
delete input;
backup current controlfile
format
'/orabak/control_%c%p%t%s'
;
release channel ch1;
}
|
本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1891365,如需转载请自行联系原作者