Oracle RAC Redo Logs Test

Redo logs are applied during the roll forward phase of the recovery process. These logs hold information about the changes made to the database and whether they were committed. Each change is recorded in a redo record, which has information like the SCN of the change, changed data, commit flag, and information about which data block is changed. The Oracle RAC Redo Logs test monitors key performance metrics pertaining to the redo log buffer in each node of an Oracle cluster.  

Target of the test : Oracle Cluster

Agent deploying the test : An internal agent

Outputs of the test : One set of results for every node in a cluster

Configurable parameters for the test
  1. TEST PERIOD - How often should the test be executed
  2. Host – The host for which the test is to be configured
  3. Port - The port on which the server is listening
  4. orasid - The variable name of the oracle instance
  5. service name - A ServiceName exists for the entire Oracle RAC system. When clients connect to an Oracle cluster using the ServiceName, then the cluster routes the request to any available database instance in the cluster. By default, the service name is set to none. In this case, the test connects to the cluster using the orasid and pulls out the metrics from that database instance which corresponds to that orasid. If a valid service name is specified instead, then, the test will connect to the cluster using that service name, and will be able to pull out metrics from any available database instance in the cluster.

    To know the ServiceName of a cluster, execute the following query on any node in the target cluster:

    select name, value from v$parameter where name =’service_names’

  6. User – In order to monitor an Oracle RAC, a special database user account has to be User – 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.

  7. Password – Password of the specified database user
  8. Confirm password – Confirm the password by retyping it here.
  9. ISPASSIVE – 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 buffer entries:

This indicates the number of attempts to allocate space in the redo buffer of this node.

Number

A value other then 0 indicates that the redo writer is falling behind. This could be caused by log switches or checkpoints.

By adjusting the LOG_CHECKPOINT_INTERVAL and LOG_CHECKPOINT_TIMEOUT parameters in the init.ora, you will be able to minimize the number of checkpoints. From Oracle 9i onwards however, the LOG_CHECKPOINT_INTERVAL parameter is supported only for ensuring backward compatability with previous versions of Oracle. The recommended equivalent in case of Oracle 9i therefore is FAST_START_MTTR_TARGET.

You can also increase the number of LGWR writers. These parameters are new in Oracle 8 and are defined in the init.ora parameters LGWR_IO_SLAVES and ARCH_IO_SLAVES. However, note that both these parameters are obsolete from Oracle 8i onwards.

Redo log space requests:

The active log file is full and Oracle is waiting for disk space to be allocated for the redo log entries on this cluster node. Space is created by performing a log switch.

Number

Small Log files in relation to the size of the SGA or the commit rate of the work load can cause problems. When the log switch occurs, Oracle must ensure that all committed dirty buffers are written to disk before switching to a new log file. If you have a large SGA full of dirty buffers and small redo log files, a log switch must wait for DBWR to write dirty buffers to disk before continuing.

Redo entries:

This statistic increments each time redo entries are copied into the redo log buffer on this cluster node. (ie. The number of attempts to allocate space in the redo)

Number

 

Log space requests:

This indicates the percentage of log space requests on this cluster node.

Percentage

If the number is greater than 1%, you should increase the size of the Redo Log buffer. I would also check the checkpoint and size of the online  redo log file.

Log space waits:

This measure indicates the number of times wait has happened to acquire a log buffer on this node.

Number

If the Log Buffer space waits exist, consider increasing the size of the redo log. Also I would check the speed of the disk that the Online Redo Log files are in.