mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
273 lines
11 KiB
Text
273 lines
11 KiB
Text
#
|
|
# Test that various FLUSH commands are replicated. Whenever possible, check the slave for the effects.
|
|
#
|
|
|
|
--source include/galera_cluster.inc
|
|
--source include/have_innodb.inc
|
|
--source include/have_perfschema.inc
|
|
--source include/have_query_cache.inc
|
|
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1, t2;
|
|
--enable_warnings
|
|
#
|
|
# The following FLUSH statements should be replicated
|
|
#
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH DES_KEY_FILE;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH HOSTS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
--connection node_1
|
|
SET GLOBAL wsrep_replicate_myisam = TRUE;
|
|
INSERT INTO mysql.user VALUES('localhost','user1',PASSWORD('pass1'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'mysql_native_password','','N','N','',0);
|
|
FLUSH PRIVILEGES;
|
|
--connect node_2a, 127.0.0.1, user1, pass1, test, $NODE_MYPORT_2
|
|
--connection node_1
|
|
DELETE FROM mysql.user WHERE user = 'user1';
|
|
SET GLOBAL wsrep_replicate_myisam = FALSE;
|
|
FLUSH PRIVILEGES;
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH QUERY CACHE;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH STATUS;
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH USER_RESOURCES;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH TABLES;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
--connection node_1
|
|
CREATE TABLE t2 (f1 INTEGER);
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH TABLES t2;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH ERROR LOGS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH SLOW LOGS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH GENERAL LOGS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH ENGINE LOGS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH RELAY LOGS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
--connection node_1
|
|
SET @userstat_old= @@userstat;
|
|
SET GLOBAL userstat=ON;
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH CLIENT_STATISTICS;
|
|
FLUSH INDEX_STATISTICS;
|
|
FLUSH TABLE_STATISTICS;
|
|
FLUSH USER_STATISTICS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 4 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_1
|
|
SET @old_thread_statistics= @@global.thread_statistics;
|
|
SET GLOBAL thread_statistics= ON;
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH THREAD_STATISTICS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
FLUSH CHANGED_PAGE_BITMAPS;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
#
|
|
# The following statements should not be replicated: FLUSH LOGS, FLUSH TABLES WITH LOCKS
|
|
#
|
|
|
|
|
|
--connection node_1
|
|
CREATE TABLE t1 (f1 INTEGER);
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
|
|
--connection node_1
|
|
FLUSH LOGS;
|
|
FLUSH TABLES WITH READ LOCK;
|
|
UNLOCK TABLES;
|
|
FLUSH TABLES t1 WITH READ LOCK;
|
|
UNLOCK TABLES;
|
|
FLUSH TABLES t1 FOR EXPORT;
|
|
UNLOCK TABLES;
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
## Test LOCK TABLES with FLUSH TABLES
|
|
## LOCK TABLES t1 write followed by flush tables t1 should succeed due to MDL upgrade.
|
|
## LOCK tables t2 read followed by flush tables t2 should fail with ER_TABLE_NOT_LOCKED_FOR_WRITE
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
LOCK TABLES t1 WRITE;
|
|
FLUSH TABLES t1;
|
|
UNLOCK TABLES;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
--connection node_2
|
|
--let $wsrep_last_committed_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--connection node_1
|
|
LOCK TABLES t1 READ;
|
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
|
FLUSH TABLES t1;
|
|
UNLOCK TABLES;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
--connection node_1
|
|
FLUSH TABLES t1;
|
|
--connection node_2
|
|
--let $wsrep_last_committed_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'wsrep_last_committed'`
|
|
--disable_query_log
|
|
--eval SELECT $wsrep_last_committed_after = $wsrep_last_committed_before + 1 AS wsrep_last_committed_diff;
|
|
--enable_query_log
|
|
|
|
|
|
|
|
--connection node_1
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
SET GLOBAL userstat= @userstat_old;
|
|
SET GLOBAL thread_statistics= @old_thread_statistics;
|