ITPub博客

首页 > Linux操作系统 > Linux操作系统 > To use Rman to duplicate database be careful of db_file_name_convert

To use Rman to duplicate database be careful of db_file_name_convert

原创 Linux操作系统 作者:赵宇 时间:2009-07-22 09:15:35 0 删除 编辑

Actually, it's very easy for every dba to use rman to duplicate database.However,because of its simple, so we are likely to make mistakes. The following is typical errors,Let me share with you,Happy every day:

When i input rman command which is duplicate target database to newdb_name,

record log :


恢复管理器: Release 10.2.0.1.0 - Production on 星期二 7月 21 17:09:47 2009

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

连接到目标数据库: DG2 (DBID=1468921071)
已连接到辅助数据库: AUXDB (未装载)

RMAN>
RMAN-03036: 调试的设置为级别 =9, 类型 =ALL

RMAN>
RMAN-03090: 启动 Duplicate Db 于 21-7月 -09
RMAN-06009: 使用目标数据库控制文件替代恢复目录
RMAN-08030: 分配的通道: ORA_AUX_DISK_1
RMAN-08500: 通道 ORA_AUX_DISK_1: sid=158 devtype=DISK
RMAN-08030: 分配的通道: ORA_AUX_DISK_2
RMAN-08500: 通道 ORA_AUX_DISK_2: sid=159 devtype=DISK

RMAN-08161: 内存脚本的内容:
{
   set until scn  808318;
   set newname for datafile  1 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF";
   set newname for datafile  2 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS01.DBF";
   set newname for datafile  3 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSAUX01.DBF";
   set newname for datafile  4 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\DG2\DATAFILE\USERS.258.692722797";
   restore
   check readonly
   clone database
   ;
}
RMAN-08162: 正在执行内存脚本

RMAN-03023: 正在执行命令: SET until clause

RMAN-03023: 正在执行命令: SET NEWNAME

RMAN-03023: 正在执行命令: SET NEWNAME

RMAN-03023: 正在执行命令: SET NEWNAME

RMAN-03023: 正在执行命令: SET NEWNAME

RMAN-03090: 启动 restore 于 21-7月 -09
RMAN-12016: 使用通道 ORA_AUX_DISK_1
RMAN-12016: 使用通道 ORA_AUX_DISK_2

RMAN-06716: 正在略过数据文件 2; 已恢复到文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS01.DBF
RMAN-06716: 正在略过数据文件 3; 已恢复到文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSAUX01.DBF
RMAN-08016: 通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
RMAN-08089: 通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
RMAN-08523: 正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF
RMAN-08523: 正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\DG2\DATAFILE\USERS.258.692722797
RMAN-08003: 通道 ORA_AUX_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DG2\BACKUPSET\2009_07_21\O1_MF_NNNDF_TAG20090721T164140_56BZT52G_.BKP
RMAN-01005:
RMAN-05016: 故障转移到上一个备份

RMAN-08019: 通道 ORA_AUX_DISK_1: 正在恢复数据文件00001
RMAN-08507: 输入数据文件副本 recid=8 stamp=692813389 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\DATA_D-DG2_I-1468921071_TS-SYSTEM_FNO-1_1LKKMVG3
RMAN-08509: 数据文件 00001 的恢复目标: D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF
RMAN-08019: 通道 ORA_AUX_DISK_2: 正在恢复数据文件00004
RMAN-08507: 输入数据文件副本 recid=11 stamp=692813643 文件名=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\DG2\DATAFILE\O1_MF_USERS_56BY6B00_.DBF
RMAN-08509: 数据文件 00004 的恢复目标: D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\DG2\DATAFILE\USERS.258.692722797
RMAN-01005:
RMAN-08007: 通道 ORA_AUX_DISK_1: 已复制数据文件 00001 的数据文件副本
RMAN-08505: 输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF
RMAN-05016: 故障转移到上一个备份

RMAN-08019: 通道 ORA_AUX_DISK_1: 正在恢复数据文件00004
RMAN-08507: 输入数据文件副本 recid=10 stamp=692813398 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\DATA_D-DG2_I-1468921071_TS-USERS_FNO-4_1OKKMVIL
RMAN-08509: 数据文件 00004 的恢复目标: D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\DG2\DATAFILE\USERS.258.692722797
RMAN-01005:
RMAN-05016: 故障转移到上一个备份

 MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: Duplicate Db 命令 (在 07/21/2009 17:23:53 上) 失败
RMAN-03015: 在存储的脚本Memory Script中出现错误
RMAN-06026: 有些目标没有找到 - 终止恢复
RMAN-06023: 没有找到数据文件4的副本来恢复

Errors shows: It cannot find any copy of datafile 4 from target database,but I have two copies of datafile 4.I'm confused that why rman cannot identify that copy.

I check parameters of auxiliary database:

SQL> show parameter db_file_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      D:\oracle\product\10.2.0\orada
                                                 ta\dg2, D:\oracle\product\10.2
                                                 .0\oradata\test, +STANDBY, D:\oracle\product\10
                                                 .2.0\oradata\test

I know the reason why rman cannot identifiy.Obviously,rman cannot automatically identify ASM diskgroup catalog,so i must modify that parameter through db_file_name_convert to tell rman detail catalog of that datafile.

Modified parameteres:

SQL> show parameter db_file_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      D:\oracle\product\10.2.0\orada
                                                 ta\dg2, D:\oracle\product\10.2
                                                 .0\oradata\test, +STANDBY/dg2/
                                                 datafile, D:\oracle\product\10
                                                 .2.0\oradata\test

 

To again duplicate database is ok.Good Luck!!

Never Failed To Seize Day,Go-!!!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/175005/viewspace-609861/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Ora - 16401 Solution
下一篇: 利用RMAN做TSPITR
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-25

  • 博文量
    73
  • 访问量
    893830