--source include/have_multi_ndb.inc --echo MySQL Server 1 # Create logfile group CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'lg1_undofile1.dat' INITIAL_SIZE 1M UNDO_BUFFER_SIZE = 1M ENGINE=NDB; # Create tablespaces using the logfile group CREATE TABLESPACE ts1 ADD DATAFILE 'ts1_datafile1.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 2M ENGINE=NDB; CREATE TABLESPACE ts2 ADD DATAFILE 'ts2_datafile1.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 2M ENGINE=NDB; CREATE TABLESPACE ts3 ADD DATAFILE 'ts3_datafile1.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 2M ENGINE=NDB; connection server2; --echo MySQL Server 2 # Time to run some ALTER queries. This tests the ALTER ADD UNDO/DATAFILE # functionality and also proves that the CREATE queries have been # successfully distributed ALTER LOGFILE GROUP lg1 ADD UNDOFILE 'lg1_undofile2.dat' ENGINE=NDB; ALTER LOGFILE GROUP lg1 ADD UNDOFILE 'lg1_undofile3.dat' ENGINE=NDB; ALTER TABLESPACE ts1 ADD DATAFILE 'ts1_datafile2.dat'; ALTER TABLESPACE ts2 ADD DATAFILE 'ts2_datafile2.dat'; ALTER TABLESPACE ts3 ADD DATAFILE 'ts3_datafile2.dat'; connection server1; --echo MySQL Server 1 # Check if the previous ALTER's have been distributed. This is done by repeating # the previous queries which should now fail --error ER_ALTER_FILEGROUP_FAILED ALTER LOGFILE GROUP lg1 ADD UNDOFILE 'lg1_undofile2.dat' ENGINE=NDB; SHOW WARNINGS; --error ER_ALTER_FILEGROUP_FAILED ALTER LOGFILE GROUP lg1 ADD UNDOFILE 'lg1_undofile3.dat' ENGINE=NDB; SHOW WARNINGS; --error ER_ALTER_FILEGROUP_FAILED ALTER TABLESPACE ts1 ADD DATAFILE 'ts1_datafile2.dat'; SHOW WARNINGS; --error ER_ALTER_FILEGROUP_FAILED ALTER TABLESPACE ts2 ADD DATAFILE 'ts2_datafile2.dat'; SHOW WARNINGS; --error ER_ALTER_FILEGROUP_FAILED ALTER TABLESPACE ts3 ADD DATAFILE 'ts3_datafile2.dat'; SHOW WARNINGS; # More ALTER queries, this time with the DROP DATAFILE variant ALTER TABLESPACE ts1 DROP DATAFILE 'ts1_datafile1.dat'; ALTER TABLESPACE ts2 DROP DATAFILE 'ts2_datafile1.dat'; ALTER TABLESPACE ts3 DROP DATAFILE 'ts3_datafile1.dat'; connection server2; --echo MySQL Server 2 # Check if the latest ALTER queries have been distributed --error ER_MISSING_TABLESPACE_FILE ALTER TABLESPACE ts1 DROP DATAFILE 'ts1_datafile1.dat'; --error ER_MISSING_TABLESPACE_FILE ALTER TABLESPACE ts2 DROP DATAFILE 'ts2_datafile1.dat'; --error ER_MISSING_TABLESPACE_FILE ALTER TABLESPACE ts3 DROP DATAFILE 'ts3_datafile1.dat'; # And finally time to drop everything ALTER TABLESPACE ts1 DROP DATAFILE 'ts1_datafile2.dat'; DROP TABLESPACE ts1; ALTER TABLESPACE ts2 DROP DATAFILE 'ts2_datafile2.dat'; DROP TABLESPACE ts2; ALTER TABLESPACE ts3 DROP DATAFILE 'ts3_datafile2.dat'; DROP TABLESPACE ts3; DROP LOGFILE GROUP lg1 ENGINE=NDB; connection server1; --echo MySQL Server 1 # Finish up by confirming that the DROP queries have been distributed --error ER_TABLESPACE_MISSING_WITH_NAME DROP TABLESPACE ts1; --error ER_TABLESPACE_MISSING_WITH_NAME DROP TABLESPACE ts2; --error ER_TABLESPACE_MISSING_WITH_NAME DROP TABLESPACE ts3; --error ER_DROP_FILEGROUP_FAILED DROP LOGFILE GROUP lg1 ENGINE=NDB; SHOW WARNINGS; # # Bug#29389168 DISK DATA TABLE UNUSABLE ON PARTICIPANT MYSQLD AFTER ALTER TABLESPACE # # Create logfile group CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'lg1_undofile.dat' INITIAL_SIZE 1M UNDO_BUFFER_SIZE = 1M ENGINE NDB; # Create tablespace using the logfile group CREATE TABLESPACE ts1 ADD DATAFILE 'ts1_datafile.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 16M ENGINE NDB; # Create disk data tables CREATE TABLE t1 ( a int PRIMARY KEY, b varchar(255) ) ENGINE NDB TABLESPACE ts1 STORAGE DISK; INSERT INTO t1 VALUES(1,'Omar Comin'); CREATE TABLE t2 ( a int PRIMARY KEY, b varchar(255) ) ENGINE NDB TABLESPACE ts1 STORAGE DISK; INSERT INTO t2 VALUES(2,'Harry - yer a wizard'); --connection server2 --echo MySQL Server 2 ALTER TABLESPACE ts1 ADD DATAFILE 'ts1_datafile2.dat'; --connection server1 --echo MySQL Server 1 SELECT * FROM t1; SELECT * FROM t2; DROP TABLE t1,t2; ALTER TABLESPACE ts1 DROP DATAFILE 'ts1_datafile.dat'; ALTER TABLESPACE ts1 DROP DATAFILE 'ts1_datafile2.dat'; DROP TABLESPACE ts1; DROP LOGFILE GROUP lg1 ENGINE NDB;