CDC Change Data Capture
Source Node called also primary/master/producer
Target Node called also slave/secondary/consumer
Replication Slots types: rdb_<node>_bdr <master>_publ_<slave>
Publication * pubname: <master>_publ on rdb_db_<master>`
MultiMaster MultiMaster 2 nodes MultiMaster 3 nodes MultiMaster 4 nodes
Queue table walq_<node> structure
Incoming/Replicated queues
Outcoming/Replication queues
TCapt Module to capture change on master database
TAppl Module to apply change on slave database
TMoni Module to monitor replication flow
TCRepSrv TCapture Main Replication Server Program
TC_srvctl.sh TCapture CLI
TWrapperSQL Wrapper program to execute SQL/DML locally not replicated
TSkipXid Skip transactions program to increase/advance replication marker on Slave
H/M/S rispectively Monitor/Master/Slave, type of nodes
RDB db rdb_db__<node> Replication Distribution Database
schema: _rdb_bdr
<node>_bdr_rdb.conf node slave conf
walq_<node> queue storing replicate transactions walq_<node>_offset marker of last transaction consumed by slave walq_<node>_xid list of transactions ids incoming from replicate queues * to avoid recursive transactions (avoid cross CDC between 2 nodes with infinitive loop problem)
xid coming from replicated queues must not be trace and insert in replication queues
software folder structure: * path $RDBBDR * conf * sql * src * bin * run * tmp * ecc..
features:
- CDC stored in queues
- transaction level granularity and commit order
- multimaster replication in architecture of type mesh
- automatic truncation of queues
- table replication filtering
- multimaster 2/3/4 nodes
- conflict detection (not prevention)
- history of replicated transaction stored in log tables
- java configuration script
- monitoring : status of master/slaves/monitor threads
- monitoring : status of replications,positions last updated queues
- Wrapper program to execute sql locally * not captured transaction/not in replication flow
- multithread TCapture Replication Server
- thread TCapt TAppl TMoni able to be started/stopped/disabled/enabled with Repl Serv in execution
- tracing of DDL execution _rdb_bdr.walq__<node>_ddl using event trigger
- helatcheck with upserts to move database/healthcheck
- loglevel granularity