`

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-00132 ORA-00214

    ### Oracle 错误 ORA-00132 和 ORA-00214 解析及处理 #### 一、错误概述 在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行...

    Oracle 10g启动后报ORA-16038错误的解决方法

    ### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...

    离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法

    解决ORA-01145错误的方法如下: 1. **启用介质恢复**:对于需要进行离线操作的数据文件,首先应启用介质恢复。 2. **创建新的数据文件**:可以先创建一个新的数据文件来替换原有的数据文件,然后再执行离线操作。 3....

    oracle重启报错ORA-00702解决办法

    本文将详细介绍如何在Windows和Linux操作系统下解决ORA-00702错误。 **ORA-00702错误解析** ORA-00702错误信息表明数据库实例试图访问一个尚未完全初始化的数据文件或控制文件。这可能是由于数据库在不正常的情况下...

    ora 错误全集 全部 ora0000-ora32999

    "ORA 错误全集 全部 ora0000-ora32999"是一个非常实用的资源,它包含了从ORA-0000到ORA-32999的所有Oracle错误代码及其解释,为DBA(数据库管理员)和开发人员提供了方便的一站式错误查找平台。 Oracle错误代码通常...

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

    解决ORA-03113错误的方法** - **检查网络连接:** 确保客户端与服务器之间的网络连接正常。 - **确认数据库服务运行状态:** 使用`sqlplus / as sysdba`登录并检查数据库状态: ```sql SQL> shutdown ...

    断电与ORA-600问题集

    在某些特殊情况下,可能会出现ORA-600[4000]错误,此时应参照ORA-600[4000]的处理方法进行处理。 #### 1.4. 数据文件问题 ##### 1.4.1. 现象ORA-600[4000] ORA-600[4000]错误通常发生在数据文件损坏时,这可能是...

    数据恢复:被注入的软件及 ORA-600 16703 灾难的恢复.docx

    首先,我们看到一个客户在尝试启动Oracle数据库时遭遇了ORA-01092和ORA-00704错误,随后引发了ORA-00600错误,其中错误参数包括16703、1403和20。这些错误提示表明数据库在启动过程中遇到问题,导致实例终止。 在...

    ORA-00257错误.doc

    处理 ORA-00257 错误的思路是:删除物理文件和登录 RMAN 释放 archivelog 空间。下面是详细的处理过程: 1. 删除物理文件 首先,我们需要登录到 Oracle 服务器,使用 su 命令切换到 Oracle 用户,然后使用 sqlplus...

    oracle断电导致控制文件不一致报错ORA-00214处理

    ### Oracle 断电导致控制文件不一致报错 ORA-00214 处理方法 #### 问题概述 在Oracle数据库管理过程中,遇到控制文件版本不一致的问题时,通常会收到ORA-00214错误提示。此错误表示数据库中的一个或多个控制文件与...

    ORA-27104,ORA-01565,ORA-27077,ORA-00093,ORA-01012,ORA-32001,SP2-0714,ORA-12547,sqlplus /nolog 连接不上

    ORA-27104: system-defined limits for shared memory was misconfigured –oracle的sga超过安装oracle配置的最大内存 ipcs -l —— Messages Limits ——– max queues system wide = 32768 max size of message ...

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

    当遇到ORA-00600错误时,我们通常需要按照一定的步骤来解决: 1. **分析错误**: - ORA-00600错误后面的参数[kcratr_scan_lastbwr]提供了有关错误的更具体信息。这些参数是Oracle内部使用的,用于识别问题的具体...

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

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

    ORA-03113-ORA-00257处理方法

    当归档日志空间不足时,会引发ORA-03113和ORA-00257错误,前者表示“end-of-file on communication channel”,通常跟数据库实例无法正常关闭有关;后者表示“archiver error”,表明归档进程无法执行其任务,因为...

    oracle数据库ORA-01196错误解决办法分享

    以下是解决Oracle数据库ORA-01196错误的一般方法: 1. **检查控制文件**:首先,确认控制文件是否完整且正确。控制文件存储了数据库的数据文件和日志文件的位置以及状态,如果控制文件损坏,可能会导致ORA-01196...

    oracle11g 内部参数出错问题

    Oracle 11g 内部错误代码 ORA-00600 是一个非常通用的错误,它表示数据库遇到了一个无法处理的内部错误或异常情况。这个错误通常涉及到Oracle数据库的底层结构,如数据块、索引或者内存管理等,且参数列表可以提供...

    ORA-00257归档日志清理问题

    以下是针对“ORA-00257归档日志清理问题”的详细解决方案和相关知识点: 1. **错误解析**:ORA-00257通常表示数据库尝试写入归档日志文件但找不到可用的空间。这可能是因为归档日志目录已满,或者归档日志文件的...

    p8922013_10204_Linux-x86-64.zipORA-00600: INTERNAL ERROR CODE, ARGUMENTS: [17059

    标签 "ORA-00600 Oracle 补丁 Patches Update" 暗示了这个问题的解决方案可能涉及更新数据库的补丁,通过应用补丁8922013,可能是Oracle公司针对ORA-00600错误的特定修复。 压缩包子文件的文件名称列表只有一个 ...

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

    在Oracle数据库环境中,当遇到"ORA-01196: 文件 1 由于介质恢复会话失败而不一致"的错误时,这通常意味着数据库在尝试打开时发现数据文件的状态不正常,可能是因为数据文件损坏或者缺少必要的归档日志进行恢复。...

Global site tag (gtag.js) - Google Analytics