ORACLE rman备份之ORA-19809 ORA-19804

    2016年3月8日,接到某综合网管系统负责人申告,该系统RMAN备份失败,RMAN备份失败日志如下:
操作系统:REDHAT linux 5.6
数据库版本:11.2.0.3
channel ORA_DISK_1: starting piece 1 at 07-MAR-16

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/07/2016 11:36:24

ORA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 67108864 bytes disk space from 4322230272 limit

continuing other job steps, job failed will not be re-run

channel ORA_DISK_1: starting compressed 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 07-MAR-16

channel ORA_DISK_1: finished piece 1 at 07-MAR-16

piece handle=/opt/ora_install/fast_recovery_area/CSWG/backupset/2016_03_07/o1_mf_ncsnf_TAG20160307T112117_cfsxssb7_.bkp tag=TAG20160307T112117 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: =========================================================== 

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 03/07/2016 11:36:24

ORA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 67108864 bytes disk space from 4322230272 limit
    
这个问题较明显,问题原因就是数据库的RMAN备份路径指定到了闪回区,经过与系统负责人沟通发现RMAN备份脚本没有指定备份路径,所以备份就写到闪回区了。
    通过下面命令查询当前数据库的闪回区目录,可以发现闪回区目录下,Oracle允许存放的文件空间确实很小,是默认的4G
SQL> show parameter db_recovery_file;
NAME                                       TYPE             VALUE
------------------------------------ -----------       ------------------------------
db_recovery_file_dest          string           /opt/ora_install/fast_recovery_area
db_recovery_file_dest_size  big integer 4122M
   查看闪回区目录存放的文件信息,可以发现,闪回目录下只有一个1MB的备份集,并没有达到4G,通过SQLPLUS查询也能印证。
[oracle][/opt/ora_install/fast_recovery_area/CSWG/backupset/2016_03_04]$ls -al
total 0
drwxr-x---    2 oracle   oinstall        256 Mar 04 00:14 .
drwxr-x---    4 oracle   oinstall        256 Mar 07 11:21 ..
-rw-r-----    1 oracle   oinstall    1114112 Mar 04 00:14 o1_mf_ncsnf_TAG20160304T000004_cfjrq8r2_.bkp
SQL> select * from v$recovery_file_dest;
NAME                                                         SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------------------------------          -----------          ----------            -----------------                ---------------
/opt/ora_install/fast_recovery_area   4322230272    2211840 
   这一点比较有意思,如果闪回区满,通过rm -rf删除闪回区目录下的文件,ORACLE数据库还是会不停的告警闪回目录满,其实需要我们到rman工作台执行删除备份集及归档同步catalog库记录信息。
[oracle][/opt/ora_install/fast_recovery_area/CSWG/backupset/2016_03_04]$rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Mar 8 09:33:11 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database:**** (DBID=3404523328)
RMAN> crosscheck archivelog all ;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=2280 device type=DISK
validation failed for archived log
archived log file name=/opt/ora_log/1_167_905310595.dbf RECID=3 STAMP=905401082
validation failed for archived log
archived log file name=/opt/ora_log/1_168_905310595.dbf RECID=1 STAMP=905401081
validation failed for archived log
.
.
.
validation succeeded for archived log
archived log file name=/opt/ora_log/1_642_905310595.dbf RECID=476 STAMP=905937113
Crosschecked 476 objects
RMAN> delete archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=2280 device type=DISK
List of Archived Log Copies for database with db_unique_name CSWG
=====================================================================
Key     Thrd Seq     S Low Time 
------- ---- ------- - ---------
3       1    167     X 02-MAR-16
        Name: /opt/ora_log/1_167_905310595.dbf
Do you really want to delete the above objects (enter YES or NO)? yes
deleted archived log
archived log file name=/opt/ora_log/1_167_905310595.dbf RECID=3 STAMP=905401082
deleted archived log
.
.
.
deleted archived log
archived log file name=/opt/ora_log/1_643_905310595.dbf RECID=477 STAMP=905938535
Deleted 477 objects
RMAN> exit
Recovery Manager complete.
   还有一个解决方法,就是调大闪回区的空间限制,增加db_recovery_file_dest_size,需要注意的是需要重启数据库。
SQL> startup mount;
.
.
SQL> alter system set db_recovery_file_dest_size=20G;
System altered.
SQL> alter database open;
Database altered.

时间: 2024-09-21 14:16:06

ORACLE rman备份之ORA-19809 ORA-19804的相关文章

三种Oracle RMAN备份加密策略(下)

    说明:本篇参考eygle老师的作品<Oracle DBA手记4:数据安全警示录>,特此表示感谢. 3 .Oracle Wallet加密策略   Oracle Wallet是一种加密安全策略,过去我们在TDE(Oracle透明加密)部分研究过这个组件.简单的说,Oracle Wallet就是在本机上配置一个加密配置文件,通过SQL命令控制Oracle Wallet的开启关闭状态,如果Wallet关闭或者不存在,那么一些加密的信息(包括TDE和RMAN备份集合)数据就不能正常打开.   使

