今天一个同事在客户那用rman备份数据库时,
connect targetsys/abcdefg@abcdefg;
connect catalog rman/rman@abcdefg
run
{
allocate channel t1 type 'sbt_tape'
parms 'ENV=(NSR_SERVER=backup_server)';
set limit channel t1 kbytes = 10000000; #limit file size to 10GB
sql 'alter system archive log current';
#backup archivelog all
#backup archivelog from time 'sysdate-1'
backup archivelog like '/Suplis/archive_sde/1_%'
format 'arch_%t_%s_%p'
#skip inaccessible
delete input;
release channel t1;
}
报以下错
channel ORA_DISK_1: starting piece 1 at 16-APR-09
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 04/16/2009 09:47:25
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 3031623680 bytes disk space from 2147483648 limit
continuing other job steps, job failed will not be re-run
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
主要是ORA-19809: limit exceeded for recovery files错误
默认放在闪回区下,而且闪回区只有2G大小,而需要备份的数据库有3G多大
有两个解决方法:
1.增加闪回区大小
2.备份放到别的文件系统中,不放到闪回区
SQL> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string d:\app\qiao\flash_recovery
_area
db_recovery_file_dest_size big integer 2G
按照网上说的解决办法,有3种:
1.加大闪存恢复区。
ALTER SYSTEM SET db_recovery_file_dest_size=4g scope=both;
2.归档路径设置到其它地方。
alter system set log_archive_dest = 其他路径
3.删除或转移归档日志。
---------------------------------------------------------------------------------------------------
ORA-16038: log 3 sequence# 472 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\CHEP\REDO03.LOG'
把archivelog目录下不需要的日志文件删除,然后执行:
rman
connect target sys/oracle
crosscheck archivelog all;
delete expired archivelog all;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21907916/viewspace-711116/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21907916/viewspace-711116/