Well there are a quite a few ways – here are some of them.
- Check to see if applied archive sequence is equal on the primary and standby – run this query from both sides
select sequence#, applied from v$archived_log
order by sequence#;
- select * from v$dataguard_stats; — works best from standby — gross numbers on Data Guard process activity
- select * from v$standby_event_histogram; — only works when standby open read only as far as I can tell – shows a histogram of how in sync or out of sync the DB has been since the last restart