######################################## # Author: JBM # Date: 2006-01-24 # Purpose: Test CDD backup and restore ######################################## -- source include/have_ndb.inc # range, list and hash partitioning in ndb requires new_mode --disable_query_log set new=on; --enable_query_log --disable_warnings DROP TABLE IF EXISTS test.t1; DROP TABLE IF EXISTS test.t2; DROP TABLE IF EXISTS test.t3; DROP TABLE IF EXISTS test.t4; DROP TABLE IF EXISTS test.t5; DROP TABLE IF EXISTS test.t6; --enable_warnings ############ Test 1 Simple DD backup and restore ############# -- echo **** Test 1 Simple DD backup and restore **** CREATE LOGFILE GROUP log_group1 ADD UNDOFILE './log_group1/undofile.dat' INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=NDB; CREATE TABLESPACE table_space1 ADD DATAFILE './table_space1/datafile.dat' USE LOGFILE GROUP log_group1 INITIAL_SIZE 12M ENGINE NDB; CREATE TABLE test.t1 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 CHAR(50) NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL) TABLESPACE table_space1 STORAGE DISK ENGINE=NDB; let $j= 500; --disable_query_log while ($j) { eval INSERT INTO test.t1 VALUES (NULL, "Sweden", $j, b'1'); dec $j; } --enable_query_log SELECT COUNT(*) FROM test.t1; SELECT pk1, c2, c3, hex(c4) FROM test.t1 ORDER BY pk1 LIMIT 5; -- source include/ndb_backup.inc DROP TABLE test.t1; ALTER TABLESPACE table_space1 DROP DATAFILE './table_space1/datafile.dat' ENGINE = NDB; DROP TABLESPACE table_space1 ENGINE = NDB; DROP LOGFILE GROUP log_group1 ENGINE =NDB; -- source include/ndb_restore_master.inc SELECT COUNT(*) FROM test.t1; SELECT pk1, c2, c3, hex(c4) FROM test.t1 ORDER BY pk1 LIMIT 5; ################# Mixed Cluster Test ############################ -- echo **** Test 2 Mixed Cluster Test backup and restore **** CREATE TABLE test.t2 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 VARCHAR(200) NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL)ENGINE=NDB; let $j= 500; --disable_query_log while ($j) { eval INSERT INTO test.t2 VALUES (NULL, "Sweden, Texas", $j, b'0'); dec $j; } --enable_query_log CREATE TABLE test.t3 (c1 int not null auto_increment, data LONGBLOB, PRIMARY KEY(c1))TABLESPACE table_space1 STORAGE DISK ENGINE=NDB; CREATE TABLE test.t4 (c1 int not null auto_increment, data LONGBLOB, PRIMARY KEY(c1))ENGINE=NDB; let $j= 50; --disable_query_log while ($j) { INSERT INTO test.t3 VALUES (NULL, repeat('a',1*1024)); INSERT INTO test.t3 VALUES (NULL, repeat('b',16*1024)); INSERT INTO test.t4 VALUES (NULL, repeat('a',1*1024)); INSERT INTO test.t4 VALUES (NULL, repeat('b',16*1024)); dec $j; } --enable_query_log SELECT COUNT(*) FROM test.t1; SELECT pk1, c2, c3, hex(c4) FROM test.t1 ORDER BY pk1 LIMIT 5; SELECT COUNT(*) FROM test.t2; SELECT pk1, c2, c3, hex(c4) FROM test.t2 ORDER BY pk1 LIMIT 5; SELECT COUNT(*) FROM test.t3; SELECT LENGTH(data) FROM test.t3 WHERE c1 = 1; SELECT LENGTH(data) FROM test.t3 WHERE c1 = 2; SELECT COUNT(*) FROM test.t4; SELECT LENGTH(data) FROM test.t4 WHERE c1 = 1; SELECT LENGTH(data) FROM test.t4 WHERE c1 = 2; -- source include/ndb_backup.inc DROP TABLE test.t1; DROP TABLE test.t2; DROP TABLE test.t3; DROP TABLE test.t4; ALTER TABLESPACE table_space1 DROP DATAFILE './table_space1/datafile.dat' ENGINE = NDB; DROP TABLESPACE table_space1 ENGINE = NDB; DROP LOGFILE GROUP log_group1 ENGINE =NDB; -- source include/ndb_restore_master.inc SELECT COUNT(*) FROM test.t1; SELECT pk1, c2, c3, hex(c4) FROM test.t1 ORDER BY pk1 LIMIT 5; SELECT COUNT(*) FROM test.t2; SELECT pk1, c2, c3, hex(c4) FROM test.t2 ORDER BY pk1 LIMIT 5; SELECT COUNT(*) FROM test.t3; SELECT LENGTH(data) FROM test.t3 WHERE c1 = 1; SELECT LENGTH(data) FROM test.t3 WHERE c1 = 2; SELECT COUNT(*) FROM test.t4; SELECT LENGTH(data) FROM test.t4 WHERE c1 = 1; SELECT LENGTH(data) FROM test.t4 WHERE c1 = 2; DROP TABLE test.t1; DROP TABLE test.t2; DROP TABLE test.t3; DROP TABLE test.t4; ###################### Adding partition ################################# -- echo **** Test 3 Adding partition Test backup and restore **** CREATE TABLESPACE table_space2 ADD DATAFILE './table_space2/datafile.dat' USE LOGFILE GROUP log_group1 INITIAL_SIZE 12M ENGINE NDB; CREATE TABLE test.t1 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT, c2 VARCHAR(150) NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL, PRIMARY KEY(pk1,c3))TABLESPACE table_space1 STORAGE DISK ENGINE=NDB PARTITION BY HASH(c3) PARTITIONS 4; CREATE TABLE test.t4 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT, c2 VARCHAR(180) NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL, PRIMARY KEY(pk1,c3))ENGINE=NDB PARTITION BY HASH(c3) PARTITIONS 2; CREATE TABLE test.t2 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT, c2 TEXT NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL, PRIMARY KEY(pk1,c3))TABLESPACE table_space2 STORAGE DISK ENGINE=NDB PARTITION BY KEY(c3) (PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB); CREATE TABLE test.t5 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT, c2 TEXT NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL, PRIMARY KEY(pk1,c3))ENGINE=NDB PARTITION BY KEY(pk1) (PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB); CREATE TABLE test.t3 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT, c2 VARCHAR(202) NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL, PRIMARY KEY(pk1,c3))TABLESPACE table_space2 STORAGE DISK ENGINE=NDB PARTITION BY RANGE (c3) PARTITIONS 3 (PARTITION x1 VALUES LESS THAN (105), PARTITION x2 VALUES LESS THAN (333), PARTITION x3 VALUES LESS THAN (720)); CREATE TABLE test.t6 (pk1 MEDIUMINT NOT NULL AUTO_INCREMENT, c2 VARCHAR(220) NOT NULL, c3 INT NOT NULL, c4 BIT NOT NULL, PRIMARY KEY(pk1,c3))ENGINE=NDB PARTITION BY RANGE (pk1) PARTITIONS 2 (PARTITION x1 VALUES LESS THAN (333), PARTITION x2 VALUES LESS THAN (720)); SHOW CREATE TABLE test.t1; SHOW CREATE TABLE test.t2; SHOW CREATE TABLE test.t3; SHOW CREATE TABLE test.t4; SHOW CREATE TABLE test.t5; SHOW CREATE TABLE test.t6; SELECT * FROM information_schema.partitions WHERE table_name= 't1'; SELECT * FROM information_schema.partitions WHERE table_name= 't2'; SELECT * FROM information_schema.partitions WHERE table_name= 't3'; SELECT * FROM information_schema.partitions WHERE table_name= 't4'; SELECT * FROM information_schema.partitions WHERE table_name= 't5'; SELECT * FROM information_schema.partitions WHERE table_name= 't6'; let $j= 500; --disable_query_log while ($j) { eval INSERT INTO test.t1 VALUES (NULL, "Sweden, Texas", $j, b'0'); eval INSERT INTO test.t4 VALUES (NULL, "Sweden, Texas", $j, b'0'); dec $j; eval INSERT INTO test.t2 VALUES (NULL, "Sweden, Texas, ITALY, Kyle, JO, JBM,TU", $j, b'1'); eval INSERT INTO test.t5 VALUES (NULL, "Sweden, Texas, ITALY, Kyle, JO, JBM,TU", $j, b'1'); dec $j; eval INSERT INTO test.t3 VALUES (NULL, "TEXASTEXASTEXASTEXASTEXASTEXASTEXASTEXASTEXASTEXAS, ITALY, Kyle, JO, JBM,TU", $j, b'1'); eval INSERT INTO test.t6 VALUES (NULL, "TEXASTEXASTEXASTEXASTEXASTEXASTEXASTEXASTEXASTEXAS, ITALY, Kyle, JO, JBM,TU", $j, b'1'); } --enable_query_log SELECT COUNT(*) FROM test.t1; SELECT pk1, c2, c3, hex(c4) FROM test.t1 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t2; SELECT pk1, c2, c3, hex(c4) FROM test.t2 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t3; SELECT pk1, c2, c3, hex(c4) FROM test.t3 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t4; SELECT pk1, c2, c3, hex(c4) FROM test.t4 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t5; SELECT pk1, c2, c3, hex(c4) FROM test.t5 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t6; SELECT pk1, c2, c3, hex(c4) FROM test.t6 ORDER BY c3 LIMIT 5; -- source include/ndb_backup.inc DROP TABLE test.t1; DROP TABLE test.t2; DROP TABLE test.t3; DROP TABLE test.t4; DROP TABLE test.t5; DROP TABLE test.t6; ALTER TABLESPACE table_space1 DROP DATAFILE './table_space1/datafile.dat' ENGINE = NDB; ALTER TABLESPACE table_space2 DROP DATAFILE './table_space2/datafile.dat' ENGINE = NDB; DROP TABLESPACE table_space1 ENGINE = NDB; DROP TABLESPACE table_space2 ENGINE = NDB; DROP LOGFILE GROUP log_group1 ENGINE =NDB; -- source include/ndb_restore_master.inc SHOW CREATE TABLE test.t1; SHOW CREATE TABLE test.t2; SHOW CREATE TABLE test.t3; SHOW CREATE TABLE test.t4; SHOW CREATE TABLE test.t5; SHOW CREATE TABLE test.t6; SELECT * FROM information_schema.partitions WHERE table_name= 't1'; SELECT * FROM information_schema.partitions WHERE table_name= 't2'; SELECT * FROM information_schema.partitions WHERE table_name= 't3'; SELECT * FROM information_schema.partitions WHERE table_name= 't4'; SELECT * FROM information_schema.partitions WHERE table_name= 't5'; SELECT * FROM information_schema.partitions WHERE table_name= 't6'; SELECT COUNT(*) FROM test.t1; SELECT pk1, c2, c3, hex(c4) FROM test.t1 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t2; SELECT pk1, c2, c3, hex(c4) FROM test.t2 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t3; SELECT pk1, c2, c3, hex(c4) FROM test.t3 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t4; SELECT pk1, c2, c3, hex(c4) FROM test.t4 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t5; SELECT pk1, c2, c3, hex(c4) FROM test.t5 ORDER BY c3 LIMIT 5; SELECT COUNT(*) FROM test.t6; SELECT pk1, c2, c3, hex(c4) FROM test.t6 ORDER BY c3 LIMIT 5; # Cleanup DROP TABLE test.t1; DROP TABLE test.t2; DROP TABLE test.t3; DROP TABLE test.t4; DROP TABLE test.t5; DROP TABLE test.t6; ALTER TABLESPACE table_space1 DROP DATAFILE './table_space1/datafile.dat' ENGINE=NDB; ALTER TABLESPACE table_space2 DROP DATAFILE './table_space2/datafile.dat' ENGINE=NDB; DROP TABLESPACE table_space1 ENGINE = NDB; DROP TABLESPACE table_space2 ENGINE = NDB; DROP LOGFILE GROUP log_group1 ENGINE = NDB; #End 5.1 test case