Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MariaDB GTID replication – {ignore|do}_domain_ids not been considered when updating GTID Slave Pos
- Let's consider a 3 master setup where each server has 2 replication channels, one to each of the other 2 servers where these replication channels where setup with:
- SETTING: Server_id: 1 | IP: 10.0.3.223
- STOP ALL SLAVES;
- CHANGE MASTER "S1_R2" TO
- master_host = "10.0.3.136",
- master_user = "replicator",
- master_use_gtid = slave_pos,
- master_password = "password",
- do_domain_ids = (2)
- CHANGE MASTER "S1_R3" TO
- master_host = "10.0.3.171",
- master_user = "replicator",
- master_use_gtid = slave_pos,
- master_password = "password",
- do_domain_ids = (3)
- START ALL SLAVES;
- SETTING: Server_id: 2 | IP: 10.0.3.136
- STOP ALL SLAVES;
- CHANGE MASTER "S2_R1" TO
- master_host = "10.0.3.223",
- master_user = "replicator",
- master_use_gtid = slave_pos,
- master_password = "password",
- do_domain_ids = (1)
- CHANGE MASTER "S2_R3" TO
- master_host = "10.0.3.171",
- master_user = "replicator",
- master_use_gtid = slave_pos,
- master_password = "password",
- do_domain_ids = (3)
- START ALL SLAVES;
- SETTING: Server_id: 3 | IP: 10.0.3.171
- STOP ALL SLAVES;
- CHANGE MASTER "S3_R1" TO
- master_host = "10.0.3.223",
- master_user = "replicator",
- master_use_gtid = slave_pos,
- master_password = "password",
- do_domain_ids = (1)
- CHANGE MASTER "S3_R2" TO
- master_host = "10.0.3.136",
- master_user = "replicator",
- master_use_gtid = slave_pos,
- master_password = "password",
- do_domain_ids = (2)
- START ALL SLAVES;
- After initially starting all replications:
- 1. Stop replication channel S1_R2;
- 2. Take note of GTID Slave Pos for domain ID 2 on server 1;
- 3. Issue some INSERT |UPDATE|DELETE on server 2;
- 4. Take note of GTID Slave Pos for domain ID 2 on server 1;
- Observe that the GTID from steps 2 and 4 are diferent. Replication channel S1_R3 updated the GTID Slave Pos of domain ID 2 despite having been configured to just track domain ID 3!
- When replication channel S1_R2 is brought back online the changes that occured on step 3 will be lost on server 1.
- The solution for this issue seems to be to make each replication channel thread to update only the GTID Slave Pos for the domain IDs it should track as defined by {ignore|do}_domain_ids.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement