Controlling Archive Lag
You can force all enabled redo log threads to switch their current logs at regular time intervals. In a primary/standby database configuration, changes are made available to the standby database by archiving redo logs at the primary site and then shipping them to the standby database. The changes that are being applied by the standby database can lag behind the changes that are occurring on the primary database, because the standby database must wait for the changes in the primary database redo log to be archived (into the archived redo log) and then shipped to it. To limit this lag, you can set theARCHIVE_LAG_TARGET
initialization parameter. Setting this parameter lets you specify in seconds how long that lag can be.Setting the ARCHIVE_LAG_TARGET Initialization Parameter
When you set theARCHIVE_LAG_TARGET
initialization parameter, you cause the database to examine the current redo log of the instance periodically. If the following conditions are met, then the instance will switch the log:
The current log was created prior to n seconds ago, and the estimated archival time for the current log is m seconds (proportional to the number of redo blocks used in the current log), where n + m exceeds the value of theARCHIVE_LAG_TARGET
initialization parameter. The current log contains redo records.In an Oracle Real Application Clusters environment, the instance also causes other threads to switch and archive their logs if they are falling behind. This can be particularly useful when one instance in the cluster is more idle than the other instances (as when you are running a 2-node primary/secondary configuration of Oracle Real Application Clusters).TheARCHIVE_LAG_TARGET
initialization parameter specifies the target of how many seconds of redo the standby could lose in the event of a primary shutdown or failure if the Oracle Data Guard environment is not configured in a no-data-loss mode. It also provides an upper limit of how long (in seconds) the current log of the primary database can span. Because the estimated archival time is also considered, this is not the exact log switch time.The following initialization parameter setting sets the log switch interval to 30 minutes (a typical value).ARCHIVE_LAG_TARGET = 1800A value of 0 disables this time-based log switching functionality. This is the default setting.You can set theARCHIVE_LAG_TARGET
initialization parameter even if there is no standby database. For example, theARCHIVE_LAG_TARGET
parameter can be set specifically to force logs to be switched and archived.ARCHIVE_LAG_TARGET
is a dynamic parameter and can be set with theALTER SYSTEM SET
statement.Caution:TheARCHIVE_LAG_TARGET
parameter must be set to the same value in all instances of an Oracle Real Application Clusters environment. Failing to do so results in unpredictable behavior.Factors Affecting the Setting of ARCHIVE_LAG_TARGET
Consider the following factors when determining if you want to set theARCHIVE_LAG_TARGET
parameter and in determining the value for this parameter.
Overhead of switching (as well as archiving) logs How frequently normal log switches occur as a result of log full conditions How much redo loss is tolerated in the standby databaseSettingARCHIVE_LAG_TARGET
may not be very useful if natural log switches already occur more frequently than the interval specified. However, in the case of irregularities of redo generation speed, the interval does provide an upper limit for the time range each current log covers.If theARCHIVE_LAG_TARGET
initialization parameter is set to a very low value, there can be a negative impact on performance. This can force frequent log switches. Set the parameter to a reasonable value so as not to degrade the performance of the primary database.
Monday, July 23, 2012
Standby Database: Forcefully log switch in every 30 min automatically
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment