summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/multi_source/status_vars.test
blob: e76a403db333cc2cfe857bf89efe43e8d143e1de (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#
# Status variables related to a replication connection
#

--source include/not_embedded.inc
--let $rpl_server_count= 0

--connect (slave,127.0.0.1,root,,,$SERVER_MYPORT_3)

call mtr.add_suppression("Connection 'master1' already exists");

# Start replication from the first master

--replace_result $SERVER_MYPORT_1 MYPORT_1
eval change master 'master1' to 
master_port=$SERVER_MYPORT_1, 
master_host='127.0.0.1', 
master_user='root',
master_heartbeat_period = 25;

start slave 'master1';
set default_master_connection = 'master1';
--source include/wait_for_slave_to_start.inc


# Set up a proper 'default' connection to master2

set default_master_connection = '';

--replace_result $SERVER_MYPORT_2 MYPORT_2
eval change master to
master_port=$SERVER_MYPORT_2,
master_host='127.0.0.1',
master_user='root',
master_heartbeat_period=35;

start slave;
--source include/wait_for_slave_to_start.inc

--echo #
--echo # Check how status works for the default connection, anonymous or named
--echo #

--echo # Slave_running and Slave_heartbeat_period should be local for a connection
--echo #

set default_master_connection = '';
show status like 'Slave_running';
show status like 'Slave_heartbeat_period';
stop slave io_thread;
--source include/wait_for_slave_io_to_stop.inc
show status like 'Slave_running';

set default_master_connection = 'master1';
show status like 'Slave_running';
show status like 'Slave_heartbeat_period';

--echo #
--echo # Slave_received_heartbeats should also be local
--echo #

set default_master_connection = '';
stop slave sql_thread;
--source include/wait_for_slave_sql_to_stop.inc
change master to master_heartbeat_period=1;
show status like 'Slave_received_heartbeats';
start slave;
--source include/wait_for_slave_to_start.inc

--let $status_var = Slave_received_heartbeats
--let $status_var_value = 2
# The units are tens of seconds
--let $status_timeout = 30 
--source include/wait_for_status_var.inc
show status like 'Slave_received_heartbeats';
stop slave;
--source include/wait_for_slave_to_stop.inc

set default_master_connection = 'master1';
show status like 'Slave_received_heartbeats';

stop slave;
--source include/wait_for_slave_to_stop.inc
change master to master_heartbeat_period=2;
start slave;
--source include/wait_for_slave_to_start.inc

--let $status_var = Slave_received_heartbeats
--let $status_var_value = 1
--let $status_timeout = 30
--source include/wait_for_status_var.inc
show status like 'Slave_received_heartbeats';


--echo #
--echo # Slave_open_temp_tables should be global
--echo #

set default_master_connection = '';
start slave;
--source include/wait_for_slave_to_start.inc

--connect (master1,127.0.0.1,root,,,$SERVER_MYPORT_1)
set binlog_format = statement;
create temporary table tmp1 (i int) engine=MyISAM;
--save_master_pos

--connection slave
--sync_with_master 0,'master1'
show status like 'Slave_open_temp_tables';

set default_master_connection = 'master1';
show status like 'Slave_open_temp_tables';

--connect (master2,127.0.0.1,root,,,$SERVER_MYPORT_2)
set binlog_format = statement;
create temporary table tmp1 (i int) engine=MyISAM;
--save_master_pos

--connection slave
--sync_with_master 0,''
show status like 'Slave_open_temp_tables';

set default_master_connection = '';
show status like 'Slave_open_temp_tables';


# Cleanup

--source include/reset_master_slave.inc
--disconnect slave
--connection master1
--source include/reset_master_slave.inc
--disconnect master1
--connection master2
--source include/reset_master_slave.inc
--disconnect master2