mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 20:36:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			170 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
connection node_2;
 | 
						|
connection node_1;
 | 
						|
connect replica, 127.0.0.1, root, , test, $NODE_MYPORT_2;
 | 
						|
connect primary, 127.0.0.1, root, , test, $NODE_MYPORT_3;
 | 
						|
create user repl@'%' identified by 'repl';
 | 
						|
grant all on *.* to  repl@'%';
 | 
						|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
 | 
						|
connection node_1;
 | 
						|
connection replica;
 | 
						|
connection primary;
 | 
						|
connection replica;
 | 
						|
START SLAVE;
 | 
						|
connection primary;
 | 
						|
CREATE TABLE t1 (id bigint auto_increment primary key, msg varchar(100)) engine=innodb;
 | 
						|
# Intentionally generate 1k GTID-events
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
connection replica;
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-1004	0-3-1004	0-3-1004
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
connection node_1;
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-1004	0-3-1004	0-3-1004
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
connection replica;
 | 
						|
# Verify that graceful shutdown succeeds in replica.
 | 
						|
# Force SST
 | 
						|
connection node_1;
 | 
						|
# Waiting until replica is not part of cluster anymore
 | 
						|
connection replica;
 | 
						|
# Start replica again
 | 
						|
# Wait until replica is back on cluster
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-1004	0-3-1004	0-3-1004
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
connection node_1;
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-1004	0-3-1004	0-3-1004
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
connection primary;
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
drop table t1;
 | 
						|
connection replica;
 | 
						|
connection node_1;
 | 
						|
connection primary;
 | 
						|
CREATE TABLE t1 (id bigint auto_increment primary key, msg varchar(100)) engine=innodb;
 | 
						|
# Intentionally generate 1k GTID-events
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
connection replica;
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-2006	0-3-2006	0-3-2006
 | 
						|
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
 | 
						|
EXPECT_1000
 | 
						|
1000
 | 
						|
connection node_1;
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-2006	0-3-2006	0-3-2006
 | 
						|
connection replica;
 | 
						|
# Verify that graceful shutdown succeeds in replica.
 | 
						|
# Force SST
 | 
						|
connection node_1;
 | 
						|
# Waiting until replica is not part of cluster anymore
 | 
						|
# Add writes to primary
 | 
						|
connection primary;
 | 
						|
# Intentionally generate 1k GTID-events
 | 
						|
SELECT COUNT(*) AS EXPECT_2000 FROM t1;
 | 
						|
EXPECT_2000
 | 
						|
2000
 | 
						|
connection replica;
 | 
						|
# Start replica again
 | 
						|
# Wait until replica is back on cluster
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-3006	0-3-3006	0-3-3006
 | 
						|
SELECT COUNT(*) AS EXPECT_2000 FROM t1;
 | 
						|
EXPECT_2000
 | 
						|
2000
 | 
						|
connection node_1;
 | 
						|
SELECT COUNT(*) > 0 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT COUNT(*) < 1000 AS EXPECT_1 FROM mysql.gtid_slave_pos;
 | 
						|
EXPECT_1
 | 
						|
1
 | 
						|
SELECT @@gtid_slave_pos,@@gtid_binlog_pos,@@gtid_current_pos;
 | 
						|
@@gtid_slave_pos	@@gtid_binlog_pos	@@gtid_current_pos
 | 
						|
0-3-3006	0-3-3006	0-3-3006
 | 
						|
SELECT COUNT(*) AS EXPECT_2000 FROM t1;
 | 
						|
EXPECT_2000
 | 
						|
2000
 | 
						|
connection primary;
 | 
						|
SELECT COUNT(*) AS EXPECT_2000 FROM t1;
 | 
						|
EXPECT_2000
 | 
						|
2000
 | 
						|
drop table t1;
 | 
						|
connection replica;
 | 
						|
connection node_1;
 | 
						|
connection replica;
 | 
						|
STOP SLAVE;
 | 
						|
RESET SLAVE ALL;
 | 
						|
connection primary;
 | 
						|
RESET MASTER;
 | 
						|
connection node_1;
 | 
						|
disconnect primary;
 | 
						|
disconnect replica;
 | 
						|
disconnect node_2;
 | 
						|
disconnect node_1;
 | 
						|
# End of test
 |