This issue happens, when the standby_file_management parameter is set to MANUAL in standby database.
So when a datafile is added in primary database, standby database is unable to process it. To fix this issue follow the below process
1. Check the standby_file_management parameter in the standby database.
SQL> show parameter standby
2. Cancel the recovery:
SQL> recover managed standby database disconnect from session;
Media recovery complete.
3. Check the file, which caused the issue:[ STANDBY]
SQL> select file#, error, name from v$datafile_header where ERROR='FILE MISSING';
SQL> select name from v$datafile where file#=5;
SQL> alter database create datafile '/data/app/oracle/product/12c/dbhome_1/dbs/UNNAMED00005' as new;
database altered.
If you dont have OMF files, then get the exact datafile name from primary and recreate.
-- Primary
SQL> select name from v$datafile where file#=5;
-- Recreate datafile in standby
SQL> alter database create datafile '/data/app/oracle/product/12c/dbhome_1/dbs/UNNAMED00005'
as '/archive/NONPLUG/PRIM/PRIM/datafile/o1_mf_prim_d9v1fq7k_.dbf';
4. Set standby_file_management to AUTO, to avoid similar issue in future.
alter system set standby_file_management=AUTO scope=both;
5. Start recovery in standby database
alter database recover managed standby database disconnect from session;