yangtingkun
===========================================================
11g的RMAN在命令出错后退出程序
===========================================================

今天尝试使用11g的RMAN进行恢复时,发现了这个问题。


刚开始还没有太在意,后来发现,几乎只要命令没有正确的返回,都会造成这个错误,而且其中的信息还包括RMAN-600这种内部错误。

类似的错误包括:

RMAN> startup mount

已连接到目标数据库 (未启动)
Oracle
实例已启动

DBGANY: Mismatched message length! [14:05:33.050] (krmiduem)
DBGANY: Mismatched message length! [14:05:33.051] (krmiduem)
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: startup
命令 ( 09/04/2008 14:05:33 ) 失败
ORA-00205:
标识控制文件时出错, 有关详细信息, 请查看预警日志
$

控制文件出错,RMAN并没有给出错误原因,而是让用户直接去看alert日志,首先在可读性方面就有问题。其次rman命令的错误不应该导致rman工具的退出。

类似的错误还有:

RMAN> restore database;

启动 restore 04-9 -08使用通道 ORA_DISK_1

创建数据文件, 文件号 = 1 名称 = /dev/vx/rdsk/datavg/rac11g_system_1_1g
DBGANY: Mismatched message length! [14:18:20.868] (krmiduem)
DBGANY: Mismatched message length! [14:18:20.870] (krmiduem)
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore
命令 ( 09/04/2008 14:18:20 ) 失败

ORA-01180:
无法创建数据文件 1
ORA-01110:
数据文件
1: '/dev/vx/rdsk/datavg/rac11g_system_1_1g'
$

以及错误:

RMAN> catalog backuppiece '+DATA/RAC11G/01jpk0bj_1_1';

DBGANY: Mismatched message length! [14:33:30.426] (krmiduem)
DBGANY: Mismatched message length! [14:33:30.471] (krmiduem)
DBGANY: Mismatched message length! [14:33:30.473] (krmiduem)
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: catalog
命令 (default 通道上, 09/04/2008 14:33:30 ) 失败
RMAN-00600: internal error, arguments [3045] [] [] [] []
ORA-19870:
还原备份片段 +DATA/rac11g/01jpk0bj_1_1 时出错
ORA-19505:
无法识别文件"+DATA/rac11g/01jpk0bj_1_1"
ORA-17503: ksfdopn: 2
未能打开文件
+DATA/rac11g/01jpk0bj_1_1
ORA-15173: entry '01jpk0bj_1_1' does not exist in directory 'rac11g'
$

检查了metalink,发现似乎是11g的bug,在Bug No. 7027628中描述了这个错误,不过这个bug并不是一个基础bug,而是指向了另一个看起来和当前问题不相关的错误,不管怎样,根据这个bug描述的方法是可以避免错误的。

$ bash
bash-3.00$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
bash-3.00$ rman target /

Recovery Manager: Release 11.1.0.6.0 - Production on Thu Sep 4 17:58:31 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: RAC11G (DBID=1712482917)

RMAN> catalog backuppiece '+DATA/RAC11G/01jpk0bj_1_1';

using target database control file instead of recovery catalog
ORA-19870: error while restoring backup piece +DATA/rac11g/01jpk0bj_1_1
ORA-19505: failed to identify file "+DATA/rac11g/01jpk0bj_1_1"
ORA-17503: ksfdopn:2 Failed to open file +DATA/rac11g/01jpk0bj_1_1
ORA-15173: entry '01jpk0bj_1_1' does not exist in directory 'rac11g'

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of catalog command at 09/04/2008 17:58:40
RMAN-06209: List of failed objects
RMAN-06211: ==========================
RMAN-06212: Object Type Filename/Handle
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Backup Piece +DATA/rac11g/01jpk0bj_1_1

NLS_LANG设置为非中文环境,就可以临时避免这个问题的产生。Oracle计划在11.1.0.7fixed这个bug

yangtingkun 发表于:2008.09.06 23:56 ::分类: ( ORACLE , Bug ) ::阅读:(557次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...