1--source include/master-slave.inc
2
3#
4# Test for domain-id based filter on slave restart in GTID-mode.
5#
6
7
8connection slave;
9
10source include/stop_slave.inc;
11let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
12let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
13--echo DO_DOMAIN_IDS (BEFORE)     : $do_domain_ids_before
14--echo IGNORE_DOMAIN_IDS (BEFORE) : $ignore_domain_ids_before
15
16# Ignore events belonging to "domain_id 1".
17CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
18source include/start_slave.inc;
19
20let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
21let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
22--echo DO_DOMAIN_IDS (AFTER)     : $do_domain_ids_after
23--echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after
24
25connection master;
26SET @@session.gtid_domain_id= 0;
27CREATE TABLE t1(i INT);
28CREATE TABLE t2(i INT);
29
30INSERT INTO t1 VALUES(1);
31SELECT * FROM t1;
32
33SET @@session.gtid_domain_id= 1;
34# the following will get filtered out.
35INSERT INTO t2 VALUES(1);
36SELECT * FROM t2;
37
38sync_slave_with_master;
39
40connection slave;
41SELECT * FROM t1;
42SELECT * FROM t2;
43
44# restart the slave
45--let $rpl_server_number= 2
46--source include/rpl_restart_server.inc
47
48# Replicate_Do_Domain_Ids/Replicate_Ignore_Domain_Ids should reinitialize
49# properly on restart.
50connection slave;
51let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
52let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
53--echo DO_DOMAIN_IDS (AFTER RESTART)     : $do_domain_ids_after
54--echo IGNORE_DOMAIN_IDS (AFTER RESTART) : $ignore_domain_ids_after
55
56# Now, lets clear IGNORE_DOMAIN_IDS.
57CHANGE MASTER TO IGNORE_DOMAIN_IDS=();
58--source include/start_slave.inc
59
60let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
61let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
62--echo DO_DOMAIN_IDS (AFTER)     : $do_domain_ids_after
63--echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after
64
65SELECT * FROM t1;
66SELECT * FROM t2;
67
68connection master;
69SET @@session.gtid_domain_id= 0;
70DROP TABLE t1, t2;
71sync_slave_with_master;
72
73--source include/rpl_end.inc
74