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);
[…] Oracle rman中set newname可能很慢 […]