In addition to the previous feedbacks, some comments inlined
On 11/1/21 11:57 PM, Morgan, Iain (ARC-TN)[InuTeq, LLC] wrote:
I've got a bit of an unusual situation. I have two test servers that were configured
as a multi-master replication pair. One of the servers needed to be used for some separate
testing, which required disabling the replication. In the meantime, the second server has
been heavily used for regression tests.
Despite the replication agreements having been disabled for months now, the changelog on
the second server continues to grow. It has reached the point where the size has become
troublesome, but I am having trouble alleviating the situation.
The first server get isolated for a long time. If it is very late, it
may last a long time to get it back in sync with the second server. Do
you eventually expect to let replication sync it back or to simply
reinit it from the second server ?
I initially tried compacting the changelog, but that made no difference. I later noticed
using dbscan -f" that entries aren't being timed out from the changelog.
Essentially, it looks like entries are being added to the changelog as we do our periodic
regression tests; but since no replication session started, the changelog does not get
Changelog (S2) will keep the updates that have not been propagated to
S1. So if RA S2->S1 exist, even disabled , changelog will not be trimmed.
To trim the changelog, I suggest to remove the RA S2->S1. The
consequences will be that changelog will be trimmed but you will
eventually need to reinit S2->S1.
I tried enabling the replication agreement while the first server was down, in the hopes
that the cleanup would be triggered. But, that did not work. Is there a way to force the
cleanup? Alternatively, since we don't care about the changes, can the changelog
safely be deleted?
Yes this does not change the status of S1, seen by S2. From S2 pov, S1
is very late and all the updates, that can get it back insync, are kept.
Deletion for the changelog can be done via demoting S2 to consumer
Note, I'd prefer to not delete the replication agreement itself, but I would
appreciate a way to either prevent entries from being added into the changelog for now or
a way to ensure that the entries do not accumulate over time.
I see no possibility for this. If you keep the replication agreement,
trimming will take it into consideration and will not trim. The only way
to prevent updates to no go into the changelog is to disable replication
or demote the replica.