首页 > 代码库 > 闪回恢复区大小不够。报ORA-19809、ORA-19804

闪回恢复区大小不够。报ORA-19809、ORA-19804





问题: 闪回恢复区大小不够,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     integer0


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

闪回恢复区大小不够。报ORA-19809、ORA-19804