How to determine flashback database progress

After you have issued the FLASHBACK DATABASE command how can you monitor the progress of the command, and more importantly, how can you predict when it will complete?

With Oracle 11g this information is now recorded in the v$session_longops table so we can monitor the progress of the flashback operation in another session very simply.

For example:

col opname for a30
col complete for a8
alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS' ;

select opname,round(sofar/totalwork*100)||'%' complete,start_time,(sysdate+time_remaining/86400) predicted_finish from v$session_longops where time_remaining > 0;

OPNAME                         COMPLETE START_TIME           PREDICTED_FINISH
------------------------------ -------- -------------------- --------------------
Flashback Database             97%      23-MAR-2015 10:23:49 23-MAR-2015 10:26:34

Unfortunately, this information is not present in v$session_longops in Oracle 10g.