rman duplicate恢复部署DG 遇到 ORA-17628 问题排查与处理过程记录

一、故障描述

要进行分布式存储测试,这次是在Dell powerflex上为一测试Oracle服务器分配存储,准备搭建DG环境验证分布式存储性能,
在分布式存储客户端服务器上通过rman duplicate 在搭建DG时遇到了如下报错信息:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 11/17/2021 21:59:00
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script

RMAN-03009: failure of backup command on ORA_DISK_4 channel at 11/17/2021 21:18:56
ORA-17628: Oracle error 19505 returned by remote Oracle server

显示RMAN在恢复过程中,进程突然中断了。
登陆源端及目标端数据服务器,通过查看db_file_name_convert和log_file_name_convert显示DG两边的文件和日志转换路径也都是没问题的。

二、问题分析

根据最后的报错:ORA-17628: Oracle error 19505 returned by remote Oracle server查了下资料,对于该问题,是这样描述的:
导致传输失败的原因是因为源有数据文件没有使用OMF命名格式的文件,导致这些数据文件无法传到目标端:
根据其提供的解决方案,一是采用convert使用绝对路径,二是在目标端创建和源端同样的目录。

三、解决过程

首先登陆源端,通过select tablespace_name,file_name from dba_data_files 查看到在sys用户下有个测试表空间采用了.dbf后缀作为文件命名。

然后根据select table_name from dba_tables where tablespace_name=‘TABLESPACE_NAME’;查看到该表空间上仅有一个测试表,里面没什么数据,于是将该表删除,

同时drop tablespace including contents and datafiles 将表空间及对应数据文件删除。

重新将备已恢复的文件都删除,并重新执行rman duplicate,后面就再没有报错,正常恢复了。