Can I use RMAN to backup and restore data in a certain point in time? I have an Oracle database over which I have full control. What I am doing is performing load testing on our application, which uses Oracle as a database. To do this, I initially set the database up with some dummy data. I'm calling this "Point A".

The load testing will consume this data, and I will have to restore the data so it looks exactly like it was in Point A before I can re-run them. The hard way to do this is using Data Pump, which takes a long time and seeing how I need to backup several schemas it's rather complex.

I was wondering if it was possible just to issue a BACKUP DATABASE on RMAN after I have the data set up. Then I would run my tests, and restore it using something like RESTORE DATABASE FROM TAG &lt;somedate&gt;, and that would be all I need to get my tests going again. There should be no changes to the control file or anything like that.

Is this a safe way to go about doing this?
There is a feature specifically for that:  

 CREATE RESTORE POINT before_test1 GUARANTEE FLASHBACK DATABASE;
 select NAME,SCN,TIME from v$restore_point; 
 exec perform_my_test1;
 SHUTDOWN IMMEDIATE;
 STARTUP MOUNT;
 FLASHBACK DATABASE TO RESTORE POINT before_test1;
 DROP RESTORE POINT before_test1 ; 


This is a database's feature, not RMAN's (commands are for sqlplus), see doc for the full setup and disclaimers.  

To more precisely answer your question, RMAN can also be used for the task. The general script is:

run { 
  set until scn 123123123 ;
  restore database /* from tag ... */;
  recover database;
}


Don't use bare RESTORE DATABASE FROM TAG because without SET UNTIL it doesn't work as you'd expect in some scenarios.

I wouldn't say any of these two solutions are inherently safe, both have as many pitfalls as any other Oracle's advanced features, so you need to do some research upfront.