mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
321 lines
12 KiB
Text
321 lines
12 KiB
Text
|
########################################
|
||
|
# Author: JBM
|
||
|
# Date: 2006-01-24
|
||
|
# Purpose: Test CDD backup and restore
|
||
|
########################################
|
||
|
|
||
|
-- source include/have_ndb.inc
|
||
|
|
||
|
--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;
|
||
|
|
||
|
--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "start backup" >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
DROP TABLE test.t1;
|
||
|
|
||
|
# there is no neat way to find the backupid, this is a hack to find it...
|
||
|
--exec $NDB_TOOLS_DIR/ndb_select_all --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -d sys --delimiter=',' SYSTAB_0 | grep 520093696 > var/tmp.dat
|
||
|
|
||
|
CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
|
||
|
DELETE FROM test.backup_info;
|
||
|
|
||
|
LOAD DATA INFILE '../../var/tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
|
||
|
--replace_column 1 <the_backup_id>
|
||
|
SELECT @the_backup_id:=backup_id FROM test.backup_info;
|
||
|
let the_backup_id=`select @the_backup_id`;
|
||
|
DROP TABLE test.backup_info;
|
||
|
|
||
|
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;
|
||
|
|
||
|
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -p 8 -b $the_backup_id -n 1 -m -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -p 8 -b $the_backup_id -n 2 -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
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 TEXT 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
|
||
|
|
||
|
--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "start backup" >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
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;
|
||
|
|
||
|
# there is no neat way to find the backupid, this is a hack to find it...
|
||
|
--exec $NDB_TOOLS_DIR/ndb_select_all --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -d sys --delimiter=',' SYSTAB_0 | grep 520093696 > var/tmp.dat
|
||
|
|
||
|
CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP; DELETE FROM test.backup_info;
|
||
|
|
||
|
LOAD DATA INFILE '../../var/tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
|
||
|
--replace_column 1 <the_backup_id>
|
||
|
SELECT @the_backup_id:=backup_id FROM test.backup_info;
|
||
|
let the_backup_id=`select @the_backup_id`;
|
||
|
|
||
|
DROP TABLE test.backup_info;
|
||
|
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;
|
||
|
|
||
|
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -p 8 -b $the_backup_id -n 1 -m -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -p 8 -b $the_backup_id -n 2 -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
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 TEXT 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 TEXT 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 TEXT 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 TEXT 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;
|
||
|
|
||
|
--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "start backup" >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
# there is no neat way to find the backupid, this is a hack to find it...
|
||
|
--exec $NDB_TOOLS_DIR/ndb_select_all --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -d sys --delimiter=',' SYSTAB_0 | grep 520093696 > var/tmp.dat
|
||
|
|
||
|
CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP;
|
||
|
DELETE FROM test.backup_info;
|
||
|
|
||
|
LOAD DATA INFILE '../../var/tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
|
||
|
--replace_column 1 <the_backup_id>
|
||
|
SELECT @the_backup_id:=backup_id FROM test.backup_info;
|
||
|
let the_backup_id=`select @the_backup_id`;
|
||
|
DROP TABLE test.backup_info;
|
||
|
|
||
|
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;
|
||
|
|
||
|
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -p 8 -b $the_backup_id -n 1 -m -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -p 8 -b $the_backup_id -n 2 -r --print --print_meta $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT
|
||
|
|
||
|
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
|
||
|
|
||
|
|