首页 » ORACLE 9i-23ai » WARNING: The converted filename ‘x’ is an ASM fully qualified filename. MUST_RENAME_THIS_DATAFILE On Oracle Standby
WARNING: The converted filename ‘x’ is an ASM fully qualified filename. MUST_RENAME_THIS_DATAFILE On Oracle Standby
Oracle standby database恢复错误,因为源库使用的ASM OMF文件名格式, 有配置xx_file_name_convert参数, 替换了standby controlfile文件缺失,无法找到对应文件。standby database reocver无法启动,查看db alert log如下:
WARNING: The converted filename '+DATADG/stdbillb/datafile/cdr3.289.1088277783' is an ASM fully qualified filename. Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_773.4294967295.4294967295'. Please rename it accordingly. ORA-01110: data file 773: 'x' ORA-01565: error in identifying file 'x'
现在连接到备用数据库并检查数据文件的名称。
SQL> select name,file# from v$datafile where name like '%MUST_RENAME_THIS_DATAFILE%'; NAME FILE# ------------------------------------------------------------------------------- ------------- +DATADG/stdbillb/datafile/MUST_RENAME_THIS_DATAFILE_773.4294967295.4294967295 773 ...
可以从生产数据库中找到数据文件的确切名称,并将其用于恢复具有原始名称的数据文件。
set lines 900 col file_name format a60 select file_id, file_name , tablespace_name from dba_data_files where file_id in (773,....);
由于ASM磁盘上没有可用的物理数据文件,因此需要使用“SET new name”参数恢复相同的数据文件名。
$ rman target / debug trace=/expdp/rman_dupl.trc msglog /u01/rman_clone3_log RMAN> set echo on; show all; run{ allocate channel c1 device type disk; allocate channel c2 device type disk; allocate channel c3 device type disk; allocate channel c4 device type disk; allocate channel c5 device type disk; allocate channel c9 device type disk; allocate channel c6 device type disk; allocate channel c7 device type disk; allocate channel c8 device type disk; set newname for datafile 773 to '+DATADG/stdbillb/datafile/cdr3.289.1088277783'; ... ... restore database from service pridb using compressed backupset; switch datafile all; recover database from service pridb using compressed backupset; }
这将恢复所有丢失的数据文件,并且可以通过运行以下查询在备用数据库中进行检查。
SQL> set lines 900 col file_name format a60 select file_id, file_name , tablespace_name from dba_data_files where file_id in (xx,xxx);
为了数据库的一致性,我建议使用rman恢复整个数据库,首先恢复CONTROLFILE,然后恢复FULL database restore,以避免任何其他不寻常的错误,也可以restore datafile xxx, switch datafile xxx 。
run{ allocate channel c1 device type disk; allocate channel c2 device type disk; ... set newname for datafile 1 to '+DATADG/STDBILLB/DATAFILE/system.1284.1188076649; ... restore datafile 1 from service pridb; restore datafile 2 from service pridb; restore datafile 3 from service pridb; restore datafile 4 from service pridb; -- list copy of datafile 1,2,3,4; switch datafile 1,2,3,4 to copy; }
用下面的查询再次检查错误数据文件。
SQL> select file#, name from v$datafile where name like '%MUST_RENAME_THIS_DATAFILE%'; no rows selected
查看所需的所有数据文件是否已恢复,并且备用数据库是否一致。
在恢复db或需要的数据文件时,可以通过以下查询查询恢复进度:
SELECT SID, SERIAL#, MESSAGE, CONTEXT, SOFAR, TOTALWORK, ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" FROM V$SESSION_LONGOPS WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%' AND TOTALWORK != 0 AND SOFAR <> TOTALWORK;
11g之前的版本还可以使用增量备份<How to Recover Oracle Standby Database Using an Incremental Backup?>
— over —
上一篇:
目前这篇文章还没有评论(Rss)