select d.file# f#, d.name, d.status, h.status
from v$datafile d, v$datafile_header h
where d.file# = h.file#
and (d.status not in ('SYSTEM','ONLINE') or h.status != 'ONLINE' );
If there are such files, the recovery is necessary:
- restore the file from the backup
- recover datafile ‘&the_file_name’ ;
- alter database datafile ‘&the_file_name’ online;
Another possibility (if there are a lot of files):
- restore the files from the backup
- recover tablespace ‘&tbs_name’ ;
- alter tablespace ‘&tbs_name’ online;