Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Won't Fix
-
10.1.8, 10.1.10
Description
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.
Attachments
Issue Links
- relates to
-
MDEV-9033 Incorrect statements binlogged on slave with do_domain_ids=(...)
- Closed
-
MDEV-9108 "GTID not in master's binlog" error with {ignore|do}_domain_ids
- Open
-
MDEV-20720 Galera: Replicate MariaDB GTID to other nodes in the cluster
- Closed