Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-10754 wsrep_sst_rsync does not support innodb_data_home_dir
If innodb_data_home_dir path specified in the configuration file then rsync IST/SST will fail because the wsrep_sst_rsync.sh script does not read this parameter from the configuration file and then tries to find the data files in the default directory. To fix this error, we need to add reading of the innodb_data_home_dir configuration parameter to the rsync-related SST script.
- Loading branch information
Showing
4 changed files
with
324 additions
and
1 deletion.
There are no files selected for viewing
288 changes: 288 additions & 0 deletions
288
mysql-test/suite/galera/r/galera_sst_rsync_data_dir.result
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,288 @@ | ||
connection node_1; | ||
connection node_2; | ||
Performing State Transfer on a server that has been shut down cleanly and restarted | ||
connection node_1; | ||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
COMMIT; | ||
connection node_2; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
COMMIT; | ||
Shutting down server ... | ||
connection node_1; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
COMMIT; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
connection node_2; | ||
Starting server ... | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
COMMIT; | ||
connection node_1; | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
COMMIT; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
COMMIT; | ||
connection node_1a_galera_st_shutdown_slave; | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
ROLLBACK; | ||
SELECT COUNT(*) = 35 FROM t1; | ||
COUNT(*) = 35 | ||
1 | ||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; | ||
COUNT(*) = 0 | ||
1 | ||
COMMIT; | ||
SET AUTOCOMMIT=ON; | ||
connection node_1; | ||
SELECT COUNT(*) = 35 FROM t1; | ||
COUNT(*) = 35 | ||
1 | ||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; | ||
COUNT(*) = 0 | ||
1 | ||
DROP TABLE t1; | ||
COMMIT; | ||
SET AUTOCOMMIT=ON; | ||
Performing State Transfer on a server that starts from a clean var directory | ||
This is accomplished by shutting down node #2 and removing its var directory before restarting it | ||
connection node_1; | ||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
COMMIT; | ||
connection node_2; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
COMMIT; | ||
Shutting down server ... | ||
connection node_1; | ||
Cleaning var directory ... | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
COMMIT; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
connect node_1a_galera_st_clean_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
connection node_2; | ||
Starting server ... | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
COMMIT; | ||
connection node_1; | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
COMMIT; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
COMMIT; | ||
connection node_1a_galera_st_clean_slave; | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
ROLLBACK; | ||
SELECT COUNT(*) = 35 FROM t1; | ||
COUNT(*) = 35 | ||
1 | ||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; | ||
COUNT(*) = 0 | ||
1 | ||
COMMIT; | ||
SET AUTOCOMMIT=ON; | ||
connection node_1; | ||
SELECT COUNT(*) = 35 FROM t1; | ||
COUNT(*) = 35 | ||
1 | ||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; | ||
COUNT(*) = 0 | ||
1 | ||
DROP TABLE t1; | ||
COMMIT; | ||
SET AUTOCOMMIT=ON; | ||
Performing State Transfer on a server that has been killed and restarted | ||
connection node_1; | ||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
INSERT INTO t1 VALUES ('node1_committed_before'); | ||
COMMIT; | ||
connection node_2; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
INSERT INTO t1 VALUES ('node2_committed_before'); | ||
COMMIT; | ||
Killing server ... | ||
connection node_1; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
INSERT INTO t1 VALUES ('node1_committed_during'); | ||
COMMIT; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
connection node_2; | ||
Performing --wsrep-recover ... | ||
Starting server ... | ||
Using --wsrep-start-position when starting mysqld ... | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
INSERT INTO t1 VALUES ('node2_committed_after'); | ||
COMMIT; | ||
connection node_1; | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); | ||
COMMIT; | ||
SET AUTOCOMMIT=OFF; | ||
START TRANSACTION; | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
INSERT INTO t1 VALUES ('node1_committed_after'); | ||
COMMIT; | ||
connection node_1a_galera_st_kill_slave; | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); | ||
ROLLBACK; | ||
SELECT COUNT(*) = 35 FROM t1; | ||
COUNT(*) = 35 | ||
1 | ||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; | ||
COUNT(*) = 0 | ||
1 | ||
COMMIT; | ||
SET AUTOCOMMIT=ON; | ||
connection node_1; | ||
SELECT COUNT(*) = 35 FROM t1; | ||
COUNT(*) = 35 | ||
1 | ||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; | ||
COUNT(*) = 0 | ||
1 | ||
DROP TABLE t1; | ||
COMMIT; | ||
SET AUTOCOMMIT=ON; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
!include ../galera_2nodes.cnf | ||
|
||
[mysqld] | ||
wsrep_sst_method=rsync | ||
innodb_data_home_dir=@ENV.MYSQL_TMP_DIR/rsync_test | ||
|
||
[mysqld.1] | ||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=1;pc.ignore_sb=true' | ||
|
||
[mysqld.2] | ||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=1;pc.ignore_sb=true' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--source include/big_test.inc | ||
--source include/galera_cluster.inc | ||
|
||
--let $node_1=node_1 | ||
--let $node_2=node_2 | ||
--source include/auto_increment_offset_save.inc | ||
|
||
--source suite/galera/include/galera_st_shutdown_slave.inc | ||
--source suite/galera/include/galera_st_clean_slave.inc | ||
|
||
--source suite/galera/include/galera_st_kill_slave.inc | ||
--source suite/galera/include/galera_st_kill_slave_ddl.inc | ||
--source include/auto_increment_offset_restore.inc | ||
|
||
# cleanup temporary database files: | ||
--remove_files_wildcard $MYSQL_TMP_DIR/rsync_test * | ||
--rmdir $MYSQL_TMP_DIR/rsync_test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters