summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Goryavsky <julius.goryavsky@mariadb.com>2021-04-20 04:56:49 +0200
committerJulius Goryavsky <julius.goryavsky@mariadb.com>2021-04-22 06:06:03 +0200
commit88327d6b82439a79c0cf92361cea9c5fc576ccde (patch)
tree2b84f10a4313e6bdf1dd9493a752f0219aa63e78
parent93fdf4af76a9ee9d92da5a5394b7d4857d41a320 (diff)
downloadmariadb-git-bb-10.2-MDEV-24962-v2.tar.gz
MDEV-24962: Galera SST innobackupex-move ignores Environment settingsbb-10.2-MDEV-24962-v2
After switching to the new mariabackup interface (instead of the outdated innobackupex interface, which is supported for compatibility), we need to explicitly pass a path to the datadir directory as a parameter, since in the new interface the value of this option is not automatically set in such a way that it always matches the SST/IST logic. This commit adds passing this option as an explicit parameter to mariabackup. This commit also removed unnecessary options that are not used and not supported by mariabackup.
-rw-r--r--mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,debug.rdiff13
-rw-r--r--mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result2
-rw-r--r--mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf2
-rw-r--r--mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test2
-rw-r--r--scripts/wsrep_sst_common.sh36
-rw-r--r--scripts/wsrep_sst_mariabackup.sh143
-rw-r--r--scripts/wsrep_sst_rsync.sh1
-rw-r--r--scripts/wsrep_sst_xtrabackup-v2.sh4
-rw-r--r--scripts/wsrep_sst_xtrabackup.sh4
9 files changed, 102 insertions, 105 deletions
diff --git a/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,debug.rdiff b/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,debug.rdiff
index fa1b67e7ef3..55f1150c930 100644
--- a/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,debug.rdiff
+++ b/mysql-test/suite/galera/r/galera_ist_innodb_flush_logs,debug.rdiff
@@ -1,11 +1,12 @@
--- r/galera_ist_innodb_flush_logs.result 2018-09-05 10:34:36.192439933 +0300
+++ r/galera_ist_innodb_flush_logs.reject 2018-09-17 10:20:06.039150838 +0300
-@@ -86,3 +86,100 @@
+@@ -86,3 +86,111 @@
DROP TABLE t1;
COMMIT;
SET AUTOCOMMIT=ON;
+Performing State Transfer on a server that has been killed and restarted
+while a DDL was in progress on it
++connection node_1;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
@@ -14,6 +15,7 @@
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
++connection node_2;
+START TRANSACTION;
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
@@ -22,9 +24,12 @@
+INSERT INTO t1 VALUES ('node2_committed_before');
+COMMIT;
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
++connection node_1;
+ALTER TABLE t1 ADD COLUMN f2 INTEGER;
++connection node_2;
+SET wsrep_sync_wait = 0;
+Killing server ...
++connection node_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
@@ -39,6 +44,7 @@
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
@@ -46,7 +52,9 @@
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++connection node_2;
+Performing --wsrep-recover ...
++connection node_2;
+Starting server ...
+Using --wsrep-start-position when starting mysqld ...
+SET AUTOCOMMIT=OFF;
@@ -57,6 +65,7 @@
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+COMMIT;
++connection node_1;
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
@@ -71,6 +80,7 @@
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+COMMIT;
++connection node_1a_galera_st_kill_slave_ddl;
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
@@ -88,6 +98,7 @@
+1
+COMMIT;
+SET AUTOCOMMIT=ON;
++connection node_1;
+SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
+COUNT(*) = 2
+1
diff --git a/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result b/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result
index 8a7c02ab1b6..80a28d349ba 100644
--- a/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result
+++ b/mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result
@@ -21,7 +21,7 @@ INSERT INTO t1 VALUES ('node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
Unloading wsrep provider ...
-SET GLOBAL wsrep_provider = 'none';
+SET GLOBAL wsrep_cluster_address = '';
connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
diff --git a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf b/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf
index b91c897e66e..a93c291b47c 100644
--- a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf
+++ b/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.cnf
@@ -1,7 +1,7 @@
!include ../galera_2nodes.cnf
[mysqld]
-wsrep_sst_method=xtrabackup-v2
+wsrep_sst_method=mariabackup
wsrep_sst_auth=root:
innodb_safe_truncate=OFF
diff --git a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test b/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
index 839383ebfc1..fd362a26840 100644
--- a/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
+++ b/mysql-test/suite/galera/t/galera_ist_innodb_flush_logs.test
@@ -7,7 +7,7 @@
--source include/big_test.inc
--source include/galera_cluster.inc
--source include/have_innodb.inc
---source include/have_xtrabackup.inc
+--source include/have_mariabackup.inc
--source suite/galera/include/galera_st_kill_slave.inc
--source suite/galera/include/galera_st_kill_slave_ddl.inc
diff --git a/scripts/wsrep_sst_common.sh b/scripts/wsrep_sst_common.sh
index 443cb26ab64..c4151344e15 100644
--- a/scripts/wsrep_sst_common.sh
+++ b/scripts/wsrep_sst_common.sh
@@ -215,6 +215,7 @@ case "$1" in
if [ "$value" == "$1" ]; then
value=""
fi
+ skip_mysqld_arg=0
case "$option" in
'--innodb-data-home-dir')
if [ -z "$INNODB_DATA_HOME_DIR_ARG" ]; then
@@ -236,11 +237,19 @@ case "$1" in
readonly LOG_BIN_ARG="$value"
fi
;;
+ '--datadir'|'-h')
+ if [ -z "$WSREP_SST_OPT_DATA" ]; then
+ readonly WSREP_SST_OPT_DATA="$value"
+ fi
+ skip_mysqld_arg=1
+ ;;
esac
- if [ -z "$original_cmd" ]; then
- original_cmd="$1"
- else
- original_cmd="$original_cmd $1"
+ if [ $skip_mysqld_arg -eq 0 ]; then
+ if [ -z "$original_cmd" ]; then
+ original_cmd="$1"
+ else
+ original_cmd="$original_cmd $1"
+ fi
fi
fi
shift
@@ -279,13 +288,13 @@ CLIENT_DIR="$SCRIPTS_DIR/../client"
if [ -x "$CLIENT_DIR/mysql" ]; then
MYSQL_CLIENT="$CLIENT_DIR/mysql"
else
- MYSQL_CLIENT=$(which mysql)
+ MYSQL_CLIENT="$(command -v mysql)"
fi
if [ -x "$CLIENT_DIR/mysqldump" ]; then
MYSQLDUMP="$CLIENT_DIR/mysqldump"
else
- MYSQLDUMP=$(which mysqldump)
+ MYSQLDUMP="$(command -v mysqldump)"
fi
if [ -x "$SCRIPTS_DIR/my_print_defaults" ]; then
@@ -293,7 +302,7 @@ if [ -x "$SCRIPTS_DIR/my_print_defaults" ]; then
elif [ -x "$EXTRA_DIR/my_print_defaults" ]; then
MY_PRINT_DEFAULTS="$EXTRA_DIR/my_print_defaults"
else
- MY_PRINT_DEFAULTS=$(which my_print_defaults)
+ MY_PRINT_DEFAULTS="$(command -v my_print_defaults)"
fi
wsrep_defaults="$WSREP_SST_OPT_DEFAULT"
@@ -368,7 +377,7 @@ wsrep_check_program()
{
local prog=$1
- if ! which $prog >/dev/null
+ if ! [ -x "$(command -v $prog)" ];
then
echo "'$prog' not found in PATH"
return 2 # no such file or directory
@@ -388,6 +397,15 @@ wsrep_check_programs()
return $ret
}
+wsrep_check_datadir()
+{
+ if [ -z "${WSREP_SST_OPT_DATA}" ]
+ then
+ wsrep_log_error "The '--datadir' parameter must be passed to the SST script"
+ exit 2
+ fi
+}
+
#
# user can specify mariabackup specific settings that will be used during sst
# process like encryption, etc.....
@@ -406,7 +424,7 @@ parse_cnf()
# then search for needed variable
# finally get the variable value (if variables has been specified multiple time use the last value only)
- reval=$($MY_PRINT_DEFAULTS "${group}" | awk -v var="${var}" 'BEGIN { OFS=FS="=" } { gsub(/_/,"-",$1); if ( $1=="--"var) lastval=substr($0,length($1)+2) } END { print lastval}')
+ reval=$($MY_PRINT_DEFAULTS "$group" | awk 'BEGIN {OFS=FS="="} {gsub(/_/,"-",$1); if ($1=="--'"$var"'") lastval=substr($0,length($1)+2)} END {print lastval}')
# use default if we haven't found a value
if [ -z "$reval" ]; then
diff --git a/scripts/wsrep_sst_mariabackup.sh b/scripts/wsrep_sst_mariabackup.sh
index 0499b6c0678..081721f74b9 100644
--- a/scripts/wsrep_sst_mariabackup.sh
+++ b/scripts/wsrep_sst_mariabackup.sh
@@ -21,6 +21,7 @@
# Make sure to read that before proceeding!
. $(dirname $0)/wsrep_sst_common
+wsrep_check_datadir
OS=$(uname)
ealgo=""
@@ -56,8 +57,6 @@ sfmt="tar"
strmcmd=""
tfmt=""
tcmd=""
-rebuild=0
-rebuildcmd=""
payload=0
pvformat="-F '%N => Rate:%r Avg:%a Elapsed:%t %e Bytes: %b %p' "
pvopts="-f -i 10 -N $WSREP_SST_OPT_ROLE "
@@ -84,8 +83,8 @@ pcmd="pv $pvopts"
declare -a RC
set +e
-INNOBACKUPEX_BIN=$(which mariabackup)
-if test -z $INNOBACKUPEX_BIN
+MARIABACKUP_BIN="$(command -v mariabackup)"
+if test -z $MARIABACKUP_BIN
then
wsrep_log_error 'mariabackup binary not found in $PATH'
exit 42
@@ -290,21 +289,6 @@ get_transfer()
fi
}
-parse_cnf()
-{
- local group=$1
- local var=$2
- # print the default settings for given group using my_print_default.
- # normalize the variable names specified in cnf file (user can use _ or - for example log-bin or log_bin)
- # then grep for needed variable
- # finally get the variable value (if variables has been specified multiple time use the last value only)
- reval=$($MY_PRINT_DEFAULTS $group | awk -F= '{if ($1 ~ /_/) { gsub(/_/,"-",$1); print $1"="$2 } else { print $0 }}' | grep -- "--$var=" | cut -d= -f2- | tail -1)
- if [[ -z $reval ]];then
- [[ -n $3 ]] && reval=$3
- fi
- echo $reval
-}
-
get_footprint()
{
pushd $WSREP_SST_OPT_DATA 1>/dev/null
@@ -351,29 +335,35 @@ read_cnf()
{
sfmt=$(parse_cnf sst streamfmt "xbstream")
tfmt=$(parse_cnf sst transferfmt "socat")
- tcert=$(parse_cnf sst tca "")
- tpem=$(parse_cnf sst tcert "")
- tkey=$(parse_cnf sst tkey "")
+
encrypt=$(parse_cnf sst encrypt 0)
+ if [[ $encrypt -ge 2 ]]; then
+ tcert=$(parse_cnf sst tca "")
+ tpem=$(parse_cnf sst tcert "")
+ if [[ $encrypt -ge 3 ]]; then
+ tkey=$(parse_cnf sst tkey "")
+ fi
+ elif [[ $encrypt -ne -1 ]];then
+ # Refer to http://www.percona.com/doc/percona-xtradb-cluster/manual/xtrabackup_sst.html
+ ealgo=$(parse_cnf xtrabackup encrypt "")
+ if [[ -z $ealgo ]];then
+ ealgo=$(parse_cnf sst encrypt-algo "")
+ ekey=$(parse_cnf sst encrypt-key "")
+ ekeyfile=$(parse_cnf sst encrypt-key-file "")
+ else
+ ekey=$(parse_cnf xtrabackup encrypt-key "")
+ ekeyfile=$(parse_cnf xtrabackup encrypt-key-file "")
+ fi
+ fi
+
sockopt=$(parse_cnf sst sockopt "")
progress=$(parse_cnf sst progress "")
- rebuild=$(parse_cnf sst rebuild 0)
ttime=$(parse_cnf sst time 0)
cpat=$(parse_cnf sst cpat '.*galera\.cache$\|.*sst_in_progress$\|.*\.sst$\|.*gvwstate\.dat$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$')
[[ $OS == "FreeBSD" ]] && cpat=$(parse_cnf sst cpat '.*galera\.cache$|.*sst_in_progress$|.*\.sst$|.*gvwstate\.dat$|.*grastate\.dat$|.*\.err$|.*\.log$|.*RPM_UPGRADE_MARKER$|.*RPM_UPGRADE_HISTORY$')
- ealgo=$(parse_cnf xtrabackup encrypt "")
- ekey=$(parse_cnf xtrabackup encrypt-key "")
- ekeyfile=$(parse_cnf xtrabackup encrypt-key-file "")
scomp=$(parse_cnf sst compressor "")
sdecomp=$(parse_cnf sst decompressor "")
- # Refer to http://www.percona.com/doc/percona-xtradb-cluster/manual/xtrabackup_sst.html
- if [[ -z $ealgo ]];then
- ealgo=$(parse_cnf sst encrypt-algo "")
- ekey=$(parse_cnf sst encrypt-key "")
- ekeyfile=$(parse_cnf sst encrypt-key-file "")
- fi
-
rlimit=$(parse_cnf sst rlimit "")
uextra=$(parse_cnf sst use-extra 0)
speciald=$(parse_cnf sst sst-special-dirs 1)
@@ -680,7 +670,7 @@ monitor_process()
done
}
-wsrep_check_programs "$INNOBACKUPEX_BIN"
+wsrep_check_programs "$MARIABACKUP_BIN"
rm -f "${MAGIC_FILE}"
@@ -692,7 +682,7 @@ fi
read_cnf
setup_ports
-if ${INNOBACKUPEX_BIN} /tmp --help 2>/dev/null | grep -q -- '--version-check'; then
+if ${MARIABACKUP_BIN} --help 2>/dev/null | grep -q -- '--version-check'; then
disver="--no-version-check"
fi
@@ -703,7 +693,7 @@ if [[ ${FORCE_FTWRL:-0} -eq 1 ]];then
iopts+=" --no-backup-locks"
fi
-INNOEXTRA=$WSREP_SST_OPT_MYSQLD
+INNOEXTRA=
INNODB_DATA_HOME_DIR=${INNODB_DATA_HOME_DIR:-""}
# Try to set INNODB_DATA_HOME_DIR from the command line:
@@ -735,7 +725,7 @@ if [[ $ssyslog -eq 1 ]];then
if ! command -v logger >/dev/null;then
wsrep_log_error "logger not in path: $PATH. Ignoring"
else
- wsrep_log_info "Logging all stderr of SST/Innobackupex to syslog"
+ wsrep_log_info "Logging all stderr of SST/mariabackup to syslog"
exec 2> >(logger -p daemon.err -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE)
@@ -748,12 +738,12 @@ if [[ $ssyslog -eq 1 ]];then
{
logger -p daemon.info -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
}
-
- INNOAPPLY="${INNOBACKUPEX_BIN} --prepare $disver $iapts \$INNOEXTRA $rebuildcmd --target-dir=\${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-apply"
- INNOMOVE="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_CONF} --move-back $disver $impts --force-non-empty-directories --target-dir=\${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-move"
- INNOBACKUP="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_CONF} --backup $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt --target-dir=\$itmpdir 2> >(logger -p daemon.err -t ${ssystag}innobackupex-backup)"
fi
+ INNOAPPLY="2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-apply"
+ INNOMOVE="2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-move"
+ INNOBACKUP="2> >(logger -p daemon.err -t ${ssystag}innobackupex-backup)"
+
else
if [[ "$sstlogarchive" -eq 1 ]]
@@ -790,7 +780,6 @@ then
else
newfile=${INNOMOVELOG}.${ARCHIVETIMESTAMP}
fi
-
wsrep_log_info "Moving ${INNOMOVELOG} to ${newfile}"
mv "${INNOMOVELOG}" "${newfile}"
gzip "${newfile}"
@@ -804,19 +793,22 @@ then
else
newfile=${INNOBACKUPLOG}.${ARCHIVETIMESTAMP}
fi
-
wsrep_log_info "Moving ${INNOBACKUPLOG} to ${newfile}"
mv "${INNOBACKUPLOG}" "${newfile}"
gzip "${newfile}"
fi
fi
- INNOAPPLY="${INNOBACKUPEX_BIN} --prepare $disver $iapts \$INNOEXTRA $rebuildcmd --target-dir=\${DATA} &> ${INNOAPPLYLOG}"
- INNOMOVE="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_CONF} --move-back $disver $impts --force-non-empty-directories --target-dir=\${DATA} &> ${INNOMOVELOG}"
- INNOBACKUP="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_CONF} --backup $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt --target-dir=\$itmpdir 2> ${INNOBACKUPLOG}"
+ INNOAPPLY="&> ${INNOAPPLYLOG}"
+ INNOMOVE="&> ${INNOMOVELOG}"
+ INNOBACKUP="2> ${INNOBACKUPLOG}"
fi
+INNOAPPLY="${MARIABACKUP_BIN} --prepare $disver $iapts \$INNOEXTRA --target-dir=\${DATA} --datadir=\${DATA} --mysqld-args \$WSREP_SST_OPT_MYSQLD $INNOAPPLY"
+INNOMOVE="${MARIABACKUP_BIN} ${WSREP_SST_OPT_CONF} --move-back $disver $impts --force-non-empty-directories --target-dir=\${DATA} --datadir=\${TDATA} $INNOMOVE"
+INNOBACKUP="${MARIABACKUP_BIN} ${WSREP_SST_OPT_CONF} --backup $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt --target-dir=\$itmpdir --datadir=\${DATA} --mysqld-args \$WSREP_SST_OPT_MYSQLD $INNOBACKUP"
+
get_stream
get_transfer
@@ -842,7 +834,7 @@ then
fi
itmpdir=$(mktemp -d)
- wsrep_log_info "Using $itmpdir as innobackupex temporary directory"
+ wsrep_log_info "Using $itmpdir as mariabackup temporary directory"
if [[ -n "${WSREP_SST_OPT_USER:-}" && "$WSREP_SST_OPT_USER" != "(null)" ]]; then
INNOEXTRA+=" --user=$WSREP_SST_OPT_USER"
@@ -856,15 +848,6 @@ then
unset MYSQL_PWD
fi
- get_keys
- if [[ $encrypt -eq 1 ]];then
- if [[ -n $ekey ]];then
- INNOEXTRA+=" --encrypt=$ealgo --encrypt-key=$ekey"
- else
- INNOEXTRA+=" --encrypt=$ealgo --encrypt-key-file=$ekeyfile"
- fi
- fi
-
check_extra
wsrep_log_info "Streaming GTID file before SST"
@@ -875,19 +858,19 @@ then
ttcmd="$tcmd"
+ if [[ -n $scomp ]];then
+ tcmd="$scomp | $tcmd"
+ fi
+
+ get_keys
if [[ $encrypt -eq 1 ]];then
- if [[ -n $scomp ]];then
- tcmd=" $ecmd | $scomp | $tcmd "
- else
- tcmd=" $ecmd | $tcmd "
- fi
- elif [[ -n $scomp ]];then
- tcmd=" $scomp | $tcmd "
+ tcmd="$ecmd | $tcmd"
fi
send_donor $DATA "${stagemsg}-gtid"
tcmd="$ttcmd"
+
if [[ -n $progress ]];then
get_footprint
tcmd="$pcmd | $tcmd"
@@ -910,7 +893,7 @@ then
set -e
if [ ${RC[0]} -ne 0 ]; then
- wsrep_log_error "${INNOBACKUPEX_BIN} finished with error: ${RC[0]}. " \
+ wsrep_log_error "${MARIABACKUP_BIN} finished with error: ${RC[0]}. " \
"Check syslog or ${INNOBACKUPLOG} for details"
exit 22
elif [[ ${RC[$(( ${#RC[@]}-1 ))]} -eq 1 ]];then
@@ -918,7 +901,7 @@ then
exit 22
fi
- # innobackupex implicitly writes PID to fixed location in $xtmpdir
+ # mariabackup implicitly writes PID to fixed location in $xtmpdir
XTRABACKUP_PID="$xtmpdir/xtrabackup_pid"
else # BYPASS FOR IST
@@ -930,16 +913,16 @@ then
# (separated by a space).
echo "${WSREP_SST_OPT_GTID} ${WSREP_SST_OPT_GTID_DOMAIN_ID}" > "${MAGIC_FILE}"
echo "1" > "${DATA}/${IST_FILE}"
+
+ if [[ -n $scomp ]];then
+ tcmd="$scomp | $tcmd"
+ fi
+
get_keys
if [[ $encrypt -eq 1 ]];then
- if [[ -n $scomp ]];then
- tcmd=" $ecmd | $scomp | $tcmd "
- else
- tcmd=" $ecmd | $tcmd "
- fi
- elif [[ -n $scomp ]];then
- tcmd=" $scomp | $tcmd "
+ tcmd="$ecmd | $tcmd"
fi
+
strmcmd+=" \${IST_FILE}"
send_donor $DATA "${stagemsg}-IST"
@@ -1083,22 +1066,10 @@ then
get_proc
if [[ ! -s ${DATA}/xtrabackup_checkpoints ]];then
- wsrep_log_error "xtrabackup_checkpoints missing, failed innobackupex/SST on donor"
+ wsrep_log_error "xtrabackup_checkpoints missing, failed mariabackup/SST on donor"
exit 2
fi
- # Rebuild indexes for compact backups
- if grep -q 'compact = 1' ${DATA}/xtrabackup_checkpoints;then
- wsrep_log_info "Index compaction detected"
- rebuild=1
- fi
-
- if [[ $rebuild -eq 1 ]];then
- nthreads=$(parse_cnf xtrabackup rebuild-threads $nproc)
- wsrep_log_info "Rebuilding during prepare with $nthreads threads"
- rebuildcmd="--rebuild-indexes --rebuild-threads=$nthreads"
- fi
-
if test -n "$(find ${DATA} -maxdepth 1 -type f -name '*.qp' -print -quit)";then
wsrep_log_info "Compressed qpress files found"
@@ -1161,7 +1132,7 @@ then
if [ $? -ne 0 ];
then
- wsrep_log_error "${INNOBACKUPEX_BIN} apply finished with errors. Check syslog or ${INNOAPPLYLOG} for details"
+ wsrep_log_error "${MARIABACKUP_BIN} apply finished with errors. Check syslog or ${INNOAPPLYLOG} for details"
exit 22
fi
diff --git a/scripts/wsrep_sst_rsync.sh b/scripts/wsrep_sst_rsync.sh
index 7e3f7b73301..e7ce544e7ba 100644
--- a/scripts/wsrep_sst_rsync.sh
+++ b/scripts/wsrep_sst_rsync.sh
@@ -29,6 +29,7 @@ OS=$(uname)
export PATH="/usr/sbin:/sbin:$PATH"
. $(dirname $0)/wsrep_sst_common
+wsrep_check_datadir
wsrep_check_programs rsync
diff --git a/scripts/wsrep_sst_xtrabackup-v2.sh b/scripts/wsrep_sst_xtrabackup-v2.sh
index 8c8af9a0219..bddaca55877 100644
--- a/scripts/wsrep_sst_xtrabackup-v2.sh
+++ b/scripts/wsrep_sst_xtrabackup-v2.sh
@@ -18,10 +18,8 @@
# Documentation: http://www.percona.com/doc/percona-xtradb-cluster/manual/xtrabackup_sst.html
# Make sure to read that before proceeding!
-
-
-
. $(dirname $0)/wsrep_sst_common
+wsrep_check_datadir
ealgo=""
ekey=""
diff --git a/scripts/wsrep_sst_xtrabackup.sh b/scripts/wsrep_sst_xtrabackup.sh
index c4feac2a135..cd44e99df3f 100644
--- a/scripts/wsrep_sst_xtrabackup.sh
+++ b/scripts/wsrep_sst_xtrabackup.sh
@@ -18,10 +18,8 @@
# Optional dependencies and options documented here: http://www.percona.com/doc/percona-xtradb-cluster/manual/xtrabackup_sst.html
# Make sure to read that before proceeding!
-
-
-
. $(dirname $0)/wsrep_sst_common
+wsrep_check_datadir
ealgo=""
ekey=""