Oracle rman中set newname可能很慢, 对于该问题有几种可能:   1、rman 软件bug ,具体请去MOS查询 2、打开了BACKUP OPTIMIZATION on,show all命令确认下,若是则 CONFIGURE BACKUP OPTIMIZATION OFF; 暂时关掉 3、 set newname 之前不要set until time之类的设置,最好也别allocate channel xx type sbt,可以在set newname之后再设不迟 4 、使用catalog 恢复目录替代controlfile模式往往可以绕过该问题   具体的set newname操作涉及到  sys . dbms_backup_restore . normalizeFileName和 dbms_rcvman . translateDataFile  2个存储过程:   FUNCTION normalizeFileName (fname IN varchar2) RETURN varchar2; -- Normalizes the file name according to the rules of the target -- database and returns the normalized filename. -- -- Input parameters: -- fname -- File name to be normalized. -- Exceptions: -- NAME-TOO-LONG (ora-19704) -- The specified file name is longer than the port-specific -- maximum file name length. -- translateDataFile translates the datafile name/number into -- a datafile number and creation SCN and filename. getDataFile must -- be called to obtain the translation info, just as for the other translate -- functions. -- Unlike the other translation functions, translateDatafile by name is always -- performed relative to current time. If an until setting is in effect, -- and if the filename is ambiguous, then an exception is raised. Ambiguous -- means that the filename refers to different datafile at the until time than -- it does at the current time. This happens only when a filename has been -- reused. When fno and ckpscn are passed, the filename and other info as of -- that scn is returned. -- Input parameters: -- fname -- name of the datafile to be translated. -- The name must be a normalized filename. -- fno -- The datafile number. If the datafile number was not in use at the -- until time, then an exception is raised. -- Exceptions: -- DATAFILE_DOES_NOT_EXIST (ORA-20201) -- the datafile to be translated does not exists -- Check that the recovery catalog is current. PROCEDURE translateDataFile( fname IN varchar2); PROCEDURE translateDatafile( fno IN number); PROCEDURE translateDatafile( fno IN number ,ckpscn IN number);