mirror of
https://github.com/MariaDB/server.git
synced 2025-09-11 05:52:26 +03:00
93 lines
3.1 KiB
Plaintext
93 lines
3.1 KiB
Plaintext
#
|
|
# Test that mysqldump SST is possible after a vote without a cluster restart
|
|
#
|
|
|
|
--source include/galera_cluster.inc
|
|
--source suite/galera/include/galera_sst_set_mysqldump.inc
|
|
|
|
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
|
|
|
|
# Save original auto_increment_offset values.
|
|
--let $node_1=node_1
|
|
--let $node_2=node_2
|
|
--let $node_3=node_3
|
|
--source ../galera/include/auto_increment_offset_save.inc
|
|
|
|
--connection node_1
|
|
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
|
|
|
|
# Introduce inconsistency on node #2
|
|
|
|
--connection node_2
|
|
--let $wsrep_cluster_address_node2 = `SELECT @@wsrep_cluster_address`
|
|
SET SESSION wsrep_on=OFF;
|
|
ALTER TABLE t1 ADD PRIMARY KEY (f1);
|
|
SET SESSION wsrep_on=ON;
|
|
|
|
# Run DDL that will fail on nodes #1 and #3 but succeed on node #2
|
|
|
|
--connection node_1
|
|
--error ER_CANT_DROP_FIELD_OR_KEY
|
|
ALTER TABLE t1 LOCK=SHARED, DROP PRIMARY KEY;
|
|
|
|
# Nodes #1 and #3 remain in the cluster
|
|
|
|
--connection node_1
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
|
--source include/wait_condition.inc
|
|
|
|
SELECT VARIABLE_VALUE AS expect_Primary FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
|
|
|
--connection node_3
|
|
SELECT VARIABLE_VALUE AS expect_2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
|
SELECT VARIABLE_VALUE AS expect_Primary FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
|
|
|
# Node #2 is kicked out
|
|
|
|
--connection node_2
|
|
SET SESSION wsrep_on=OFF;
|
|
SELECT VARIABLE_VALUE AS expect_Disconnected FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
|
SET SESSION wsrep_on=ON;
|
|
|
|
# Restore cluster
|
|
|
|
--disable_query_log
|
|
--eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_node2'
|
|
--enable_query_log
|
|
--enable_reconnect
|
|
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
|
--source include/wait_condition.inc
|
|
|
|
SELECT VARIABLE_VALUE AS expect_3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
|
SELECT VARIABLE_VALUE AS expect_Primary FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
|
|
|
# Confirm that the table is now identical throughout
|
|
|
|
--connection node_1
|
|
SHOW CREATE TABLE t1;
|
|
|
|
--connection node_2
|
|
SHOW CREATE TABLE t1;
|
|
|
|
--connection node_3
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
CALL mtr.add_suppression("Slave SQL: Error 'Can't DROP 'PRIMARY'; check that column/key exists'");
|
|
|
|
--connection node_1
|
|
--source suite/galera/include/galera_sst_restore.inc
|
|
|
|
--connection node_2
|
|
# restart node so we don't fail on WSREP_START_POSITION internal check
|
|
--source include/restart_mysqld.inc
|
|
--source include/wait_until_connected_again.inc
|
|
CALL mtr.add_suppression("WSREP: .+ is inconsistent with group");
|
|
|
|
--connection node_1
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
|
--source include/wait_condition.inc
|
|
|
|
# Restore original auto_increment_offset values.
|
|
--source ../galera/include/auto_increment_offset_restore.inc
|