13.3.7.Purging replication logs

Every replication account has an associated sequence which holds replication account level (basically, transaction number). Each subscriber also maintains a sequence where it stores its replication account level.

When subscriber issues a sync request for an account it submits its replication account level so publisher can find a point in time from where it should start to submit replication logs to publisher.

Replication account level can roll over REPL_WRAPAROUND (0x7fffffff) to 1. Old replication logs need to be purged to allow this to work correctly. Procedure repl_purge() purges replication logs for a specified account.

Columns needed to store purger configuration in SYS_REPL_ACCOUNTS table are:

P_MONTH integer (month, nullable)
P_DAY integer (day of month, nullable)
P_TIME time (time, nullable)

If P_TIME is NULL log purger will not be scheduled to run at all. If P_TIME is not NULL there can be the following combinations of P_MONTH, P_DAY and P_WDAY ('*' means NULL value, 'x' means any value):

Table13.2.Purger config settings

month day x purger is run yearly on specified month and day
month * x purger is run yearly on 1st of month
* day x purger is run monthly on specified day of month
* * wday purger is run weekly on specified day of week
* * * purger is run daily

An entry to call purger is inserted (or updated) into SYS_SCHEDULED_EVENT after each modification of purger settings for an account (from Admin UI) or after each successful run of repl_purge() for this account.