I'm using Oracle Database 11.2.
I have a scenario where I issue FLASHBACK DATABASE quite often.
It seems that a FLASHBACK DATABASE cycle does a reboot of the database instance which takes approx. 7 seconds on my setup.
Database is small (~ 1 GB tablespace), all files should be in I/O caches/buffers. Therefore I think that the bottleneck is not I/O based.
I'm looking for tuning advices in order to save user time and/or CPU time for doing a flashback.
UPDATE:
Flashback sequence (and timing of each step) is the following:
1. Get SYSDBA connection with prelim_auth=true [15 ms]
2. SHUTDOWN ABORT; [1034 ms]
3. STARTUP (unrestricted) [1241 ms]
4. Close SYSDBA connection [2 ms]
5. Get SYSDBA connection with prelim_auth=false [18 ms]
6. ALTER DATABASE MOUNT [4073 ms]
7. FLASHBACK DATABASE TO RESTORE POINT <restore_point_name> [306 ms]
8. ALTER DATABASE OPEN RESETLOGS [1652 ms]
9. CLOSE SYSDBA connection [2 ms]
You could use a storage snapshot. In that case take a snapshot at t0. Do your operations. Once you are ready to rollback stop the database and mount your t0 snapshot as your data files. This should take you the same time than starting your database at t0.