# # This test creates 2x3 nodes galera cluster. # # A(1) <-> B(2) <-> C(3) {Galera cluster 1} # | {Circular Async replication} # D(4) <-> E(5) <-> F(6) {Galera cluster 2} # --source include/big_test.inc --source include/galera_cluster.inc --source include/have_innodb.inc --connect node_5, 127.0.0.1, root, , test, $NODE_MYPORT_5 --connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4 --connection node_4 --replace_result $NODE_MYPORT_1 NODE_MYPORT_1 --eval CHANGE MASTER TO master_host='127.0.0.1', master_user='root', master_port=$NODE_MYPORT_1, master_use_gtid=current_pos; START SLAVE; --source include/wait_for_slave_to_start.inc # # CREATE TABLE & INSERT # --connection node_1 CREATE TABLE t1(c1 INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INTEGER); INSERT INTO t1(c2) VALUES(1); --connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 --connection node_3 SELECT COUNT(*) = 1 FROM t1; --connection node_1 --source include/save_master_gtid.inc --connection node_4 --source include/sync_with_master_gtid.inc SELECT COUNT(*) = 1 FROM t1; --connect node_6, 127.0.0.1, root, , test, $NODE_MYPORT_6 --connection node_6 SELECT COUNT(*) = 1 FROM t1; # # ALTER TABLE # --connection node_2 ALTER TABLE t1 ADD COLUMN t3 INTEGER; --echo Node 2 column number AFTER ALTER SELECT COUNT(*) = 3 FROM information_schema.columns WHERE table_name ='t1'; --connection node_3 --echo Node 3 column number AFTER ALTER SELECT COUNT(*) = 3 FROM information_schema.columns WHERE table_name ='t1'; --connection node_1 --source include/save_master_gtid.inc --connection node_4 --source include/sync_with_master_gtid.inc --echo Node 4 column number AFTER ALTER SELECT COUNT(*) = 3 FROM information_schema.columns WHERE table_name ='t1'; --connection node_6 --echo Node 6 column number AFTER ALTER SELECT COUNT(*) = 3 FROM information_schema.columns WHERE table_name ='t1'; # # OPTIMIZE TABLE # --connection node_2 --let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'` OPTIMIZE TABLE t1; --connection node_1 --let $wait_condition = SELECT VARIABLE_VALUE >= $wsrep_last_committed_before + 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed' --source include/wait_condition.inc --connection node_4 --let $wait_condition = SELECT VARIABLE_VALUE >= $wsrep_last_committed_before + 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed' --source include/wait_condition.inc --connection node_6 --let $wait_condition = SELECT VARIABLE_VALUE >= $wsrep_last_committed_before + 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed' --source include/wait_condition.inc # # Cleanup # --connection node_1 DROP TABLE t1; --connection node_4 STOP SLAVE; RESET SLAVE; SET GLOBAL wsrep_on = OFF; RESET MASTER; SET GLOBAL wsrep_on = ON; SET GLOBAL GTID_SLAVE_POS=""; --connection node_1 SET GLOBAL wsrep_on = OFF; RESET MASTER; SET GLOBAL wsrep_on = ON; --connection node_2 SET GLOBAL wsrep_on = OFF; RESET MASTER; SET GLOBAL wsrep_on = ON; CALL mtr.add_suppression("Ignoring server id for non bootstrap node"); --connection node_3 SET GLOBAL wsrep_on = OFF; RESET MASTER; SET GLOBAL wsrep_on = ON; CALL mtr.add_suppression("Ignoring server id for non bootstrap node"); --connection node_5 SET GLOBAL wsrep_on = OFF; RESET MASTER; SET GLOBAL wsrep_on = ON; CALL mtr.add_suppression("Ignoring server id for non bootstrap node"); --connection node_6 SET GLOBAL wsrep_on = OFF; RESET MASTER; SET GLOBAL wsrep_on = ON; CALL mtr.add_suppression("Ignoring server id for non bootstrap node");