Oracle Dataguard RTO Test

Oracle Data Guard redo transport performance is directly dependent on the performance of the primary and standby systems, the network that connects them, and the I/O subsystem. As changes occur on the primary database, redo is generated and sent to the standby database. The frequency of shipping redo to the standby is determined by whether the remote destination is using synchronous or asynchronous redo transport. If redo apply was started using real-time apply, redo generated by the primary database is applied to the standby database as soon as it is received (i.e., there is no wait for the database to switch logs). Sometimes, the standby database may start lagging owing to a poor network connection or due to a sudden surge in I/O operations. If the standby database lags for a duration that is longer than the permissible time duration, then, data will not be up-to-date between the primary database and the standby database. If during such time, the primary database fails, the standby database may not contain a significant amount of data thus resulting in data loss which may in turn lead to interruption in business services. To avoid such data loss, it is essential to keep track on the time lag noticed between the standby database and the primary database. The Oracle Dataguard RTO test helps administrators in this regard!

This test periodically monitors the target database server and reports the time lag noticed on the standby database when redo logs are applied and the time lag noticed when the redo is transported from the primary server. Using this test, administrators can estimate the time required for the standby database and the primary database to be in sync and the time required to start the standby database when the primary database fails.


This test will report metrics only when the target database server being monitored is the standby database of an Oracle server on which Data Guard feature is enabled.

Target of the test : An Oracle server on which Data Guard feature is enabled

Agent deploying the test : An internal/external agent

Outputs of the test : One set of results for every Oracle Database server being monitored.

Configurable parameters for the test
Parameter Description

Test period

How often should the test be executed


The host for which the test is to be configured.


The port on which the server is listening.


In order to monitor an Oracle database server, a special database user account has to be created in every Oracle database instance that requires monitoring. A Click here hyperlink is available in the test configuration page, using which a new oracle database user can be created. Alternatively, you can manually create the special database user. When doing so, ensure that this user is vested with the select_catalog_role and create session privileges.

The sample script we recommend for user creation (in Oracle database server versions before 12c) for eG monitoring is:

create user oraeg identified by oraeg

create role oratest;

grant create session to oratest;

grant select_catalog_role to oratest;

grant oratest to oraeg;

The sample script we recommend for user creation (in Oracle database server 12c) for eG monitoring is:

alter session set container=<Oracle_service_name>;

create user <user_name>identified by <user_password> container=current default tablespace <name_of_default_tablespace> temporary tablespace <name_of_temporary_tablespace>;

Grant create session to <user_name>;                                

Grant select_catalog_role to <user_name>;

The name of this user has to be specified here.


Specify the password of the specified database user.

Confirm Password

Confirm the Password by retyping it here.


If the value chosen is Yes, then the Oracle server under consideration is a passive server in an Oracle cluster. No alerts will be generated if the server is not running. Measures will be reported as “Not applicable" by the agent if the server is not up.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Redo apply lagging duration

Indicates the time elapsed or time lag noticed on the standby database when redo logs are applied from the primary database.


An apply lag is the difference, in elapsed time, between when the last applied change became visible on the standby and when that same change was first visible on the primary.

Redo apply performance depends mainly on the type of workload that is being recovered and the system resources allocated to recovery.

For standby databases on symmetric hardware and configuration, the apply lag should less than 10 seconds.

A high value for this measure indicates that the standby database is lagging far behind the primary database and in case of failure of the primary database, there may be a considerable amount of data loss.

Redo transport lagging duration

Indicates the time lag noticed in the transport of redo logs to the standby database with respect to the generation of logs in the primary database.


Given enough resources, in particular network bandwidth, an Oracle Data Guard standby can maintain pace with very high workloads. In cases where resources are constrained, the standby can begin to fall behind, resulting in a transport or apply lag.

A transport lag is the amount of data, measured in time, that the standby has not received from the primary.

A low value is desired for this measure.

Estimated redo apply finish time on standby

Indicates the estimated amount of time required to apply the redo on the standby database so that both the standby and primary databases are in sync.


A low value is desired for this measure.

Estimated startup time of standby

Indicates the time duration needed to start the standby database.


A low value is desired for this measure. A high value for this measure indicates that during fail over, mission-critical business services may be affected for the time duration reported by this measure.