`

RMAN ORA-19504、ORA-27038错误解决方法

 
阅读更多

一客户目前正在上IBM TSM的项目,现在要求临时用RMAN将生产库的数据备份到本地, rman常规备份很简单,给了客户如下的脚本:
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup full tag ‘dbfull’ format ‘/oracle/app/backup/full%Y_%M_%t_A’ database;
sql ‘alter system archive log current’;
backup filesperset 3 format ‘/oracle/app/backup/arch%Y_%M_%t_A’ archivelog all;
release channel c1;
release channel c2;
}

但昨天收到客户电话说备份有点问题,出错信息如下:
released channel: c1
released channel: c2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571:
===========================================================
RMAN-03002: failure of release command at 08/01/2009 17:12:44
RMAN-06012: channel: c2 not allocated

系统提示没有分配channel c2,报要创建的文件已经存在,我在虚拟机分别在9i、10g的环境中测试也有类似的错误:
9i:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on c1 channel at 08/04/2009 09:27:03
ORA-19504: failed to create file “/home/oracle/backup/arch2009_08_693998821″
ORA-27038: skgfrcre: file exists

10g:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on c1 channel at 08/04/2009 08:34:43
ORA-19504: failed to create file “/home/oracle/backup/full2009_08_A”
ORA-27038: created file already exists

这个问题第一次在客户的测试机上执行是成功的,第二次报错,在我自己测试的时候,全新安装的ORACLE也有这样的问题,为什么会出现这样的问题,请看下面的分析:
1.错误中指定要创建的文件已经,而实际上是并不存在,也没有用先前的备份的数据恢复过数据库。考虑是不是在OS层面删除过备份文件,而没有在RMAN中更新,试着更新RMAN:
RMAN>crosscheck archivelog all;
RMAN>delete expired archivelog all;
RMAN>crosscheck backup;
RMAN>delete expired backup;

做了更新之后,问题依旧。
2.会不会是目录(/home/oracle/backup)权限的问题,修改目录权限:
#chmod –R 775 /home/oracle/backup
再执行备份,问题仍旧。
3.试着让oracle自动分配通道,但配置RMAN的并行度为2
RMAN>configure device type disk parallelism2;
尝试着再次备份,问题仍然是channel c2没有分配通道。
此时,伟大的google对此问题已经搜不到有用的信息,没办法,只能找metalink了,在Doc ID: 1082911.6
上找到答案,原文如下:
    Solution Description:
    =====================
    Insert a %U into the format portion of the backup script in order to ensure a unique backup file name.
    Problem Explanation:
    ====================
    These errors occur because a backup file name already exists by the name specified in you backup script. For instance, if you are using the line “allocate channel c1 type disk format
    ‘/oracle/database/rman/backup/df_%d_%p_%c’;”, df_%d_%p_%c formats the backupstring like so;
    df_ is simply a name. This could be any set of characters. In this case it means
    database full.
    %d_ is the database sid.
    %p_is the backup piece number within the backup set.
    %c_ specifies the copy number of the backup piece within a set of duplexed backup pieces.
    There needs to be a %U added to the format string.
    %U_ specifies a convenient shorthand that guarantees uniqueness in generated backup filenames. So, if the string were “db_%d_%U_%p_%c a unique name would be generated and it would not be necessary to either rename or move the backup file name prior to the next backup.
    If the format is changed to include the %U, for instance;
    allocate channel c1 type disk format ‘/oracle/database/rman/backup/df_%d_%U_%p_%c’;
    The backup file will automatically have a unique name generated like;
    df_JTG_0eblfm65_1_1_1_1
    The next one would look like;
    df_JTG_0fblfm76_1_1_1_1
增加%U参数后再次尝试备份:
RMAN> run{
2>  allocate channel c1 type disk;
3>  allocate channel c2 type disk;
4>  backup full tag ‘dbfull’ format ‘/home/oracle/backup/full%Y_%M_%U_A’ database;
5>  sql ‘alter system archive log current’;
6>  backup filesperset 3  format ‘/home/oracle/backup/arch%Y_%M_%U_A’ archivelog all;
7>  release channel c1;
8>  release channel c2;
9>  }

released channel: ORA_DISK_1
released channel: ORA_DISK_2
allocated channel: c1
channel c1: sid=144 devtype=DISK
allocated channel: c2
channel c2: sid=146 devtype=DISK
……
……
channel c1: starting piece 1 at 04-AUG-09
channel c1: finished piece 1 at 04-AUG-09
piece handle=/home/oracle/backup/arch2009_08_3pklr29q_1_1_A tag=TAG20090804T083659 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:02
Finished backup at 04-AUG-09
released channel: c1
released channel: c2
RMAN>

至此,备份成功问题得到解决。
-The End-


参考至:http://www.ochef.net/tag/rmanora-19504ora-27038

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    oracle 回闪日志 满了 ORA-03113 通信信道结束 进入 rman 删除日志

    oracle 回闪日志 满了 ORA-03113 通信信道结束 进入 rman 删除日志

    ORA-01578 数据文件损坏,通过rman备份修复.txt

    ORA-01578 数据文件损坏,通过rman备份修复.txt

    Oracle 常见故障解决方法

    oracel 常见 故障 解决 方法

    数据库ORA-01196故障-归档日志丢失恢复详解

    问题: 由于机房停电,其中一DG备库无法open,启动时报错 ...ORA-01110: 数据文件 1:’+DATA/htdb7/datafile/system.313.884996245′ 查看归档日志应用情况,发现一部分日志没应用 SQL> Select Name,Sequence#,applie

    启动oracle数据库报错:ORA-00600

    关于oracle做恢复操作时启动数据库报错,通常是由于rman做了恢复操作导致的报错. 通过继续执行恢复指令而恢复数据库,成功启动数据库.

    ORA-00257归档日志清理问题

    背景:Oracle突然报错‘ORA-00257’无法登录,原因为Oracle归档日志爆满,通过以下操作可进行解决; 一、以ORACLE用户身份登录到数据库服务器主机或通过网络连接 sql>conn username/password; 二、查看是否开启归档...

    oracle RMAN异构迁移-linux-windows

    记录一次linux向windows,使用rman全库迁移数据库的操作,百分百可行(需要源和目标同版本)

    Oracle9i Database Error Messages

    2 ORA-00000 to ORA-00899 3 ORA-00900 to ORA-01499 4 ORA-01500 to ORA-02099 5 ORA-02100 to ORA-04099 6 ORA-04100 to ORA-07499 7 ORA-07500 to ORA-09857 8 ORA-09858 to ORA-12299 9 ORA-12300 to ORA-12399 ...

    RH4下Ora9[1].2安装及Standby,RMAN实施.doc

    RH4下Ora9[1].2安装及Standby,RMAN实施.docRH4下Ora9[1].2安装及Standby,RMAN实施.docRH4下Ora9[1].2安装及Standby,RMAN实施.docRH4下Ora9[1].2安装及Standby,RMAN实施.docRH4下Ora9[1].2安装及Standby,RMAN实施.doc

    ora分析脚本

    Usage: ora [-u user] [-i instance#] <command> [] General -u user/pass use USER/PASS to log in -i instance# append # to ORACLE_SID -sid <sid> set ORACLE_SID to sid -top # limit some large queries ...

    Oracle11g复制数据库

    oracle11g数据库,如何复制数据库。详细解说。RMAN支持两种类型复制:活动数据库复制和基于备份的复制,主要用来建立测试库。分别进行测试

    oracle10g课堂练习II(2)

    块损坏故障现象: ORA-01578 7-4 如何处理损坏 7-5 与损坏相关的功能 7-7 DBVERIFY 实用程序 7-8 解释 DBVERIFY 输出 7-9 ANALYZE 命令 7-11 实时验证块完整性: DB_BLOCK_CHECKING 7-12 实时验证块完整性: ...

    RMAN测试演练即讲解

    Rman不能备份口令文件和初始化参数文件(也就是前面提到的init.ora)。 1、 备份DataBase backup database; backup database是一次全备份,其实省略的很多参数,相当于用的默认的。而备份好的备份集放在哪里呢? 在...

    oracle10g课堂练习II(1)

    块损坏故障现象: ORA-01578 7-4 如何处理损坏 7-5 与损坏相关的功能 7-7 DBVERIFY 实用程序 7-8 解释 DBVERIFY 输出 7-9 ANALYZE 命令 7-11 实时验证块完整性: DB_BLOCK_CHECKING 7-12 实时验证块完整性: ...

    Oracle日常维护故障定位故障排除

    1 由于ARCHIVE挂起导致数据库挂死 2 NIT文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死 3 由于临时表空间无法扩展导致数据库被挂起 4由于未打补丁导致RMAN...27 由于OS层问题导致数据库ORA-600错误 .....

    解决Oracle RMAN删除归档日志不释放问题的方法

    最近同事在工作中遇到一个问题,他那边的一套Oracle 11g数据库使用RMAN没办法删除旧的归档,导致磁盘使用率很高。 oracle@ps251n2s:[/opt/oracle/archive/db] ls -ltr |more total 3059881082 -rw-r----- 1 oracle...

    oracle恢复工具-FY_Recover_Data

    否则会导致服务器RMAN备份失败ORA-19566 超出损坏块限制(切记) truncate原理: ? ? ? ?TRUNCATE不会逐个清除用户数据块上的数据,而仅仅重置数据字典和元数据块上的元数据(如存储段头和扩展段...

    Oracle9i的init.ora参数中文说明

    说明: (如果值为 TRUE) 当在隐式转换中丢失数据时返回错误的参数。 值范围: FALSE | TRUE 默认值: TRUE nls_numeric_characters: 说明: 指定将用作组分隔符和小数位的字符。组分隔符就是用来分隔整数位组 (如千, ...

    oracle详解

    对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具。下面说明一下EXP/IMP的使用。  如何使exp的帮助以不同的字符集显示...

Global site tag (gtag.js) - Google Analytics