You cannot recover a tablespace with missing datafiles. The controlfile in your case has data in the data dictionary but no information about the datafile in question and you cannot even restore the "missing" datafile. You will have to restore the database or tablespace from an earlier version of the controlfile, prior to dropping the datafile or tablespace.
You can however make a RMAN backup by excluding the tablespace, for example:
RMAN> configure exclude for tablespace example;
RMAN> show exclude;
RMAN> backup database;
RMAN> backup database noexclude;
RMAN> configure exclude for tablespace example clear;
If the tablespace is offline, you can also use:
RMAN> backup database skip offline;
If you have no backup to restore to a point in time, then the alternative solution is to datapump the tablespace to a new tablespace.
I'm going to test all the purposed answers.
What about :
alter database datafile 'datafile_X_MISSING' offline for drop;
alter database open;
select file_id from dba_data_files where file_name = 'datafile_X';
delete from file$ where file#=<value FILE_ID should be X>;
I've to backup all my database before. And restore it after ....
Really dangerous ....
It is not possible for RMAN to restore and recover a missing datafile. If the datafile was in use by a tablespace and is missing, the tablespace is essentially destroyed and requires restore and recovery. You can restore an older controlfile, restore and recover the tablespace. If you don't have the necessary backup and the database runs in noarchivelog mode, you're out of luck. I'm not aware that there is an option to ignore the missing datafile and use the remaining tablespace regardless.
Regarding your last response to use "alter database datafile ... offline for drop". According to the documentation at https://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles004.htm#ADMIN11427 it is used to take a datafile offline when the database is in
NOARCHIVELOGmode. It allows you to open the database and drop the tablespace.
Perhaps you find DBPITR After Dropping a Tablespace useful to explain the scenario.
You do not necessarily need to open a database to use RMAN or the OS to perform a backup and restore. If the database is shut down, you can use the OS to copy the files as is. You can also mount the database and use RMAN to backup the data, though you will have to tell RMAN to exclude the tablespace as previously mentioned.
If you have all archived redo logs since the file was added you could try to recreate it.
SQL> alter database create datafile '/opt/oracle/product/11.2.0/dbhome_2/dbs/MISSING00007 ' as '<some_path_>/original_file_name.dbf' ;