Question on ER :-)
Posted in 2000
Topics: General Discussion
What is Catchup Phase? How can I monitor it? Thanks Sash
Catchup Phase (DDRBLOCK) occurs becuase there is a possibility of a log
wrap. Basically if the current log position gets too close to the
replay position then catchup phase will begin.
As you are probably aware, with ER we keep track of the Replay Position,
the Snoopy Position, and the Current Log position. The Replay Position
is advanced when a transaction is ACKed from the various target servers
or when the transaction is spooled into the stable storage for the TRG
send queue. You can monitor these positions by using onstat -g ddr. If
the Current Log position advances too far ahead of the replay position,
then we start spooling to disk. If it even advances further, then we go
into catchup phase. During catchup phase the only thing that will run
is the spooling of data to disk. The point that this occurs is based on
LTXEHWM.
The most important guidelines for this is prevention. We strongly
recommend the following guidelines.
1) Make each log file large enough so that you do not switch more than
once an hour.
2) Try to place about 30% between LTXHWM and LTXEHWM.
3) Try to plan on about 24 hours worth of log space
4) Make all of your log files about the same size
Additionally it is probably not a good idea to make the total
CDR_QUEMEMSIZE too large. If it is larger than 1/4 of your total
logical log size, then it might be difficult to spool enough to avoid
catchup phase because the stable storage is logged as well.
With 7.31/9.2 we rarely see catchup phase if the guidelines are
followed. Also there is a configuration parameter CDR_LOGDELTA which
defaults to 30. This can be used to reduce the queue memory size so
that if spooling should occur it will not cause catchup phase to occur.
Sanjit Chakraborty wrote:
> What is Catchup Phase? How can I monitor it?
>
> Thanks
> Sash