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-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

至此问题已成功解决。

ORA-19809: 超出了恢复文件数的限制,布布扣,bubuko.com

时间: 2024-12-06 14:23:26

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

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

场景重现 使用rman执行以下命令进行数据库备份的时候出现异常: RMAN> backup database; 出现如下错误: # 主要异常信息如下: # ... RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ============

减少XML文件数

在android开发中,做出漂亮的ui的应用,往往有数量庞大的xml文件.比如,我们要给一个Button加上一个selector,如果背景不是图片,就得写三个xml文件,分别是:edit_focused.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" >

转 查看linux文件目录的大小和文件夹包含的文件数

du -sh 文件夹路径 查看linux文件目录的大小和文件夹包含的文件数 统计总数大小 du -sh xmldb/ du -sm * | sort -n //统计当前目录大小 并安大小 排序 du -sk * | sort -n du -sk * | grep guojf //看一个人的大小 du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字 http://www.cnblogs.com/benio/archive/2010/10/13/1849946.ht

通过grafana面板展示各home存储的空间使用率及文件数使用率

shell脚本抓取各home存储的空间使用率及文件数使用率,写道excel文件里,再写到mysql里,最后通过grafana面板展示 vi aa.sh #!/bin/bash Date=date +"%Y-%m-%d %H:%M:%S" Dir=/logs/Homes Home1=df -h /home1 | tail -n 1 | awk -F[:" "]+ '{print $5}' | tr -d "%"Homei1=df -i /home1

MySQL 重启提示超出可打开文件数限制|Buffered warning: Changed limits: max_open_files: 1024

Linux 服务器经常一段时间就会出现这样的问题,一个月半个月的样子.每次都重启服务器临时性解决,昨晚仔细看了看报的错误. 先看应用的日志提示连不上 MySQL 服务器. "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)" 再看看 MySQL 的日志,发现原来超过限制了. 190314 11:18:08 mysqld_safe mysqld restarted 2019

Sqlserver filestream 引发文件数剧增

如果不使用checkpoint,文件数会剧增 参考:https://docs.microsoft.com/zh-cn/sql/relational-databases/logs/database-checkpoints-sql-server?view=sql-server-2017 ? ? 文件还没有计算完,已经上亿了 ? 在开发机上,先清空数据,确保文件流的目录下没有文件 TRUNCATE TABLE dbo.Position CHECKPOINT ? 然后尝试插入数据 INSERT dbo.

Linux中最大进程数和最大文件数

前言 Linux系统中可以设置关于资源的使用限制,比如:进程数量,文件句柄数,连接数等等. 在日常的工作中应该遇到过: -bash: fork: retry: Resource temporarily unavailable 或者 too many open files 这些类似的操作错误,前者是由于当前用户的进程数超出限制,后者由于当前用户的文件打开数超出限制. 下面就简单的介绍下配置用户进程数和文件打开数. 一.ulimit命令 Provides control over the resou

[办公自动化]计算机突然死机后asd自动恢复文档未能恢复,如何使用

今天计算机突然死机,但是word未能提示自动恢复窗格.所以无法自动恢复word文档.但是在文档所在的文件夹看到了一个“自动恢复”开头的asd恢复文档. 该如何使用这个文档呢? 安装以前的惯例,尝试了如下方法: 1)直接双击无法打开. 2)修改后缀为docx也无法使用. 最后经查阅word帮助文档,可以在word中,单击“打开”文档界面,直接选中打开自动恢复文档“asd”文件,另存为docx文档,就一切恢复正常了. [读书时间] 1.Excel Home出版的系列书籍 2.刘万祥<Excel图表之

记录一次Linux操作系统最大文件数限制的解决过程

在前面的文章中之前遇到过There is insufficient memory for the Java Runtime Environment to continue问题,无法连接上服务器.(http://blog.csdn.net/xifeijian/article/details/38326281),当时的解决方案是通过加大linux最大文件句柄数,问题暂时得到了解决. 可是在后来的工作中仍然遇到服务器连接不上的情况,之前一直怀疑是该服务器上性能测试脚本导致占据大量句柄. 奇怪的问题是: