`
mikixiyou
  • 浏览: 1097985 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:352832
社区版块
存档分类
最新评论

RMAN恢复数据库ORA-01861错误

阅读更多

在一个新环境中恢复数据库备份。在数据文件还原阶段,就出现了错误。

 

环境说明:Oracle 10.2.0.3 for solaris 10,备份数据库是RAC,恢复则在单实例上进行。

 

操作出现过程如下:

 

第一步,将数据库恢复到某个时间点,恢复出错。

 

RMAN> run
2> {
3> allocate channel ch01 type disk;
4> allocate channel ch02 type disk;
5> set until time "to_date('2012-06-25 23:00:00','yyyy-mm-dd hh24:mi:ss')";
6> set newname for datafile 1 to '/stor2T/app/oracle/oradata/urpdb/system01.dbf';
7> set newname for datafile 2 to '/stor2T/app/oracle/oradata/urpdb/undotbs1.dbf';
8> restore datafile 1;
9> restore datafile 2;
10> switch datafile all;
11> release channel ch01;
12> release channel ch02;
13> }

using target database control file instead of recovery catalog
allocated channel: ch01
channel ch01: sid=155 devtype=DISK

allocated channel: ch02
channel ch02: sid=156 devtype=DISK

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 27-JUN-12

released channel: ch01
released channel: ch02
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 06/27/2012 16:09:51
ORA-01861: literal does not match format string

 

我想,这可能是时间格式问题,先回避它吧。

 

第二步,换成成UNTIL SCN去还原数据文件。

 


RMAN> run
2> {
3> allocate channel ch01 type disk;
4> allocate channel ch02 type disk;
5> set until scn 3054150330;
6> set newname for datafile 1 to '/stor2T/app/oracle/oradata/urpdb/system01.dbf';
7> restore datafile 1;
8> switch datafile all;
9> release channel ch01;
10> release channel ch02;
11> }

allocated channel: ch01
channel ch01: sid=155 devtype=DISK

allocated channel: ch02
channel ch02: sid=156 devtype=DISK

executing command: SET until clause

executing command: SET NEWNAME

Starting restore at 27-JUN-12

released channel: ch01
released channel: ch02
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 06/27/2012 16:12:38
ORA-01861: literal does not match format string

RMAN>

即使使用SCN也是报错。

 

第三步,检查备份结果集,也报错。

 

RMAN> list backupset summary;

using target database control file instead of recovery catalog
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of list command at 06/27/2012 16:29:18
ORA-01861: literal does not match format string

 

 

这下麻烦了。难道问题是出在环境变量上吗?

 

检查环境变量设置,和数据库初始化参数设置。

 

env|grep NLS_DATE_FORAMT

结果显示的已经是'yyyy-mm-dd hh24:mi:ss'格式了。

 

 

再查metalink,发现有bug

 

Cause

Bug 8513905 : ORA-1861 DURING RMAN RECOVERY

Backuppieces in the controlfile have an invalid date. To check if you are hitting this bug query the controlfile:

SQL> alter session set nls_date_format='dd-mon-rr hh24:mi:ss'; 
SQL> select recid, status, device_type, handle, completion_time from
v$backup_piece where completion_time > '<date>';

Use '<date>' to limit the output to those backuppieces being used during recovery and check for invalid dates.   In this case, completion_time for the backuppiece was 04/31/2009 00:57:33 (April only has 30 days).

If the SQL above raises ORA-1861, dump the controlfile and find the trace file in target udump directory :

SQL> alter session set events 'immediate trace name controlf level 20';

Look for a the BACKUP PIECE RECORDS section eg

 *************************************************************************** 
  BACKUP PIECE RECORDS 
  *************************************************************************** 
  ... 
  RECID #68030 Recno 5688 Record timestamp 06/30/09 16:32:01 piece #1 copy 
  #1 pool 0 
  Backup set key: stamp=690857355, count=69079 
  V$RMAN_STATUS: recid=1152921504606803592, stamp=1152921504606803584 
  Flags: <concurrent access> <compressed> 
  Device: DISK 
  Handle: /orashare/backup/S_DBARCLG_BCK_enkir9cb_1_1 
  Media-Handle: 
  Comment: 
  Tag: S_DBARCLG_Q1QSST1_300609_0015 
  Completion time 06/31/09 11:43:20 <<<

 

 

在doc中说,影响到的数据库版本从10.2.0.3到10.2.0.5。

这下麻烦大了。

 

 

(miki西游 @mikixiyou 原文链接 http://mikixiyou.iteye.com/blog/1569221

 

参照 doc 一步一步去解决吧。

 

第一种解决方法,重建控制文件。

第二种,第三种,请参考官方doc,ID 852723.1

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

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

    在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: ...

    ORACLE ORA-00132 ORA-00214

    在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行详细解析,并给出相应的解决方案。 #### 二、ORA-00132: Syntax Error or ...

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

    ORA-00702错误信息表明数据库实例试图访问一个尚未完全初始化的数据文件或控制文件。这可能是由于数据库在不正常的情况下关闭,例如突然断电、系统崩溃或者人为错误导致的。 **Windows系统下的解决步骤** 1. **检查...

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

    在Oracle数据库管理过程中,经常遇到的一些问题包括回闪日志空间不足以及ORA-03113错误等。这些问题若不及时解决,可能会导致数据库性能下降甚至停机。下面我们将详细探讨这些现象的原因及解决方法。 #### Oracle回...

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

    总结起来,遇到"ORA-00600"错误时,需要对数据库进行全面的检查和恢复操作,包括分析错误信息、尝试自动恢复、检查相关日志,并根据需要进行数据文件或控制文件的恢复。同时,定期备份和监控数据库状态是防止这类...

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

    这些问题可能会导致数据库启动时出现ORA-01033错误(数据库无法完成启动过程),以及在尝试修复过程中可能遇到的ORA-01145错误(除非启用了介质恢复,否则不允许立即脱机)。本文将详细介绍这两种错误的原因、可能的...

    ORA-00257错误.doc

    Oracle 的 Archivelog 机制是为了确保数据库的可恢复性,在数据库中, archivelog 文件是记录数据库的所有变化的日志文件,当 archivelog 文件达到一定的大小时, Oracle 就会抛出 ORA-00257 错误,这时我们需要...

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

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

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

    在数据库管理领域,数据恢复是一项至关重要的任务,尤其是当系统遇到严重错误如 ORA-600 时。ORA-00600 是Oracle数据库内部错误代码,通常表示遇到了未预期的内部错误或数据结构损坏。在这种情况下,错误参数16703...

    ora 错误全集 全部 ora0000-ora32999

    ORA-30000到ORA-39999的错误多与Oracle的高级特性和服务相关,比如备份恢复、数据库链接、流复制等。例如,ORA-30036是在执行恢复操作时遇到的错误,可能是因为数据文件版本不兼容。 这个压缩包提供的错误大全对于...

    断电与ORA-600问题集

    由于ORA-600错误通常涉及Oracle数据库内部组件的问题,因此可以通过Oracle官方支持网站METELINK(现称为My Oracle Support)来查找相关文档和技术建议。如果遇到ORA-600错误,首先应当在METELINK上搜索该错误代码...

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

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

    数据库异机恢复(RMAN)

    数据库异机恢复(RMAN) 作为数据库管理员,数据库异机恢复是非常重要的一个话题。...通过本文,我们了解了使用RMAN恢复数据库的详细流程和解决方法,可以帮助我们更好地管理数据库,确保数据库的安全性和可用性。

    oracle11g 内部参数出错问题

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

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

    总的来说,当遇到ORA-00600错误时,理解错误的含义、收集相关信息、及时应用相关的数据库补丁,并根据需要进行数据恢复,是解决这类问题的关键步骤。在处理这类问题时,保持冷静,遵循标准的故障排除流程,以及充分...

    ORA-03113-ORA-00257处理方法

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

    ORA-00257归档日志清理问题

    4. **RMAN删除过期日志**:RMAN(Recovery Manager)是Oracle提供的一个强大的数据库备份和恢复工具。在执行RMAN备份后,如果存在过期的备份,RMAN可以识别并删除这些无用的备份。要显示和删除过期备份,可以使用...

Global site tag (gtag.js) - Google Analytics