Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
Debian, with MariaDB 10.3.21 pacakge (source : MariaDB)
Description
Hello,
I've seen an inconsistency on the replication filter flow.
Host A :
MariaDB 10.3
Database X, and Y.
Host B : MariaDB 10.3
Database Y.
B is a slave of A, with a replication filter "Replicate_Ignore_DB" set to X.
A have the variable "binlog-format = ROW"
Scenario :
mysql -hA
use X
create table Y.test (a int primary key);
insert into Y.test values (1);
This scenario breaks the replication with error "Table Y.test does not exists".
=> That mean the DDL where ignored, while the insert is played.
Alternatively :
mysql -hA
use Y
create table Y.test (a int primary key);
use X
insert into Y.test values (1);
truncate table Y.test;
insert into Y.test values (1);
will break the replication with "Duplicate key".
Once again, DDL (truncate table) were ignored, while insertions were played on the replication.
In my opinion, it should be more coherent to do the same for DDL and insert/update.
Option 1: Ignore both of them. (will break some sub-obtimal use cases where users are logged on the wrong database);
Option 2: Replicate insert/update as now, but replicate also DDLs.
Best regards,
Edit : passed to minor, workarround possible with a replicate_wild_ignore_table="X.%" instead of "replicate_ignore_db=X"