I got ” no parent backup or copy of datafile found ” error in Oracle database during RMAN Image Copy Backup.
no parent backup or copy of datafile found
Details of error are as follows.
run { sql 'alter system set "_backup_file_bufcnt"=64 scope=memory'; sql 'alter system set "_backup_file_bufsz"=4194304 scope=memory'; sql 'alter system set "_backup_disk_bufcnt"=64 scope=memory '; sql 'alter system set "_backup_disk_bufsz"=1048576 scope=memory'; allocate channel fzfs_ch01 device type disk; allocate channel fzfs_ch02 device type disk; allocate channel fzfs_ch03 device type disk; allocate channel fzfs_ch04 device type disk; allocate channel fzfs_ch05 device type disk; allocate channel fzfs_ch06 device type disk; allocate channel fzfs_ch07 device type disk; allocate channel fzfs_ch08 device type disk; backup incremental level 1 for recover of copy with tag 'MSDB_FOREVER' database format '/zfssa/msdb/image_copy/%U'; recover copy of database with tag 'MSDB_FOREVER'; release channel fzfs_ch01; release channel fzfs_ch02; release channel fzfs_ch03; release channel fzfs_ch04; release channel fzfs_ch05; release channel fzfs_ch06; release channel fzfs_ch07; release channel fzfs_ch08; } no parent backup or copy of datafile 93 found no parent backup or copy of datafile 100 found no parent backup or copy of datafile 97 found no parent backup or copy of datafile 126 found no parent backup or copy of datafile 92 found no parent backup or copy of datafile 106 found no parent backup or copy of datafile 18 found no parent backup or copy of datafile 108 found no parent backup or copy of datafile 116 found no parent backup or copy of datafile 87 found no parent backup or copy of datafile 120 found no parent backup or copy of datafile 95 found no parent backup or copy of datafile 107 found no parent backup or copy of datafile 125 found no copy of datafile 1931 found to recover no copy of datafile 1932 found to recover no copy of datafile 1933 found to recover no copy of datafile 1934 found to recover no copy of datafile 1935 found to recover no copy of datafile 1936 found to recover no copy of datafile 1937 found to recover no copy of datafile 1938 found to recover
RMAN Image Copy Backup
This error is related with the missing of LEVEL 0 backup of Image Copy backup. You need to take LEVEL 0 backup before Incremental L1 backup.
You have two option to solve this error.
If you don’t have Level 0 Full Backup, then RMAN will start to run Level 0 Backup before Incremental L1 backup, or you can catalog the datafile copies as LEVEL 0 if you have already Full backup as follows.
CATALOG DATAFILECOPY
If you have already Full backup, you can catalog these backups as LEVEL 0 backup as follows.
RMAN> CATALOG DATAFILECOPY '/zfssa/msdb/msdb_full01_c03/msdb_COPY_data_D-msdb_I-2054866743_TS-USERS_FNO-133_onvjqo6k' LEVEL 0;
You can generate for all datafile copies using the following script.
select 'CATALOG DATAFILECOPY '''||name||''' LEVEL 0;' from v$datafile_copy where name is not null and name like '%MSDB_COPY%' and status='A' and incremental_level is null;
Then you can start to run Incremental Level 1 backup as follows. The following script will take Incremental Level 1 backup and recover copy of the Image copy backup.
But If you don’t have Level 0 Full backup, then the following scripts will start the Level 0 Full Backup before Incremental backup. It will take the Incremental backup and Merge it with Full backup Level 0 for the second run time.
run { sql 'alter system set "_backup_file_bufcnt"=64 scope=memory'; sql 'alter system set "_backup_file_bufsz"=4194304 scope=memory'; sql 'alter system set "_backup_disk_bufcnt"=64 scope=memory '; sql 'alter system set "_backup_disk_bufsz"=1048576 scope=memory'; allocate channel fzfs_ch01 device type disk; allocate channel fzfs_ch02 device type disk; allocate channel fzfs_ch03 device type disk; allocate channel fzfs_ch04 device type disk; allocate channel fzfs_ch05 device type disk; allocate channel fzfs_ch06 device type disk; allocate channel fzfs_ch07 device type disk; allocate channel fzfs_ch08 device type disk; backup incremental level 1 for recover of copy with tag 'MSDB_FOREVER' database format '/zfssa/msdb/image_copy/%U'; recover copy of database with tag 'MSDB_FOREVER'; release channel fzfs_ch01; release channel fzfs_ch02; release channel fzfs_ch03; release channel fzfs_ch04; release channel fzfs_ch05; release channel fzfs_ch06; release channel fzfs_ch07; release channel fzfs_ch08; }
If you use the keep syntax along with different tag names for the different level incremental backups, rman
will create a new level 0 backup.
In a bug that was filed that was determined to not be a bug there was a comment from an rman developer:
Bug 10152820: BACKUP ARCHIVELOG IGNORES NOT BACKED UP <N> TIMES IF KEEP OPTION HAS BEEN USED
This is not a bug. KEEP backups are special backups. They do not count for redudancy backups of non-keep backups. When KEEP is used only the backups
taken with the same TAG and KEEP are taken into account for redundancy. The feature is working as expected and is not a bug.
When using the keep syntax along with incremental backups, use the same tag name and then the level 1 incremental
backup will be able to find the previous level 0 backup.
Do you want to learn more details about RMAN, then Click this Link and read the articles.
RMAN Tutorial | Backup, Restore and Recovery Tutorials For Beginner Oracle DBA