How to verify that a certain commit has been transmitted to standby

dataguardoracle

Scenario:

  • Oracle Data guard 12c with 1 primary and 1 standby, Max. Av. protection mode
  • Primary open, standby mounted (all green in OEM)
  • Perform a dummy CTAS in primary

Question:

Without opening it, how can I be sure the data has been received by standby? Is there a log, a table, anything, that I can consult in Primary?

select sequence#, applied from v$archived_log;

shows a lot of not applied logs but I'm not sure it is relevant. Also, it does not really identify the query.

Thank you

Best Answer

Without opening the standby for read-only, you won't be able to identify specific changes to specific physical objects, instead you'll have to verify that a specific set of changes have been applied to the remote standby. Views including v$standby_apply_snapshot, v$archived_log, v$archive_gap, v$dataguard_stats, v$managed_standby are all ones that I use on a regular basis to verify standby apply health.

Additionally, you can use the dgmgrl command line interface to show the status of your log apply on the standby.