ORACLE rman备份之ORA-00230

    2016年4月13日接到一呼叫平台负责人告警,oracle 9.2.0.8数据库的rman备份出现异常,控制文件无法备份,报错信息如下: RMAN> run{ 2> allocate channel c1 type disk; 3> backup current controlfile format '/tmp/ora_contr.bak'; 4> release channel c1; 5> } using target database controlfile i

Oracle RMAN备份(四)副本

八. 副本 8.1 映像副本的介绍 RMAN 可以创建数据库数据文件,归档重做日志或者控制文件的精确副本. Rman 副本是这些文件的副本,区别仅仅在于名称和位置上的变化.我们不 需要考虑备份片或其他问题. 映像副本只能在磁盘上生成,且不能生成增量副本. 生成映像副本必须加载或打开数据库.生成副本的历史记录保存 在数据库控制文件中.所以我们可以跟踪副本生成的时间和驻留的位置. 类似与常规备份,可以建立整个数据库,表空间或数据文件的映像副本. RMAN 复制过程提供一些和普通RMAN 备份集相同的

Oracle RMAN备份(三)联机RMAN 数据库备份

七. 联机RMAN 数据库备份 7.1 联机数据库备份 要使用RMAN执行联机备份操作,数据库必须置于Archivelog 模式. 如果不在归档模式,则尝试联机备份时RMAN就会生成一个错误. Oracle 归档与非归档的切换 http://blog.csdn.net/tianlesoftware/archive/2009/10/19/4693470.aspx 连接备份示例: RMAN> Configure default device type to disk; RMAN> configur

Oracle RMAN备份(二)Backup 命令选项

五. Backup 命令选项 5.1 压缩 默认情况下,RMAN 执行NULL 数据块压缩. 5.1.1 NULL 控制压缩 使用这种形式的压缩时,Oracle不会备份未使用的数据块. 执行NULL 数据块压缩的情形有一下两种情况: (1)从未使用过的数据块不被压缩 (2)在给定的特定标准下,使用过一次的数据块也不被备份. 在第一种情况下,将不会备份其中一直没有数据的所有数据块,在第二种情况下,如果数据库和关联的数据库满足某种标准,空块将不被备份,即使 它在某个时刻包含数据. 下面是允许RMAN

Oracle RMAN备份(一)脱机RMAN 数据库备份

一. RMAN 备份的一些优点 1. RMAN 会检测和报告损坏的数据块. 2. 不需要将表空间置入热备份模式,RMAN 就可以连接备份数据库. 热备份期间会额外的生成重做日志. 3. RMAN 会自动跟踪新的数据文件和表空间,这样就不再需要在脚本中添加新的表空间和数据文件. 4. RMAN 只备份使用过的数据库(直至最高使用标记(High wate mark)),这样RMAN 备份映像通常小于联机备份的备份脚本. 5. RMAN 提供备份映像的实际压缩. 6. RMAN 提供自动且方便的备份,

oracle RMAN备份FORMAT格式中%a是什么意思

今天三思问我一个问题:RMAN备份FORMAT格式中%a的含义. 其实Oracle的文档有这个表述: %a Specifies the activation ID of the database. 不过这个描述很不明确.其实junsansi的意思是,这个%a对应的信息在数据库中的哪里体现出来. 下面先看看备份信息里面的这个值: [oracle@yans1 ~]$ rman target / Recovery Manager: Release10.2.0.3.0 - Production on星期

oracle RMAN备份报错的诊断过程(二)跟踪错误信息及寻找定位问题的方向

今天检查数据库中的备份输出脚本时,发现RMAN备份出现了错误. 这一篇跟踪错误信息,寻找定位问题的方向. 根据前面的问题描述,发现问题越来越复杂,从一个简单的RMAN备份报错,牵扯到系统中有3个长时间运行的JOB,以及RAC环境当前节点存在了大量的RACGMAIN CHECK进程的存在. 虽然问题很复杂,就不要急于盲目操作,先简单分析一下当前的状况. 发现问题是由于RMAN备份脚本报错造成的,但是根据错误信息和随后的测试发现,问题是可以重现的,并不是简单的RMAN问题,导致问题的原因应该是共享资

oracle RMAN备份报错的诊断过程(一) 问题的现象

今天检查数据库中的备份输出脚本时,发现RMAN备份出现了错误. 这一篇主要描述问题的现象. 错误信息如下: bash-3.00$ more /data/backup/backup_tradedb_090523.out Script. /data/backup/backup_tradedb.sh ==== started on Sat May 23 23:00:00 CST 2009 ==== RMAN: /opt/oracle/product/10.2/database/bin/rman ORA

win平台oracle rman备份和删除dg备库归档日志脚本_oracle

总觉得使用windows跑oracle是不靠谱的事情,可以这个世界上总有很多人喜欢做类似这样的事情,对于数据库比较常见的两件事情:rman和删除dg备库归档日志,在linux/unix平台上使用shell实现很简单,可是跑到win里面,就变的烦了,不是因为其麻烦,而是因为用的人少,不知道怎么下手处理该事情,我编写了简单的实现初级功能的win下面rman备份和删除备库归档日志脚本,供大家参考,也更加欢迎朋友提出来更加好的处理方法(win是真心的不懂)rman备份脚本 复制代码 代码如下: --ba