RMAN-03009,ORA_19809,ORA_19804错误解决

RMAN-03009,ORA_19809,ORA_19804

今天备份数据库时候出现错误:

RMAN> backup database;

启动 backup 于 16-6月 -10
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=138 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0

\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0

\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0

\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0

\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0

\ORADATA\ORCL\TEST1_DATA.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0

\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-6月 -10

MAN-00571: ============
RMAN-00569: ================ERROR MESSAGE STACK FOLLOWS =========
RMAN-00571: =============================
RMAN-03009: backup 命令(ORA_DISK_1 通道上,在06/16/2010 22:13:45上)失败
ORA-19809: 超出了恢复文件数的限制
ORA-19804: 无法回收52428800 字节磁盘空间(从 2147483648 限制中)

不知道什么原因
再使用 format='D:\oracle\backup\%d_%s.bak'进行备份,却没有问题:

RMAN> backup database format='D:\oracle\backup\%d_%s.bak';

启动 backup 于 16-6月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST1_DATA.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-6月 -10
通道 ORA_DISK_1: 已完成段 1 于 16-6月 -10
段句柄=D:\ORACLE\BACKUP\ORCL_9.BAK 标记=TAG20100616T225258 注释=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:35
完成 backup 于 16-6月 -10

启动 Control File and SPFILE Autobackup 于 16-6月 -10
段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_06_16\O1_MF_S_721868074_61KSFDBQ_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 16-6月 -10

继续测试:

RMAN> backup database format='D:\oracle\product\10.2.\flash_recovery_area\ORCL\BACKUPSET\2010_06_16\';

启动 backup 于 16-6月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST1_DATA.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-6月 -10

MAN-00571: ============
RMAN-00569: ================ERROR MESSAGE STACK FOLLOWS =========
RMAN-00571: =============================
RMAN-03009: backup 命令(ORA_DISK_1 通道上,在06/16/2010 22:13:45上)失败

ORA-19504: 无法创建文件"'D:\oracle\product\10.2.\flash_recovery_area\ORCL\BACKUPSET\2010_06_16\";

ORA-27038: 所创建的文件已存在

ORA-04010: 指定了(create)选项,但文件已经存在

RMAN> backup database format='D:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2010_06_16\%d_%s.bak';

启动 backup 于 16-6月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST1_DATA.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 16-6月 -10
通道 ORA_DISK_1: 已完成段 1 于 16-6月 -10
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2010_06_16\ORCL_13.BAK 标记=TAG20100616T230026 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:25
完成 backup 于 16-6月 -10

启动 Control File and SPFILE Autobackup 于 16-6月 -10
段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_06_16\O1_MF_S_721868512_61KSV19R_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 16-6月 -10

查看D:\oracle\product\10.2.0\admin\orcl\bdump\alter_orcl.log

Deleted Oracle managed file D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2010_06_16\O1_MF_NNNDF_TAG20100616T225644_61KSKF9R_.BKP
Wed Jun 16 23:01:52 2010
Starting control autobackup
db_recovery_file_dest_size of 2048 MB is 74.91% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Wed Jun 16 23:01:54 2010

可见是闪回恢复区的问题。

我的闪回恢复区大小为2G,而一个备份文件的大小为700多M。之前已经有2个备份文件了,当然就容不下第三个备份文件。

增大闪回恢复区。

[SYS@orcl#17-6月 -10] SQL>alter system set db_recovery_file_dest_size=4g scope=both;

系统已更改。

RMAN> backup database;

启动 backup 于 17-6月 -10
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=159 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST1_DATA.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-6月 -10
通道 ORA_DISK_1: 已完成段 1 于 17-6月 -10
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2010_06_17\O1_MF_NNNDF_TAG20100617T072124_61LQ3OHN_.BKP 标记=TAG20100617T
072124 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:36
完成 backup 于 17-6月 -10

启动 Control File and SPFILE Autobackup 于 17-6月 -10
段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_06_17\O1_MF_S_721898581_61LQ6S7T_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 17-6月 -10

现在就OK了!

作者: jasoname   发布时间: 2010-09-07