If one of your data file is corrupted in Production or in Standby, you can pick that data file from other location and restore.
We don’t have to recreate the standby db or restore the DB. Please find the steps we followed..
SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
———- ———- ———- —————— ———
36 289469 1 0 CORRUPT
75 96029 1 0 CORRUPT
Primary:
RMAN> backup as copy datafile 36 format ‘/ora_dr_backup/rman/drdb/data36.dbf’;
RMAN>backup as copy datafile 75 format ‘/ora_dr_backup/rman/drdb/data75.dbf’;
ftp Standby
SQL> alter database datafile 36 offline ; If your standby datafile is corrupted use ‘drop’ option
SQL> alter database datafile 75 offline ; If your standby datafile is corrupted use ‘drop’ option
RMAN> catalog datafilecopy ‘/ora_dr_backup/rman/drdb/data36.dbf’;
RMAN> catalog datafilecopy ‘/ora_dr_backup/rman/drdb/data75.dbf’;
RMAN> list copy of datafile 36; ==> Check above mountpoint is listed
RMAN> list copy of datafile 75; ==> Check above mountpoint is listed
RMAN> restore datafile 36;
SQL> alter database datafile 36 online;
RMAN> recover datafile 36;
RMAN> restore datafile 75;
SQL> alter database datafile 75 online;
RMAN> recover datafile 75;