summaryrefslogtreecommitdiff
path: root/mysql-test/suite/rpl/t/rpl_domain_id_filter_restart.test
blob: e21700995bbd3017e9fa6e0b334e0ef979a843d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--source include/master-slave.inc

#
# Test for domain-id based filter on slave restart in GTID-mode.
#


--echo # On slave
connection slave;

source include/stop_slave.inc;
let $do_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_before= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
--echo DO_DOMAIN_IDS (BEFORE)     : $do_domain_ids_before
--echo IGNORE_DOMAIN_IDS (BEFORE) : $ignore_domain_ids_before

# Ignore events belonging to "domain_id 1".
CHANGE MASTER TO IGNORE_DOMAIN_IDS=(1), MASTER_USE_GTID=slave_pos;
source include/start_slave.inc;

let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
--echo DO_DOMAIN_IDS (AFTER)     : $do_domain_ids_after
--echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after

--echo # On master
connection master;
SET @@session.gtid_domain_id= 0;
CREATE TABLE t1(i INT);
CREATE TABLE t2(i INT);

INSERT INTO t1 VALUES(1);
SELECT * FROM t1;

SET @@session.gtid_domain_id= 1;
# the following will get filtered out.
INSERT INTO t2 VALUES(1);
SELECT * FROM t2;

sync_slave_with_master;

--echo # On slave
connection slave;
SELECT * FROM t1;
SELECT * FROM t2;

# restart the slave
--let $rpl_server_number= 2
--source include/rpl_restart_server.inc

--echo # On slave
# Replicate_Do_Domain_Ids/Replicate_Ignore_Domain_Ids should reinitialize
# properly on restart.
connection slave;
let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
--echo DO_DOMAIN_IDS (AFTER RESTART)     : $do_domain_ids_after
--echo IGNORE_DOMAIN_IDS (AFTER RESTART) : $ignore_domain_ids_after

# Now, lets clear IGNORE_DOMAIN_IDS.
CHANGE MASTER TO IGNORE_DOMAIN_IDS=();
--source include/start_slave.inc

let $do_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Do_Domain_Ids, 1);
let $ignore_domain_ids_after= query_get_value(SHOW SLAVE STATUS, Replicate_Ignore_Domain_Ids, 1);
--echo DO_DOMAIN_IDS (AFTER)     : $do_domain_ids_after
--echo IGNORE_DOMAIN_IDS (AFTER) : $ignore_domain_ids_after

SELECT * FROM t1;
SELECT * FROM t2;

--echo # On master
connection master;
SET @@session.gtid_domain_id= 0;
DROP TABLE t1, t2;
sync_slave_with_master;

--source include/rpl_end.inc