To use Rman to duplicate database be careful of db_file_name_convert

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/175005/viewspace-609861/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值