1include/rpl_init.inc [topology=1->2]
2connection server_1;
3ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
4CREATE FUNCTION extract_gtid(d VARCHAR(100), s VARCHAR(100))
5RETURNS VARCHAR(100) DETERMINISTIC
6BEGIN
7SET s= CONCAT(",", s, ",");
8SET s= SUBSTR(s FROM LOCATE(CONCAT(",", d, "-"), s) + 1);
9SET s= SUBSTR(s FROM 1 FOR LOCATE(",", s) - 1);
10RETURN s;
11END|
12connection server_2;
13include/stop_slave.inc
14include/start_slave.inc
15START SLAVE UNTIL master_gtid_pos = "";
16ERROR HY000: Slave is already running
17include/stop_slave_io.inc
18START SLAVE UNTIL master_gtid_pos = "";
19ERROR HY000: Slave is already running
20START SLAVE IO_THREAD;
21include/wait_for_slave_io_to_start.inc
22include/stop_slave_sql.inc
23START SLAVE UNTIL master_gtid_pos = "";
24ERROR HY000: Slave is already running
25include/stop_slave_io.inc
26START SLAVE UNTIL master_gtid_pos = "";
27ERROR HY000: START SLAVE UNTIL master_gtid_pos requires that slave is using GTID
28CHANGE MASTER TO master_use_gtid=current_pos;
29connection server_1;
30CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
31INSERT INTO t1 VALUES(1);
32INSERT INTO t1 VALUES(2);
33connection server_2;
34START SLAVE UNTIL master_gtid_pos = "0-1-100,1-1-100,2-2-200,1-3-100,4-4-400";
35ERROR HY000: GTID 1-3-100 and 1-1-100 conflict (duplicate domain id 1)
36START SLAVE UNTIL master_log_file = "master-bin.000001", master_log_pos = 4, master_gtid_pos = "";
37ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'master_gtid_pos = ""' at line 1
38START SLAVE IO_THREAD UNTIL master_gtid_pos = "";
39ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
40START SLAVE SQL_THREAD UNTIL master_gtid_pos = "";
41ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
42START SLAVE UNTIL master_gtid_pos = '0-1-4';
43include/wait_for_slave_to_stop.inc
44SELECT * FROM t1;
45a
461
47include/start_slave.inc
48connection server_1;
49connection server_2;
50SELECT * FROM t1 ORDER BY a;
51a
521
532
54include/stop_slave.inc
55START SLAVE UNTIL master_gtid_pos = "1-10-100,2-20-200,0-1-300";
56include/wait_for_slave_to_start.inc
57Using_Gtid = 'Current_Pos'
58Until_Condition = 'Gtid'
59connection server_1;
60INSERT INTO t1 VALUES (3);
61DELETE FROM t1 WHERE a=3;
62connection server_2;
63include/stop_slave.inc
64*** Test UNTIL condition in an earlier binlog than the start GTID. ***
65connection server_2;
66connection server_1;
67SET gtid_domain_id = 1;
68INSERT INTO t1 VALUES (3);
69SET gtid_domain_id = 2;
70CREATE TABLE t2 (a INT);
71INSERT INTO t2 VALUES (3);
72FLUSH LOGS;
73SET gtid_domain_id = 1;
74INSERT INTO t1 VALUES (4);
75SET gtid_domain_id = 2;
76INSERT INTO t2 VALUES (4);
77FLUSH LOGS;
78SET gtid_domain_id = 1;
79INSERT INTO t1 VALUES (5);
80SET gtid_domain_id = 2;
81INSERT INTO t2 VALUES (5);
82FLUSH LOGS;
83SET gtid_domain_id = 1;
84INSERT INTO t1 VALUES (6);
85SET gtid_domain_id = 2;
86INSERT INTO t2 VALUES (6);
87SET gtid_domain_id = 0;
88show binary logs;
89Log_name	File_size
90master-bin.000001	#
91master-bin.000002	#
92master-bin.000003	#
93master-bin.000004	#
94connection server_2;
95START SLAVE UNTIL master_gtid_pos='1-1-3,2-1-4';
96include/wait_for_slave_to_stop.inc
97SELECT * FROM t1 ORDER BY a;
98a
991
1002
1013
1024
1035
104SELECT * FROM t2 ORDER BY a;
105a
1063
1074
1085
109START SLAVE UNTIL master_gtid_pos='1-1-4,2-1-2';
110include/wait_for_slave_to_stop.inc
111SELECT * FROM t1 ORDER BY a;
112a
1131
1142
1153
1164
1175
1186
119SELECT * FROM t2 ORDER BY a;
120a
1213
1224
1235
124START SLAVE UNTIL master_gtid_pos='1-1-3';
125include/wait_for_slave_to_stop.inc
126SELECT * FROM t1 ORDER BY a;
127a
1281
1292
1303
1314
1325
1336
134SELECT * FROM t2 ORDER BY a;
135a
1363
1374
1385
139include/start_slave.inc
140SELECT * FROM t1 ORDER BY a;
141a
1421
1432
1443
1454
1465
1476
148SELECT * FROM t2 ORDER BY a;
149a
1503
1514
1525
1536
154*** Test when the UNTIL position is right at the end of the binlog file prior to the starting position ***
155connection server_2;
156include/stop_slave.inc
157connection server_1;
158FLUSH LOGS;
159SET gtid_domain_id = 1;
160INSERT INTO t1 VALUES (7);
161SET gtid_domain_id = 0;
162connection server_2;
163START SLAVE UNTIL master_gtid_pos='1-1-4';
164include/wait_for_slave_to_stop.inc
165SELECT * FROM t1 ORDER BY a;
166a
1671
1682
1693
1704
1715
1726
173include/start_slave.inc
174SELECT * FROM t1 ORDER BY a;
175a
1761
1772
1783
1794
1805
1816
1827
183*** Test when UNTIL condition is after a stand-alone event (not a transaction). ***
184connection server_2;
185include/stop_slave.inc
186connection server_1;
187CREATE TABLE t3 (a INT);
188DROP TABLE t3;
189connection server_2;
190START SLAVE UNTIL master_gtid_pos='UNTIL_CONDITION';
191include/wait_for_slave_to_stop.inc
192SHOW CREATE TABLE t3;
193Table	Create Table
194t3	CREATE TABLE `t3` (
195  `a` int(11) DEFAULT NULL
196) ENGINE=MyISAM DEFAULT CHARSET=latin1
197include/start_slave.inc
198*** Test UNTIL condition that has not yet been logged. ***
199connection server_2;
200include/stop_slave.inc
201RESET SLAVE ALL;
202RESET MASTER;
203SET GLOBAL gtid_slave_pos='';
204connection server_1;
205RESET MASTER;
206INSERT INTO t1 VALUES (10);
207INSERT INTO t1 VALUES (11);
208INSERT INTO t1 VALUES (12);
209DELETE FROM t1 WHERE a >= 10;
210RESET MASTER;
211INSERT INTO t1 VALUES (10);
212connection server_2;
213CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
214master_user = "root", master_use_gtid = current_pos;
215START SLAVE UNTIL master_gtid_pos = '0-1-2';
216include/wait_for_slave_to_start.inc
217connection server_1;
218INSERT INTO t1 VALUES (11);
219INSERT INTO t1 VALUES (12);
220connection server_2;
221include/wait_for_slave_to_stop.inc
222SELECT * FROM t1 ORDER BY a;
223a
2241
2252
2263
2274
2285
2296
2307
23110
23211
233include/start_slave.inc
234SELECT * FROM t1 ORDER BY a;
235a
2361
2372
2383
2394
2405
2416
2427
24310
24411
24512
246connection server_1;
247DROP TABLE t1;
248DROP TABLE t2;
249DROP FUNCTION extract_gtid;
250include/rpl_end.inc
251