1# The include statement below is a temp one for tests that are yet to
2#be ported to run with InnoDB,
3#but needs to be kept for tests that would need MyISAM in future.
4--source include/force_myisam_default.inc
5
6###############################################################################
7# Description: Checks if DDL and DML statements are correctly logged by
8#              servers and slave servers according to log-slave-updates,
9#              and independent of their settings on the particular MySQLD
10#              acting in the slave role
11#
12# Testing scenario: Cluster 1 replicates to Cluster 2
13#   Key : BL = log-bin, LSU = log-slave-updates
14#
15#                       BL                        BL
16#  cluster 1 [  srv_master  srv_master1  srv_master2  ]
17#                   |----------+------------
18#                   v          v           v
19#  cluster 2 [  srv_slave  srv_slave1  srv_slave2 ]
20#                                  BL     BL LSU
21#
22#  - First replicate via srv_slave and check all nodes' Binlog contents
23#  - Second replicate via srv_slave1 and check all nodes' Binlog contents
24#  - Third replicate via srv_slave2 and check all nodes' Binlog contents
25#
26# Makes use of suite/ndb_rpl/t/ndb_rpl_multi_binlog_update.inc
27# Originally motivated by bug#45756
28###############################################################################
29
30--source include/have_ndb.inc
31--source include/have_log_bin.inc
32
33###############################################################################
34#                           Configuring Environment
35###############################################################################
36
37# setup _no_ replication to start with, but with all 6 servers included
38--let $rpl_topology= none
39--let $rpl_server_count= 6
40--let $rpl_skip_reset_master_and_slave=1
41--source include/rpl_init.inc
42--let $rpl_skip_reset_master_and_slave=0
43
44--echo *** Configuring connections ***
45--let $rpl_connection_name= srv_master
46--let $rpl_server_number= 1
47--source include/rpl_connect.inc
48
49--let $rpl_connection_name= srv_master1
50--let $rpl_server_number= 2
51--source include/rpl_connect.inc
52
53--let $rpl_connection_name= srv_master2
54--let $rpl_server_number= 3
55--source include/rpl_connect.inc
56
57--let $rpl_connection_name= srv_slave
58--let $rpl_server_number= 4
59--source include/rpl_connect.inc
60
61--let $rpl_connection_name= srv_slave1
62--let $rpl_server_number= 5
63--source include/rpl_connect.inc
64
65--let $rpl_connection_name= srv_slave2
66--let $rpl_server_number= 6
67--source include/rpl_connect.inc
68
69--echo *** Waiting for each cluster to startup ***
70
71# Check schema op binlogging enabled between servers on cluster1
72--let $source_server=srv_master
73--let $dest_server=srv_master2
74source suite/ndb_rpl/t/wait_schema_logging.inc;
75
76--let $source_server=srv_master1
77--let $dest_server=srv_master
78source suite/ndb_rpl/t/wait_schema_logging.inc;
79
80--let $source_server=srv_master1
81--let $dest_server=srv_master2
82source suite/ndb_rpl/t/wait_schema_logging.inc;
83
84--let $source_server=srv_master2
85--let $dest_server=srv_master
86source suite/ndb_rpl/t/wait_schema_logging.inc;
87
88# Check schema op binlogging enabled between servers on cluster2
89--let $source_server=srv_slave
90--let $dest_server=srv_slave1
91source suite/ndb_rpl/t/wait_schema_logging.inc;
92
93--let $source_server=srv_slave
94--let $dest_server=srv_slave2
95source suite/ndb_rpl/t/wait_schema_logging.inc;
96
97--let $source_server=srv_slave1
98--let $dest_server=srv_slave2
99source suite/ndb_rpl/t/wait_schema_logging.inc;
100
101--let $source_server=srv_slave2
102--let $dest_server=srv_slave1
103source suite/ndb_rpl/t/wait_schema_logging.inc;
104
105# Reset state of all Binlogging nodes
106--disable_query_log
107connection srv_master;
108--disable_warnings
109RESET MASTER;
110--enable_warnings
111
112connection srv_master2;
113--disable_warnings
114RESET MASTER;
115--enable_warnings
116
117connection srv_slave1;
118--disable_warnings
119RESET MASTER;
120--enable_warnings
121
122connection srv_slave2;
123--disable_warnings
124RESET MASTER;
125--enable_warnings
126--enable_query_log
127
128
129
130--echo *** Configuring replication via Slave ***
131--let $rpl_connection_name= srv_slave
132--source include/rpl_connection.inc
133
134--let $rpl_topology= 1->4
135--source include/rpl_change_topology.inc
136
137--source include/start_slave.inc
138
139# Run the test script
140--let $which_slave=srv_slave
141--source suite/ndb_rpl/t/ndb_rpl_multi_binlog_update.inc
142
143--source include/stop_slave.inc
144
145# Reset state of all Binlogging nodes
146--disable_query_log
147connection srv_master;
148--disable_warnings
149RESET MASTER;
150--enable_warnings
151
152connection srv_master2;
153--disable_warnings
154RESET MASTER;
155--enable_warnings
156
157connection srv_slave1;
158--disable_warnings
159RESET MASTER;
160--enable_warnings
161
162connection srv_slave2;
163--disable_warnings
164RESET MASTER;
165--enable_warnings
166--enable_query_log
167
168
169
170--echo *** Configuring replication via Slave1 ***
171--let $rpl_connection_name= srv_slave1
172--source include/rpl_connection.inc
173
174--let $rpl_topology= 1->4,1->5
175--source include/rpl_change_topology.inc
176
177--source include/start_slave.inc
178
179# Run the test script
180--let $which_slave=srv_slave1
181--source suite/ndb_rpl/t/ndb_rpl_multi_binlog_update.inc
182
183--source include/stop_slave.inc
184
185# Reset state of all Binlogging nodes
186--disable_query_log
187connection srv_master;
188--disable_warnings
189RESET MASTER;
190--enable_warnings
191
192connection srv_master2;
193--disable_warnings
194RESET MASTER;
195--enable_warnings
196
197connection srv_slave1;
198--disable_warnings
199RESET MASTER;
200--enable_warnings
201
202connection srv_slave2;
203--disable_warnings
204RESET MASTER;
205--enable_warnings
206--enable_query_log
207
208
209
210--echo *** Configuring replication via Slave2 ***
211--let $rpl_connection_name= srv_slave2
212--source include/rpl_connection.inc
213
214--let $rpl_topology= 1->4,1->5,1->6
215--source include/rpl_change_topology.inc
216
217--source include/start_slave.inc
218
219# Run the test script
220--let $which_slave=srv_slave2
221--source suite/ndb_rpl/t/ndb_rpl_multi_binlog_update.inc
222
223--source include/stop_slave.inc
224
225
226
227# Cleanup and reset replication settings to how
228# they where when test started
229--let $rpl_topology= none
230--source include/rpl_change_topology.inc
231