The sequence is that the inactive transactions in the log will not be
cleared until they are read from the transaction log by the log reader agent
and then a transaction log back up is done. I have no idea how frequently
you backup the log right now, but it will have to be at the same frequency
as the log reader agent and be done after the log reader agent has done its
work. Most people backup their transaction log for point in time recovery.
Your point in time recovery goes from whatever you have now to at least 1
hour. If you are using replication for your dr solution your exposure to
data loss is well over 1 hour now.
However if you don't care about your exposure to data loss, this is
acceptable to you. Again it all depends on what your goal is.
At the start of this post you say "I observe and see that the Log Reader
Agent which runs on the Publisher
server consume more and more resources. For example, when I monitor the
server using Activity Monitor, I see that Log Reader Job' s CPU value:
416551
and IO value: 450093. I see that these values are continually increasing. Is
this a normal behaviour? If not what am I supposed to do?"
I have mentioned that these counters are cumulative. For example right now
the CPU value for the log reader agent is 416551, one second later it might
be 416600. These are not counters I pay any attention to.
How you done any analysis to determine that this is causing performance
degradation on your SQL Server and is the primary bottleneck?
It seems that your goal is to lessen the impact of the log reader agent and
I don't really understand why. The log reader agent is almost never a
bottleneck. In most replication systems the dba focuses on the distribtuion
agent as that is where the latency problems typically lie. The log reader
agent is almost always up to date.
In most replication topologies DBA focus on latency or throughput. Having
the log reader agent run every hour will not help latency at all. If you
don't care about latency (how up to date your subscriber is), this may work
for you - and I am sure there are use cases out there which make this a
goal.
However I am just confused about your goals, and how we are meeting them by
having the log reader agent running each hour.
Post by JoePost by Hilary CotterBTW - I don't really advise scheduling the log reader agent. You will not be
able to backup the transaction log completely until the log reader has run.
What do you exactly? Do you mean the transaction log will not be truncated?
Which is understandable as there will be transactions which are waiting to be
replicated. Is this the only reason you do not recommend changing the
configuration of the Log Reader?
P.S.
Transaction Log backups are taken every 15 minutes.
Thanks
Joe
Post by Hilary CotterBTW - I don't really advise scheduling the log reader agent. You will not be
able to backup the transaction log completely until the log reader has run.
I think you will find your tlog sizes increasing significantly.