问题: 闪回恢复区大小不够,rman默认备份路径报错。
RMAN> backup database;
Starting backup at 01-DEC-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=39 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/home/oracle/app/oradata/orcl/ogg01.dbf
input datafile file number=00001 name=/home/oracle/app/oradata/orcl/system01.dbf
input datafile file number=00002 name=/home/oracle/app/oradata/orcl/sysaux01.dbf
input datafile file number=00005 name=/home/oracle/app/oradata/orcl/tbtb01.dbf
input datafile file number=00003 name=/home/oracle/app/oradata/orcl/undotbs01.dbf
input datafile file number=00004 name=/home/oracle/app/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 01-DEC-14
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/01/2014 06:43:49
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 52428800 bytes disk space from 2147483648 limit
continuing other job steps, job failed will not be re-run
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 01-DEC-14
channel ORA_DISK_1: finished piece 1 at 01-DEC-14
piece handle=/home/oracle/app/flash_recovery_area/ORCL/backupset/2014_12_01/o1_mf_ncsnf_TAG20141201T064122_b7ro3pt5_.bkp tag=TAG20141201T064122 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/01/2014 06:43:49
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 52428800 bytes disk space from 2147483648 limit
原因:闪回恢复区大小不够
oracle10g,11g在默认情况下,归档日志是保存在闪回恢复区的,如果你建库的时候用的默认设置,
闪回恢复区应该是2G,空间不够,没办备份。(同理归档日志保存也可能碰到这个问题,导致无法再归档)
解决:
(1)调整添加闪回区大小
(2)将备份的目录换成其他路径。
如果是归档报错,即将归档目录设置到其他目录,修改alter system set log_archive_dest = 其他路径
步骤:
1、查看db_recovery_file_dest 大小
SQL> show parameter recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /home/oracle/app/flash_recover
y_area
db_recovery_file_dest_size big integer 2G
recovery_parallelism integer 0
2、 查看闪回恢复区使用情况
SQL> select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage;
FILE_TYPE USED RECLAIMABLE number
-------------------- ---------- ----------- ----------
CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG 46.76 0 23
BACKUP PIECE .46 0 1
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
3、 扩展db_recovery_file_dest 大小
SQL> alter system set db_recovery_file_dest_size=10G scope=both;
System altered.
4、利用run批脚本指定备份路径来备份 (建议归档与备份分开放置)
run{
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup incremental level 0 database plus archivelog delete input
format '/home/oracle/rmanbak/db_%d_%U'
tag=db_inc_0;
release channel ch1;
release channel ch2;
}
allocated channel: ch1
。。。。。。
released channel: ch1
released channel: ch2
解决办法(3)
删除过期归档日志
1. 进入rman
2. connect target /
3. crosscheck archivelog all;
2. connect target /
3. crosscheck archivelog all;
4.delete expired archivelog all;==>没有rman备份的情况下不适用。
5.delete archivelog all completed before 'SYSDATE-30'; 删除一个月前的日志。
5.delete archivelog all completed before 'SYSDATE-30'; 删除一个月前的日志。