ORA-19809:超出了恢复文件数的限制

ora-19809: 超出了恢复文件数的限制

一、故障现象:

rman> backup database;

启动 backup 于 05-10月-14

使用目标控制文件替代恢复目录

分配的通道: ora_disk_1

通道 ora_disk_1: sid=158 devtype=disk

通道 ora_disk_1: 启动全部数据文件备份集

通道 ora_disk_1: 正在指定备份集中的数据文件

输入数据文件 fno=00001 name=d:\oracle\product\10.2.0\oradata\orcl\system01.dbf

输入数据文件 fno=00005 name=d:\oracle\product\10.2.0\oradata\orcl\hw_wh01.dbf

输入数据文件 fno=00003 name=d:\oracle\product\10.2.0\oradata\orcl\sysaux01.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\gz_data01.dbf

输入数据文件 fno=00007 name=d:\oracle\product\10.2.0\oradata\orcl\sz_data01.dbf

输入数据文件 fno=00004 name=d:\oracle\product\10.2.0\oradata\orcl\users01.dbf

通道 ora_disk_1: 正在启动段 1 于 05-10月-14

man-03009: backup 命令 (ora_disk_1 通道上, 在 12/08/2014 16:38:37 上) 失败

ora-19809: 超出了恢复文件数的限制

ora-19804: 无法回收 52428800 字节磁盘空间 (从 2147483648 限制中)

继续执行其它作业步骤, 将不重新运行失败的作业

通道 ora_disk_1: 启动全部数据文件备份集

通道 ora_disk_1: 正在指定备份集中的数据文件

备份集中包括当前控制文件

在备份集中包含当前的 spfile

通道 ora_disk_1: 正在启动段 1 于 05-10月-14

通道 ora_disk_1: 已完成段 1 于 05-10月-14

段句柄=d:\oracle\product\10.2.0\flash_recovery_area\orcl\backupset\2014_12_08\o1_mf_ncsnf_tag20141208t163642_7g0xwhoh_.bkp 标记=tag20141208t163642 注释=none

通道 ora_disk_1: 备份集已完成, 经过时间:00:00:02

rman-00571: ===========================================================

rman-00569: =============== error message stack follows ===============

rman-00571: ===========================================================

二、故障分析

在使用rman进行数据库全备份时出现ora-19809: 超出了恢复文件数的限制错误,查报错说明如下:

ora-19809: limit exceeded for recovery files

cause: the limit for recovery files specified by the db_recovery_file_dest_

size was exceeded.

action: the error is accompanied by 19804. see message 19804 for further details.

在这里我们可以看到,文档明确指出了ora-19809错误是伴随着ora-19804出现,接着我们看下ora-19804的出现原因及解决方案:

ora-19804: cannot reclaim string bytes disk space from string limit

cause: oracle cannot reclaim disk space of specified bytes from the db_recovery_file_dest_size limit.

action: there are five possible solutions: 1) take frequent backup of recovery area

using rman. 2) consider changing rman retention policy. 3) consider changing

rman archivelog deletion policy. 4) add disk space and increase db_

recovery_file_dest_size. 5) delete files from recovery area using rman.

以上已经明确给出导致这个错误的原因及五点解决方案

最简单也是最常用的办法就是扩大db_recovery_file_dest_size的设置

首先查看数据库的当前设置:

sys @ orcl(159)> archive log list

数据库日志模式 存档模式

自动存档 启用

存档终点 use_db_recovery_file_dest

最早的联机日志序列 163

下一个存档日志序列 165

当前日志序列 165

sys @ orcl(159)>

可以看到使用了数据库默认的闪回区用来存储归档,接下来我们看下闪回区的位置,大小及使用情况

sys @ orcl(159)> show parameter db_recovery_file_dest

name type value

———————————— ———– ———————————————–

db_recovery_file_dest string d:\oracle\product\10.2.0/flash_recovery_area

db_recovery_file_dest_size big integer 2g

sys @ orcl(159)> select name,space_limit/1024/1024 “total(mb)”,space_used/1024/1024 “used(mb)”

from v$recovery_file_dest;

name total(mb) used(mb)

———————————————— ———- ———-

d:\oracle\product\10.2.0/flash_recovery_area 3072 2078.77051

对于db_recovery_file_dest_size,默认设置为2g大小,当该空间不够容纳备份集则会导致上面见到的错误。

三、解决方案:

对于上面的错误我们扩大了db_recovery_file_dest_size仍出错(由2g扩大至3g),可以看出即使扩容也是不够做一次全备份的(后面能够看到这个备份集得实际大小为2.05g)

1、扩大db_recovery_file_dest_size参数设置

alter system set db_recovery_file_dest_size=5g;

2、查看当前设置情况

show parameter db_recovery_file_dest

3、重新执行rman备份

rman> backup database;

……

rman> list backupset;

bs 关键字 类型 lv 大小 设备类型 经过时间 完成时间

——- —- — ———- ———– ———— ———-

14 full 2.05g disk 00:02:19 09-12月-14

bp 关键字: 14 状态: available 已压缩: no 标记: tag20141209t141548

段名:d:\oracle\product\10.2.0\flash_recovery_area\orcl\backupset\2014_12_09\o1_mf_nnndf_tag20141209t141548_7g2zc4l2_.bkp

备份集 14 中的数据文件列表

文件 lv 类型 ckp scn ckp 时间 名称

—- — —- ———- ———- —-

1 full 5170484 09-12月-14 d:\oracle\product\10.2.0\oradata\orcl\system01.dbf

2 full 5170484 09-12月-14 d:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf

3 full 5170484 09-12月-14 d:\oracle\product\10.2.0\oradata\orcl\sysaux01.dbf

4 full 5170484 09-12月-14 d:\oracle\product\10.2.0\oradata\orcl\users01.dbf

5 full 5170484 09-12月-14 d:\oracle\product\10.2.0\oradata\orcl\hw_wh01.dbf

6 full 5170484 09-12月-14 d:\oracle\product\10.2.0\oradata\orcl\gz_data01.dbf

7 full 5170484 09-12月-14 d:\oracle\product\10.2.0\oradata\orcl\sz_data01.dbf

bs 关键字 类型 lv 大小 设备类型 经过时间 完成时间

——- —- — ———- ———– ———— ———-

15 full 6.83m disk 00:00:02 09-12月-14

bp 关键字: 15 状态: available 已压缩: no 标记: tag20141209t141548

段名:d:\oracle\product\10.2.0\flash_recovery_area\orcl\backupset\2014_12_09\o1_mf_ncsnf_tag20141209t141548_7g2zhqfo_.bkp

包括的控制文件: ckp scn: 5170574 ckp 时间: 09-12月-14

包含的 spfile: 修改时间: 09-12月-14

至此问题已成功解决。

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