|
| 1 | +# |
| 2 | +# Test Galera as a slave to a MySQL master |
| 3 | +# |
| 4 | +# The galera/galera_2node_slave.cnf describes the setup of the nodes |
| 5 | +# |
| 6 | +# mariadb master (node_3) ----async replication--->galera node_2 <---galera replication-->node_1 |
| 7 | +# |
| 8 | + |
| 9 | +--source include/have_innodb.inc |
| 10 | +--source include/galera_cluster.inc |
| 11 | +--source include/have_sequence.inc |
| 12 | + |
| 13 | +# As node #3 is not a Galera node, and galera_cluster.inc does not open connetion to it |
| 14 | +# we open the node_3 connection here |
| 15 | +--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 |
| 16 | + |
| 17 | +--connection node_2 |
| 18 | +--disable_query_log |
| 19 | +--eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_SSL_VERIFY_SERVER_CERT=0, MASTER_PORT=$NODE_MYPORT_3; |
| 20 | +--enable_query_log |
| 21 | +START SLAVE; |
| 22 | + |
| 23 | +--connection node_3 |
| 24 | +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
| 25 | +CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
| 26 | +CREATE TABLE t3 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
| 27 | + |
| 28 | +--connection node_2 |
| 29 | +--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; |
| 30 | +--source include/wait_condition.inc |
| 31 | +--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't2'; |
| 32 | +--source include/wait_condition.inc |
| 33 | +--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't3'; |
| 34 | +--source include/wait_condition.inc |
| 35 | + |
| 36 | +--connection node_1 |
| 37 | +--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; |
| 38 | +--source include/wait_condition.inc |
| 39 | +--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't2'; |
| 40 | +--source include/wait_condition.inc |
| 41 | +--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't3'; |
| 42 | +--source include/wait_condition.inc |
| 43 | + |
| 44 | +--echo # |
| 45 | +--echo # Set up replication filtering this should work for slave |
| 46 | +--echo # |
| 47 | +--connection node_2 |
| 48 | +STOP SLAVE; |
| 49 | +SET GLOBAL replicate_ignore_table='test.t2,mysql.gtid_slave_pos'; |
| 50 | +SELECT @@replicate_ignore_table; |
| 51 | +--disable_query_log |
| 52 | +--eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_SSL_VERIFY_SERVER_CERT=0, MASTER_PORT=$NODE_MYPORT_3; |
| 53 | +--enable_query_log |
| 54 | +START SLAVE; |
| 55 | + |
| 56 | +--echo # |
| 57 | +--echo # Set up replication filtering, this should not have any effect |
| 58 | +--echo # |
| 59 | +--connection node_1 |
| 60 | +SET GLOBAL replicate_ignore_table='test.t2,mysql.gtid_slave_pos'; |
| 61 | +SELECT @@replicate_ignore_table; |
| 62 | + |
| 63 | +--echo # |
| 64 | +--echo # Insert data to MariaDB master, inserts to t2 should not be on slave |
| 65 | +--echo # |
| 66 | +--connection node_3 |
| 67 | +INSERT INTO t1 SELECT * FROM seq_1_to_100; |
| 68 | +INSERT INTO t2 SELECT * FROM seq_1_to_100; |
| 69 | +INSERT INTO t3 SELECT * FROM seq_1_to_100; |
| 70 | +SELECT COUNT(*) FROM t1; |
| 71 | +SELECT COUNT(*) FROM t2; |
| 72 | +SELECT COUNT(*) FROM t3; |
| 73 | + |
| 74 | +--connection node_2 |
| 75 | +--let $wait_condition = SELECT COUNT(*) = 100 FROM t1; |
| 76 | +--source include/wait_condition.inc |
| 77 | +--let $wait_condition = SELECT COUNT(*) = 100 FROM t3; |
| 78 | +--source include/wait_condition.inc |
| 79 | + |
| 80 | +SELECT COUNT(*) AS EXPECT_100 FROM t1; |
| 81 | +SELECT COUNT(*) AS EXPECT_0 FROM t2; |
| 82 | +SELECT COUNT(*) AS EXPECT_100 FROM t3; |
| 83 | + |
| 84 | +--echo # |
| 85 | +--echo # Insert data to Galera node_2, all these should be replicated |
| 86 | +--echo # |
| 87 | +INSERT INTO t1 SELECT * FROM seq_101_to_200; |
| 88 | +INSERT INTO t2 SELECT * FROM seq_101_to_200; |
| 89 | +INSERT INTO t3 SELECT * FROM seq_101_to_200; |
| 90 | +SELECT COUNT(*) AS EXPECT_200 FROM t1; |
| 91 | +SELECT COUNT(*) AS EXPECT_100 FROM t2; |
| 92 | +SELECT COUNT(*) AS EXPECT_200 FROM t3; |
| 93 | + |
| 94 | +--connection node_1 |
| 95 | +--let $wait_condition = SELECT COUNT(*) = 200 FROM t3; |
| 96 | +--source include/wait_condition.inc |
| 97 | +SELECT COUNT(*) AS EXPECT_200 FROM t1; |
| 98 | +SELECT COUNT(*) AS EXPECT_100 FROM t2; |
| 99 | +SELECT COUNT(*) AS EXPECT_200 FROM t3; |
| 100 | + |
| 101 | +--echo # |
| 102 | +--echo # Insert data to Galera node_1, all these should be replicated |
| 103 | +--echo # |
| 104 | +INSERT INTO t1 SELECT * FROM seq_201_to_300; |
| 105 | +INSERT INTO t2 SELECT * FROM seq_201_to_300; |
| 106 | +INSERT INTO t3 SELECT * FROM seq_201_to_300; |
| 107 | + |
| 108 | +SELECT COUNT(*) AS EXPECT_300 FROM t1; |
| 109 | +SELECT COUNT(*) AS EXPECT_200 FROM t2; |
| 110 | +SELECT COUNT(*) AS EXPECT_300 FROM t3; |
| 111 | + |
| 112 | +--connection node_3 |
| 113 | +SELECT @@GLOBAL.gtid_slave_pos; |
| 114 | + |
| 115 | +--connection node_1 |
| 116 | +--let $wait_condition = SELECT COUNT(*) = 300 FROM t3; |
| 117 | +--source include/wait_condition.inc |
| 118 | +SELECT COUNT(*) AS EXPECT_300 FROM t1; |
| 119 | +SELECT COUNT(*) AS EXPECT_200 FROM t2; |
| 120 | +SELECT COUNT(*) AS EXPECT_300 FROM t3; |
| 121 | +SELECT @@GLOBAL.gtid_slave_pos; |
| 122 | + |
| 123 | +--connection node_2 |
| 124 | +--let $wait_condition = SELECT COUNT(*) = 300 FROM t3; |
| 125 | +--source include/wait_condition.inc |
| 126 | +SELECT COUNT(*) AS EXPECT_300 FROM t1; |
| 127 | +SELECT COUNT(*) AS EXPECT_200 FROM t2; |
| 128 | +SELECT COUNT(*) AS EXPECT_300 FROM t3; |
| 129 | +SELECT @@GLOBAL.gtid_slave_pos; |
| 130 | + |
| 131 | +--connection node_2 |
| 132 | +STOP SLAVE; |
| 133 | +RESET SLAVE ALL; |
| 134 | +SET GLOBAL replicate_ignore_table=''; |
| 135 | + |
| 136 | +--connection node_1 |
| 137 | +SET GLOBAL replicate_ignore_table=''; |
| 138 | + |
| 139 | +--connection node_3 |
| 140 | +DROP TABLE t1,t2,t3; |
| 141 | + |
| 142 | +--connection node_2 |
| 143 | +DROP TABLE t1,t2,t3; |
| 144 | + |
| 145 | +--connection node_3 |
| 146 | +RESET MASTER; |
0 commit comments