polardbxengine/mysql-test/suite/clone/t/local_basic.test

120 lines
3.6 KiB
Plaintext

# Test clone command
--source ../include/clone_connection_begin.inc
--let $CLONE_DATADIR = $MYSQL_TMP_DIR/data_new
--disable_query_log
call mtr.add_suppression("\\[Warning\\] .*MY-\\d+.* Non innodb table: .* is not cloned and is empty.");
call mtr.add_suppression("\\[Warning\\] .*MY-\\d+.* Clone removing all user data for provisioning: .*");
--enable_query_log
CREATE TABLE t1(col1 INT PRIMARY KEY, col2 char(64), FULLTEXT KEY fts_index(col2));
INSERT INTO t1 VALUES(10, 'clone row 1');
INSERT INTO t1 VALUES(20, 'clone row 2');
INSERT INTO t1 VALUES(30, 'clone row 3');
SELECT * from t1 ORDER BY col1;
SELECT count(*) FROM mysql.general_log;
SELECT count(*) FROM mysql.slow_log;
# Create MyIsam and CSV tables in common schema
CREATE TABLE t_myisam(col1 INT PRIMARY KEY, col2 char(64)) ENGINE=MyISAM;
INSERT INTO t_myisam VALUES(10, 'myisam not cloned row 1');
SELECT * from t_myisam ORDER BY col1;
CREATE TABLE t_csv(col1 INT NOT NULL, col2 char(64) NOT NULL) ENGINE=CSV;
INSERT INTO t_csv VALUES(10, 'csv not cloned row 1');
SELECT * from t_csv ORDER BY col1;
# Create MyIsam and CSV tables in separate schema
CREATE SCHEMA non_innodb;
CREATE TABLE non_innodb.t_myisam(col1 INT PRIMARY KEY, col2 char(64)) ENGINE=MyISAM;
INSERT INTO non_innodb.t_myisam VALUES(10, 'myisam not cloned row 1');
INSERT INTO non_innodb.t_myisam VALUES(20, 'myisam not cloned row 2');
INSERT INTO non_innodb.t_myisam VALUES(30, 'myisam not cloned row 3');
SELECT * from non_innodb.t_myisam ORDER BY col1;
CREATE TABLE non_innodb.t_csv(col1 INT NOT NULL, col2 char(64) NOT NULL) ENGINE=CSV;
INSERT INTO non_innodb.t_csv VALUES(10, 'csv not cloned row 1');
INSERT INTO non_innodb.t_csv VALUES(20, 'csv not cloned row 2');
INSERT INTO non_innodb.t_csv VALUES(30, 'csv not cloned row 3');
SELECT * from non_innodb.t_csv ORDER BY col1;
# Install Clone Plugin
--replace_result $CLONE_PLUGIN CLONE_PLUGIN
--eval INSTALL PLUGIN clone SONAME '$CLONE_PLUGIN'
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE '%clone%';
# Clone data
--connection clone_conn_1
--source ../include/clone_command.inc
if (!$clone_remote_replace) {
--connection default
# Restart server on cloned data directory
--replace_result $CLONE_DATADIR CLONE_DATADIR
--let restart_parameters="restart: --datadir=$CLONE_DATADIR"
--source include/restart_mysqld.inc
}
# Validate data
SELECT * from t1 ORDER BY col1;
INSERT INTO t1 VALUES(40, 'clone row 4');
SELECT * from t1 ORDER BY col1;
# Check MyISAM and CSV table data
INSERT INTO t_myisam VALUES(40, 'myisam not cloned row 4');
SELECT * from t_myisam ORDER BY col1;
INSERT INTO t_csv VALUES(40, 'csv not cloned row 4');
SELECT * from t_csv ORDER BY col1;
INSERT INTO non_innodb.t_myisam VALUES(40, 'myisam not cloned row 4');
SELECT * from non_innodb.t_myisam ORDER BY col1;
INSERT INTO non_innodb.t_csv VALUES(40, 'csv not cloned row 4');
SELECT * from non_innodb.t_csv ORDER BY col1;
# Validate query log tables;
SELECT count(*) FROM mysql.general_log;
SELECT count(*) FROM mysql.slow_log;
SET GLOBAL general_log = ON;
SET GLOBAL slow_query_log = ON;
#Cleanup
if (!$clone_remote_replace) {
--let restart_parameters="restart:"
--source include/restart_mysqld.inc
}
--connection default
SELECT * from t1 ORDER BY col1;
DROP TABLE t1;
DROP TABLE t_myisam;
DROP TABLE t_csv;
DROP TABLE non_innodb.t_myisam;
DROP TABLE non_innodb.t_csv;
DROP SCHEMA non_innodb;
if (!$clone_remote_replace) {
--force-rmdir $CLONE_DATADIR
}
# Clean recipient by cloning the cleaned up donor
if ($clone_remote_replace) {
--connection clone_conn_1
--source ../include/clone_command.inc
}
--source ../include/clone_connection_end.inc
UNINSTALL PLUGIN clone;