Duplicate file ID reported by Oracle while VDB create step

Duplicate file ID reported by Oracle while VDB create step

This behavior was addressed in Virtualization version 34.0

Symptoms:

Every new VDB from new snapshots will be unsuccessful with error:

ERROR at line 1:

ORA-01503: CREATE CONTROLFILE failed

ORA-01167: two files are the same file/group number or the same file

ORA-01110: data file 2:

'/main_pool/00000142/DB/data_D-RMANGI_I-599827182_TS-TEST123_FNO-2_2a41m8l6'

ORA-01110: data file 2:

'/main_pool/00000142/DB/data_D-RMANGI_I-599827182_TS-TEST123_FNO-2_0u41m84b'

 

  1. Connect to the source Oracle database and run both queries:

SELECT b.NAME FROM V$BACKUP_COPY_DETAILS b, V$DATAFILE f WHERE b.FILE# = f.FILE# AND b.TAG = 'GI_INC_BACKUP' AND b.CREATION_TIME < f.CREATION_TIME;
SELECT b.FILE#, b.NAME FROM V$BACKUP_COPY_DETAILS b WHERE b.TAG = 'GI_INC_BACKUP' AND b.FILE# NOT IN (SELECT f.FILE# FROM v$datafile f) ORDER BY b.FILE#;

 

  1. Connect to Ubuntu server and remove the files reported from the queries:

The path “/main_pool/XYZ” reported on the source is different from actual path on Virtualization server. You need to know from mount point information what is the path mounted on Virtualization server.

rm -rf /main_pool/XYZ/file_name

 

  1. On the source database connect with RMAN and execute:

RUN{ CROSSCHECK BACKUP TAG 'GI_INC_BACKUP'; CROSSCHECK COPY TAG 'GI_INC_BACKUP'; CROSSCHECK COPY of controlfile; CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT BACKUPSET TAG 'GI_INC_BACKUP'; DELETE NOPROMPT EXPIRED COPY of controlfile TAG 'GI_INC_BACKUP'; DELETE NOPROMPT EXPIRED BACKUP TAG 'GI_INC_BACKUP'; DELETE NOPROMPT EXPIRED COPY TAG 'GI_INC_BACKUP'; }

  

  1. Run refresh of the GI