Yes, Mostly we restore backups when a media failure has damaged a current data file, control file, or archived redo log or before performing a point-in-time recovery.
I would like to say that before doing any recovery or restoring the database. Be sure about that you have kept all these files like
CONTROL.DBF
SYSAUX.DBF
SYSTEM.DBF
TEMP.DBF
UNDOTBS1.DBF
USERS.DBF
and init.ora file
Also consult with you DBA team , may be apart from that some file also require to keep in safe place. It's depend your environment setup. How you are using oracle 12 c there. If you are using oracle 12c along with any application server & Linux based environment then also try to keep some interface like (sysctl.conf,run.conf etc) for your safety.
Before restore chcek out from your point of view, everything is ok. In point of view from restore from these command.
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup mount
ORACLE instance started.
Total System Global Area size in bytes
Fixed Size size in bytes
Variable Size size in bytes
Database Buffers size in bytes
Redo Buffers size bytes
Database mounted.
As per Oracle BOL https://docs.oracle.com/database/121/RCMRF/rcmsynta2008.htm some of prerequisites point keep in mind like
1) To restore data files to their current location, the database must be started, mounted, or open with the tablespaces or data files to be restored offline.
2)If you use RMAN in a Data Guard environment, then connect RMAN to a recovery catalog.
3) If you are performing a trial restore of the production database, then perform either of the following actions before restoring the database in the test environment:
a)If the test database uses a fast recovery area that is physically
different from the recovery area used by the production database, then
set DB_RECOVERY_FILE_DEST in the test database instance to the new
location.
b)If the test database uses a fast recovery area that is physically
the same as the recovery area used by the production database, then
set DB_UNIQUE_NAME in the test database instance to a different name
from the production database.