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'
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#;
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
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';
}
Run refresh of the GI