mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge branch 'github/10.0-galera' into 10.1
This commit is contained in:
15
mysql-test/suite/galera_3nodes/include/have_ipv6.inc
Normal file
15
mysql-test/suite/galera_3nodes/include/have_ipv6.inc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Check if ipv6 is available.
|
||||||
|
#
|
||||||
|
--disable_query_log
|
||||||
|
--disable_result_log
|
||||||
|
connect (checkcon123456789,::1,root,,test);
|
||||||
|
if($mysql_errno)
|
||||||
|
{
|
||||||
|
skip No IPv6 support;
|
||||||
|
}
|
||||||
|
connection default;
|
||||||
|
disconnect checkcon123456789;
|
||||||
|
--enable_result_log
|
||||||
|
--enable_query_log
|
||||||
|
# end check
|
||||||
|
|
@ -16,7 +16,7 @@ SELECT COUNT(*) = 10 FROM t1;
|
|||||||
--exec innobackupex --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group=mysqld.2 $MYSQL_TMP_DIR/innobackupex_backup --galera-info --port=$NODE_MYPORT_2 --host=127.0.0.1 --no-timestamp > $MYSQL_TMP_DIR/innobackupex-backup.log
|
--exec innobackupex --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group=mysqld.2 $MYSQL_TMP_DIR/innobackupex_backup --galera-info --port=$NODE_MYPORT_2 --host=127.0.0.1 --no-timestamp > $MYSQL_TMP_DIR/innobackupex-backup.log
|
||||||
--exec innobackupex --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group=mysqld.2 $MYSQL_TMP_DIR/innobackupex_backup --apply-log --galera-info --port=$NODE_MYPORT_2 --host=127.0.0.1 --no-timestamp > $MYSQL_TMP_DIR/innobackupex-apply.log
|
--exec innobackupex --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group=mysqld.2 $MYSQL_TMP_DIR/innobackupex_backup --apply-log --galera-info --port=$NODE_MYPORT_2 --host=127.0.0.1 --no-timestamp > $MYSQL_TMP_DIR/innobackupex-apply.log
|
||||||
|
|
||||||
--source include/kill_galera.inc
|
--source ../galera/include/kill_galera.inc
|
||||||
--sleep 1
|
--sleep 1
|
||||||
|
|
||||||
--connection node_1
|
--connection node_1
|
||||||
|
@ -108,7 +108,7 @@ SET SESSION wsrep_on = OFF;
|
|||||||
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
--source include/kill_galera.inc
|
--source ../galera/include/kill_galera.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Only node #1 should have safe_to_bootstrap: 1
|
# Only node #1 should have safe_to_bootstrap: 1
|
||||||
|
@ -20,13 +20,13 @@ set -u
|
|||||||
|
|
||||||
WSREP_SST_OPT_BYPASS=0
|
WSREP_SST_OPT_BYPASS=0
|
||||||
WSREP_SST_OPT_BINLOG=""
|
WSREP_SST_OPT_BINLOG=""
|
||||||
WSREP_SST_OPT_CONF_SUFFIX=""
|
|
||||||
WSREP_SST_OPT_DATA=""
|
WSREP_SST_OPT_DATA=""
|
||||||
WSREP_SST_OPT_AUTH=${WSREP_SST_OPT_AUTH:-}
|
WSREP_SST_OPT_AUTH=${WSREP_SST_OPT_AUTH:-}
|
||||||
WSREP_SST_OPT_USER=${WSREP_SST_OPT_USER:-}
|
WSREP_SST_OPT_USER=${WSREP_SST_OPT_USER:-}
|
||||||
WSREP_SST_OPT_PSWD=${WSREP_SST_OPT_PSWD:-}
|
WSREP_SST_OPT_PSWD=${WSREP_SST_OPT_PSWD:-}
|
||||||
WSREP_SST_OPT_DEFAULT=""
|
WSREP_SST_OPT_DEFAULT=""
|
||||||
WSREP_SST_OPT_EXTRA_DEFAULT=""
|
WSREP_SST_OPT_EXTRA_DEFAULT=""
|
||||||
|
WSREP_SST_OPT_SUFFIX_DEFAULT=""
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -35,19 +35,22 @@ case "$1" in
|
|||||||
#
|
#
|
||||||
# Break address string into host:port/path parts
|
# Break address string into host:port/path parts
|
||||||
#
|
#
|
||||||
if echo $WSREP_SST_OPT_ADDR | grep -qe '^\[.*\]'
|
readonly WSREP_SST_OPT_HOST=${WSREP_SST_OPT_ADDR%%[:/]*}
|
||||||
|
if [ ${WSREP_SST_OPT_HOST:0:1} = '[' ]
|
||||||
then
|
then
|
||||||
# IPv6 notation
|
# IPv6 notation
|
||||||
readonly WSREP_SST_OPT_HOST=${WSREP_SST_OPT_ADDR/\]*/\]}
|
readonly WSREP_SST_OPT_HOST_UNESCAPED=${WSREP_SST_OPT_HOST:1:-1}
|
||||||
readonly WSREP_SST_OPT_HOST_UNESCAPED=$(echo $WSREP_SST_OPT_HOST | \
|
|
||||||
cut -d '[' -f 2 | cut -d ']' -f 1)
|
|
||||||
else
|
else
|
||||||
# "traditional" notation
|
readonly WSREP_SST_OPT_HOST_UNESCAPED=${WSREP_SST_OPT_HOST}
|
||||||
readonly WSREP_SST_OPT_HOST=${WSREP_SST_OPT_ADDR%%[:/]*}
|
|
||||||
fi
|
fi
|
||||||
readonly WSREP_SST_OPT_PORT=$(echo $WSREP_SST_OPT_ADDR | \
|
readonly WSREP_SST_OPT_PORT=$(echo $WSREP_SST_OPT_ADDR | \
|
||||||
cut -d ']' -f 2 | cut -s -d ':' -f 2 | cut -d '/' -f 1)
|
cut -d ']' -f 2 | cut -s -d ':' -f 2 | cut -d '/' -f 1)
|
||||||
readonly WSREP_SST_OPT_PATH=${WSREP_SST_OPT_ADDR#*/}
|
readonly WSREP_SST_OPT_PATH=${WSREP_SST_OPT_ADDR#*/}
|
||||||
|
readonly WSREP_SST_OPT_MODULE=${WSREP_SST_OPT_PATH%%/*}
|
||||||
|
remain=${WSREP_SST_OPT_PATH#*/}
|
||||||
|
readonly WSREP_SST_OPT_LSN=${remain%%/*}
|
||||||
|
remain=${remain#*/}
|
||||||
|
readonly WSREP_SST_OPT_SST_VER=${remain%%/*}
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
'--bypass')
|
'--bypass')
|
||||||
@ -66,7 +69,7 @@ case "$1" in
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
'--defaults-group-suffix')
|
'--defaults-group-suffix')
|
||||||
WSREP_SST_OPT_CONF_SUFFIX="$2"
|
readonly WSREP_SST_OPT_SUFFIX_DEFAULT="$1=$2"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
'--host')
|
'--host')
|
||||||
@ -122,7 +125,6 @@ shift
|
|||||||
done
|
done
|
||||||
readonly WSREP_SST_OPT_BYPASS
|
readonly WSREP_SST_OPT_BYPASS
|
||||||
readonly WSREP_SST_OPT_BINLOG
|
readonly WSREP_SST_OPT_BINLOG
|
||||||
readonly WSREP_SST_OPT_CONF_SUFFIX
|
|
||||||
|
|
||||||
# try to use my_print_defaults, mysql and mysqldump that come with the sources
|
# try to use my_print_defaults, mysql and mysqldump that come with the sources
|
||||||
# (for MTR suite)
|
# (for MTR suite)
|
||||||
@ -150,19 +152,18 @@ else
|
|||||||
MY_PRINT_DEFAULTS=$(which my_print_defaults)
|
MY_PRINT_DEFAULTS=$(which my_print_defaults)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
readonly WSREP_SST_OPT_CONF="$WSREP_SST_OPT_DEFAULT $WSREP_SST_OPT_EXTRA_DEFAULT"
|
readonly WSREP_SST_OPT_CONF="$WSREP_SST_OPT_DEFAULT $WSREP_SST_OPT_EXTRA_DEFAULT $WSREP_SST_OPT_SUFFIX_DEFAULT"
|
||||||
MY_PRINT_DEFAULTS="$MY_PRINT_DEFAULTS $WSREP_SST_OPT_CONF"
|
readonly MY_PRINT_DEFAULTS="$MY_PRINT_DEFAULTS $WSREP_SST_OPT_CONF"
|
||||||
|
|
||||||
wsrep_auth_not_set()
|
wsrep_auth_not_set()
|
||||||
{
|
{
|
||||||
[ -z "$WSREP_SST_OPT_AUTH" -o "$WSREP_SST_OPT_AUTH" = "(null)" ]
|
[ -z "$WSREP_SST_OPT_AUTH" -o "$WSREP_SST_OPT_AUTH" = "(null)" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
# For Bug:1200727
|
# State Snapshot Transfer authentication password was displayed in the ps output. Bug fixed #1200727.
|
||||||
if $MY_PRINT_DEFAULTS sst | grep -q "wsrep_sst_auth"
|
if $MY_PRINT_DEFAULTS sst | grep -q "wsrep_sst_auth"; then
|
||||||
then
|
if wsrep_auth_not_set; then
|
||||||
if wsrep_auth_not_set
|
WSREP_SST_OPT_AUTH=$($MY_PRINT_DEFAULTS sst | grep -- "--wsrep_sst_auth" | cut -d= -f2)
|
||||||
then
|
|
||||||
WSREP_SST_OPT_AUTH=$($MY_PRINT_DEFAULTS sst | grep -- "--wsrep_sst_auth" | cut -d= -f2)
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
readonly WSREP_SST_OPT_AUTH
|
readonly WSREP_SST_OPT_AUTH
|
||||||
@ -241,7 +242,7 @@ wsrep_check_programs()
|
|||||||
# process like encryption, etc.....
|
# process like encryption, etc.....
|
||||||
# parse such configuration option. (group for xb settings is [sst] in my.cnf
|
# parse such configuration option. (group for xb settings is [sst] in my.cnf
|
||||||
#
|
#
|
||||||
# 1st param: group : name of the config file section, e.g. mysqld
|
# 1st param: group (config file section like sst) or my_print_defaults argument (like --mysqld)
|
||||||
# 2nd param: var : name of the variable in the section, e.g. server-id
|
# 2nd param: var : name of the variable in the section, e.g. server-id
|
||||||
# 3rd param: - : default value for the param
|
# 3rd param: - : default value for the param
|
||||||
parse_cnf()
|
parse_cnf()
|
||||||
@ -250,20 +251,11 @@ parse_cnf()
|
|||||||
local var=$2
|
local var=$2
|
||||||
local reval=""
|
local reval=""
|
||||||
|
|
||||||
# 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)
|
# normalize the variable names specified in cnf file (user can use _ or - for example log-bin or log_bin)
|
||||||
# then grep for needed variable
|
# then search for needed variable
|
||||||
# finally get the variable value (if variables has been specified multiple time use the last value only)
|
# finally get the variable value (if variables has been specified multiple time use the last value only)
|
||||||
|
|
||||||
# look in group+suffix
|
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}')
|
||||||
if [ -n $WSREP_SST_OPT_CONF_SUFFIX ]; then
|
|
||||||
reval=$($MY_PRINT_DEFAULTS "${group}${WSREP_SST_OPT_CONF_SUFFIX}" | awk -F= '{if ($1 ~ /_/) { gsub(/_/,"-",$1); print $1"="$2 } else { print $0 }}' | grep -- "--$var=" | cut -d= -f2- | tail -1)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# look in group
|
|
||||||
if [ -z $reval ]; then
|
|
||||||
reval=$($MY_PRINT_DEFAULTS $group | awk -F= '{if ($1 ~ /_/) { gsub(/_/,"-",$1); print $1"="$2 } else { print $0 }}' | grep -- "--$var=" | cut -d= -f2- | tail -1)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# use default if we haven't found a value
|
# use default if we haven't found a value
|
||||||
if [ -z $reval ]; then
|
if [ -z $reval ]; then
|
||||||
|
@ -17,10 +17,6 @@
|
|||||||
|
|
||||||
# This is a reference script for mysqldump-based state snapshot tansfer
|
# This is a reference script for mysqldump-based state snapshot tansfer
|
||||||
|
|
||||||
# This variable is not used in mysqldump sst, so better initialize it
|
|
||||||
# to avoid shell's "parameter not set" message.
|
|
||||||
WSREP_SST_OPT_CONF=""
|
|
||||||
|
|
||||||
. $(dirname $0)/wsrep_sst_common
|
. $(dirname $0)/wsrep_sst_common
|
||||||
PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin
|
PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
@ -118,7 +114,7 @@ $MYSQL_CLIENT $AUTH -S$WSREP_SST_OPT_SOCKET --disable-reconnect --connect_timeou
|
|||||||
tail -1 | awk -F ' ' '{ print $2 }')
|
tail -1 | awk -F ' ' '{ print $2 }')
|
||||||
|
|
||||||
MYSQL="$MYSQL_CLIENT $WSREP_SST_OPT_CONF "\
|
MYSQL="$MYSQL_CLIENT $WSREP_SST_OPT_CONF "\
|
||||||
"$AUTH -h${WSREP_SST_OPT_HOST_UNESCAPED:-$WSREP_SST_OPT_HOST} "\
|
"$AUTH -h${WSREP_SST_OPT_HOST_UNESCAPED} "\
|
||||||
"-P$WSREP_SST_OPT_PORT --disable-reconnect --connect_timeout=10"
|
"-P$WSREP_SST_OPT_PORT --disable-reconnect --connect_timeout=10"
|
||||||
|
|
||||||
# Check if binary logging is enabled on the joiner node.
|
# Check if binary logging is enabled on the joiner node.
|
||||||
|
@ -102,19 +102,7 @@ fi
|
|||||||
WSREP_LOG_DIR=${WSREP_LOG_DIR:-""}
|
WSREP_LOG_DIR=${WSREP_LOG_DIR:-""}
|
||||||
# if WSREP_LOG_DIR env. variable is not set, try to get it from my.cnf
|
# if WSREP_LOG_DIR env. variable is not set, try to get it from my.cnf
|
||||||
if [ -z "$WSREP_LOG_DIR" ]; then
|
if [ -z "$WSREP_LOG_DIR" ]; then
|
||||||
WSREP_LOG_DIR=$(parse_cnf mariadb-10.0 innodb_log_group_home_dir "")
|
WSREP_LOG_DIR=$(parse_cnf --mysqld innodb-log-group-home-dir '')
|
||||||
fi
|
|
||||||
if [ -z "$WSREP_LOG_DIR" ]; then
|
|
||||||
WSREP_LOG_DIR=$(parse_cnf mysqld innodb_log_group_home_dir "")
|
|
||||||
fi
|
|
||||||
if [ -z "$WSREP_LOG_DIR" ]; then
|
|
||||||
WSREP_LOG_DIR=$(parse_cnf server innodb_log_group_home_dir "")
|
|
||||||
fi
|
|
||||||
if [ -z "$WSREP_LOG_DIR" ]; then
|
|
||||||
WSREP_LOG_DIR=$(parse_cnf mariadb innodb_log_group_home_dir "")
|
|
||||||
fi
|
|
||||||
if [ -z "$WSREP_LOG_DIR" ]; then
|
|
||||||
WSREP_LOG_DIR=$(parse_cnf mysqld-10.0 innodb_log_group_home_dir "")
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$WSREP_LOG_DIR" ]; then
|
if [ -n "$WSREP_LOG_DIR" ]; then
|
||||||
|
@ -32,9 +32,6 @@ ecode=0
|
|||||||
ssyslog=""
|
ssyslog=""
|
||||||
ssystag=""
|
ssystag=""
|
||||||
XTRABACKUP_PID=""
|
XTRABACKUP_PID=""
|
||||||
SST_PORT=""
|
|
||||||
REMOTEIP=""
|
|
||||||
REMOTEHOST=""
|
|
||||||
tca=""
|
tca=""
|
||||||
tcert=""
|
tcert=""
|
||||||
tkey=""
|
tkey=""
|
||||||
@ -42,7 +39,6 @@ sockopt=""
|
|||||||
progress=""
|
progress=""
|
||||||
ttime=0
|
ttime=0
|
||||||
totime=0
|
totime=0
|
||||||
lsn=""
|
|
||||||
ecmd=""
|
ecmd=""
|
||||||
rlimit=""
|
rlimit=""
|
||||||
# Initially
|
# Initially
|
||||||
@ -77,11 +73,6 @@ ssl_cert=""
|
|||||||
ssl_ca=""
|
ssl_ca=""
|
||||||
ssl_key=""
|
ssl_key=""
|
||||||
|
|
||||||
# Required for backup locks
|
|
||||||
# For backup locks it is 1 sent by joiner
|
|
||||||
# 5.6.21 PXC and later can't donate to an older joiner
|
|
||||||
sst_ver=1
|
|
||||||
|
|
||||||
if which pv &>/dev/null && pv --help | grep -q FORMAT;then
|
if which pv &>/dev/null && pv --help | grep -q FORMAT;then
|
||||||
pvopts+=$pvformat
|
pvopts+=$pvformat
|
||||||
fi
|
fi
|
||||||
@ -258,11 +249,7 @@ verify_file_exists()
|
|||||||
|
|
||||||
get_transfer()
|
get_transfer()
|
||||||
{
|
{
|
||||||
if [[ -z $SST_PORT ]];then
|
TSST_PORT=${WSREP_SST_OPT_PORT:-4444}
|
||||||
TSST_PORT=4444
|
|
||||||
else
|
|
||||||
TSST_PORT=$SST_PORT
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $tfmt == 'nc' ]];then
|
if [[ $tfmt == 'nc' ]];then
|
||||||
if [[ ! -x `which nc` ]];then
|
if [[ ! -x `which nc` ]];then
|
||||||
@ -287,7 +274,7 @@ get_transfer()
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# netcat doesn't understand [] around IPv6 address
|
# netcat doesn't understand [] around IPv6 address
|
||||||
tcmd="nc ${REMOTEIP//[\[\]]/} ${TSST_PORT}"
|
tcmd="nc ${WSREP_SST_OPT_HOST_UNESCAPED} ${TSST_PORT}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
tfmt='socat'
|
tfmt='socat'
|
||||||
@ -349,7 +336,7 @@ get_transfer()
|
|||||||
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tcert},cafile=${tca}${joiner_extra}${sockopt} stdio"
|
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tcert},cafile=${tca}${joiner_extra}${sockopt} stdio"
|
||||||
else
|
else
|
||||||
wsrep_log_info "Encrypting with CERT: $tcert, CA: $tca"
|
wsrep_log_info "Encrypting with CERT: $tcert, CA: $tca"
|
||||||
tcmd="socat -u stdio openssl-connect:${REMOTEIP}:${TSST_PORT},cert=${tcert},cafile=${tca}${donor_extra}${sockopt}"
|
tcmd="socat -u stdio openssl-connect:${WSREP_SST_OPT_HOST}:${TSST_PORT},cert=${tcert},cafile=${tca}${donor_extra}${sockopt}"
|
||||||
fi
|
fi
|
||||||
elif [[ $encrypt -eq 3 ]];then
|
elif [[ $encrypt -eq 3 ]];then
|
||||||
wsrep_log_warning "**** WARNING **** encrypt=3 is deprecated and will be removed in a future release"
|
wsrep_log_warning "**** WARNING **** encrypt=3 is deprecated and will be removed in a future release"
|
||||||
@ -366,7 +353,7 @@ get_transfer()
|
|||||||
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tcert},key=${tkey},verify=0${joiner_extra}${sockopt} stdio"
|
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${tcert},key=${tkey},verify=0${joiner_extra}${sockopt} stdio"
|
||||||
else
|
else
|
||||||
wsrep_log_info "Encrypting with CERT: $tcert, KEY: $tkey"
|
wsrep_log_info "Encrypting with CERT: $tcert, KEY: $tkey"
|
||||||
tcmd="socat -u stdio openssl-connect:${REMOTEIP}:${TSST_PORT},cert=${tcert},key=${tkey},verify=0${sockopt}"
|
tcmd="socat -u stdio openssl-connect:${WSREP_SST_OPT_HOST}:${TSST_PORT},cert=${tcert},key=${tkey},verify=0${sockopt}"
|
||||||
fi
|
fi
|
||||||
elif [[ $encrypt -eq 4 ]]; then
|
elif [[ $encrypt -eq 4 ]]; then
|
||||||
wsrep_log_info "Using openssl based encryption with socat: with key, crt, and ca"
|
wsrep_log_info "Using openssl based encryption with socat: with key, crt, and ca"
|
||||||
@ -387,7 +374,7 @@ get_transfer()
|
|||||||
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${ssl_cert},key=${ssl_key},cafile=${ssl_ca},verify=1${joiner_extra}${sockopt} stdio"
|
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=${ssl_cert},key=${ssl_key},cafile=${ssl_ca},verify=1${joiner_extra}${sockopt} stdio"
|
||||||
else
|
else
|
||||||
wsrep_log_info "Encrypting with CERT: $ssl_cert, KEY: $ssl_key, CA: $ssl_ca"
|
wsrep_log_info "Encrypting with CERT: $ssl_cert, KEY: $ssl_key, CA: $ssl_ca"
|
||||||
tcmd="socat -u stdio openssl-connect:${REMOTEIP}:${TSST_PORT},cert=${ssl_cert},key=${ssl_key},cafile=${ssl_ca},verify=1${donor_extra}${sockopt}"
|
tcmd="socat -u stdio openssl-connect:${WSREP_SST_OPT_HOST}:${TSST_PORT},cert=${ssl_cert},key=${ssl_key},cafile=${ssl_ca},verify=1${donor_extra}${sockopt}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -398,7 +385,7 @@ get_transfer()
|
|||||||
if [[ "$WSREP_SST_OPT_ROLE" == "joiner" ]]; then
|
if [[ "$WSREP_SST_OPT_ROLE" == "joiner" ]]; then
|
||||||
tcmd="socat -u TCP-LISTEN:${TSST_PORT},reuseaddr${sockopt} stdio"
|
tcmd="socat -u TCP-LISTEN:${TSST_PORT},reuseaddr${sockopt} stdio"
|
||||||
else
|
else
|
||||||
tcmd="socat -u stdio TCP:${REMOTEIP}:${TSST_PORT}${sockopt}"
|
tcmd="socat -u stdio TCP:${WSREP_SST_OPT_HOST}:${TSST_PORT}${sockopt}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -407,7 +394,7 @@ get_transfer()
|
|||||||
get_footprint()
|
get_footprint()
|
||||||
{
|
{
|
||||||
pushd $WSREP_SST_OPT_DATA 1>/dev/null
|
pushd $WSREP_SST_OPT_DATA 1>/dev/null
|
||||||
payload=$(find . -regex '.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' -type f -print0 | du --files0-from=- --block-size=1 -c | awk 'END { print $1 }')
|
payload=$(find . -regex '.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' -type f -print0 | du --files0-from=- --block-size=1 -c -s | awk 'END { print $1 }')
|
||||||
if $MY_PRINT_DEFAULTS xtrabackup | grep -q -- "--compress";then
|
if $MY_PRINT_DEFAULTS xtrabackup | grep -q -- "--compress";then
|
||||||
# QuickLZ has around 50% compression ratio
|
# QuickLZ has around 50% compression ratio
|
||||||
# When compression/compaction used, the progress is only an approximate.
|
# When compression/compaction used, the progress is only an approximate.
|
||||||
@ -481,15 +468,15 @@ read_cnf()
|
|||||||
# Pull the parameters needed for encrypt=4
|
# Pull the parameters needed for encrypt=4
|
||||||
ssl_ca=$(parse_cnf sst ssl-ca "")
|
ssl_ca=$(parse_cnf sst ssl-ca "")
|
||||||
if [[ -z "$ssl_ca" ]]; then
|
if [[ -z "$ssl_ca" ]]; then
|
||||||
ssl_ca=$(parse_cnf mysqld ssl-ca "")
|
ssl_ca=$(parse_cnf --mysqld ssl-ca "")
|
||||||
fi
|
fi
|
||||||
ssl_cert=$(parse_cnf sst ssl-cert "")
|
ssl_cert=$(parse_cnf sst ssl-cert "")
|
||||||
if [[ -z "$ssl_cert" ]]; then
|
if [[ -z "$ssl_cert" ]]; then
|
||||||
ssl_cert=$(parse_cnf mysqld ssl-cert "")
|
ssl_cert=$(parse_cnf --mysqld ssl-cert "")
|
||||||
fi
|
fi
|
||||||
ssl_key=$(parse_cnf sst ssl-key "")
|
ssl_key=$(parse_cnf sst ssl-key "")
|
||||||
if [[ -z "$ssl_key" ]]; then
|
if [[ -z "$ssl_key" ]]; then
|
||||||
ssl_key=$(parse_cnf mysqld ssl-key "")
|
ssl_key=$(parse_cnf --mysqld ssl-key "")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rlimit=$(parse_cnf sst rlimit "")
|
rlimit=$(parse_cnf sst rlimit "")
|
||||||
@ -503,7 +490,7 @@ read_cnf()
|
|||||||
ssystag+="-"
|
ssystag+="-"
|
||||||
|
|
||||||
if [[ $ssyslog -ne -1 ]];then
|
if [[ $ssyslog -ne -1 ]];then
|
||||||
if $MY_PRINT_DEFAULTS mysqld_safe | tr '_' '-' | grep -q -- "--syslog";then
|
if $MY_PRINT_DEFAULTS mysqld_safe | grep -q -- "--syslog";then
|
||||||
ssyslog=1
|
ssyslog=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -646,18 +633,6 @@ kill_xtrabackup()
|
|||||||
rm -f "$XTRABACKUP_PID" || true
|
rm -f "$XTRABACKUP_PID" || true
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_ports()
|
|
||||||
{
|
|
||||||
if [[ "$WSREP_SST_OPT_ROLE" == "donor" ]];then
|
|
||||||
SST_PORT=$WSREP_SST_OPT_PORT
|
|
||||||
REMOTEIP=$WSREP_SST_OPT_HOST
|
|
||||||
lsn=$(echo $WSREP_SST_OPT_PATH | awk -F '[/]' '{ print $2 }')
|
|
||||||
sst_ver=$(echo $WSREP_SST_OPT_PATH | awk -F '[/]' '{ print $3 }')
|
|
||||||
else
|
|
||||||
SST_PORT=$WSREP_SST_OPT_PORT
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# waits ~1 minute for nc/socat to open the port and then reports ready
|
# waits ~1 minute for nc/socat to open the port and then reports ready
|
||||||
# (regardless of timeout)
|
# (regardless of timeout)
|
||||||
wait_for_listen()
|
wait_for_listen()
|
||||||
@ -674,15 +649,15 @@ wait_for_listen()
|
|||||||
sleep 0.2
|
sleep 0.2
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "ready ${HOST}:${PORT}/${MODULE}//$sst_ver"
|
echo "ready ${HOST}:${PORT}/${MODULE}//${WSREP_SST_OPT_SST_VER:-1}"
|
||||||
}
|
}
|
||||||
|
|
||||||
check_extra()
|
check_extra()
|
||||||
{
|
{
|
||||||
local use_socket=1
|
local use_socket=1
|
||||||
if [[ $uextra -eq 1 ]];then
|
if [[ $uextra -eq 1 ]];then
|
||||||
if $MY_PRINT_DEFAULTS --mysqld | tr '_' '-' | grep -- "--thread-handling=" | grep -q 'pool-of-threads';then
|
if [ $(parse_cnf --mysqld thread-handling) = 'pool-of-threads'];then
|
||||||
local eport=$($MY_PRINT_DEFAULTS mysqld | tr '_' '-' | grep -- "--extra-port=" | cut -d= -f2)
|
local eport=$(parse_cnf --mysqld extra-port)
|
||||||
if [[ -n $eport ]];then
|
if [[ -n $eport ]];then
|
||||||
# Xtrabackup works only locally.
|
# Xtrabackup works only locally.
|
||||||
# Hence, setting host to 127.0.0.1 unconditionally.
|
# Hence, setting host to 127.0.0.1 unconditionally.
|
||||||
@ -843,7 +818,6 @@ if [[ ! ${WSREP_SST_OPT_ROLE} == 'joiner' && ! ${WSREP_SST_OPT_ROLE} == 'donor'
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
read_cnf
|
read_cnf
|
||||||
setup_ports
|
|
||||||
|
|
||||||
if ${INNOBACKUPEX_BIN} /tmp --help 2>/dev/null | grep -q -- '--version-check'; then
|
if ${INNOBACKUPEX_BIN} /tmp --help 2>/dev/null | grep -q -- '--version-check'; then
|
||||||
disver="--no-version-check"
|
disver="--no-version-check"
|
||||||
@ -877,20 +851,24 @@ if [[ $ssyslog -eq 1 ]];then
|
|||||||
logger -p daemon.info -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
|
logger -p daemon.info -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-apply "
|
INNOAPPLY="2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-apply "
|
||||||
INNOMOVE="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_DEFAULT} $disver $impts --datadir=${DATA} --move-back --force-non-empty-directories \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-move "
|
INNOMOVE="2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-move "
|
||||||
INNOBACKUP="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_DEFAULT} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2> >(logger -p daemon.err -t ${ssystag}innobackupex-backup)"
|
INNOBACKUP="2> >(logger -p daemon.err -t ${ssystag}innobackupex-backup)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} &>\${DATA}/innobackup.prepare.log"
|
INNOAPPLY="&>\${DATA}/innobackup.prepare.log"
|
||||||
INNOMOVE="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_DEFAULT} --defaults-group=mysqld${WSREP_SST_OPT_CONF_SUFFIX} $disver $impts --datadir=${DATA} --move-back --force-non-empty-directories \${DATA} &>\${DATA}/innobackup.move.log"
|
INNOMOVE="&>\${DATA}/innobackup.move.log"
|
||||||
INNOBACKUP="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_DEFAULT} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2>\${DATA}/innobackup.backup.log"
|
INNOBACKUP="2>\${DATA}/innobackup.backup.log"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
get_stream
|
get_stream
|
||||||
get_transfer
|
get_transfer
|
||||||
|
|
||||||
|
INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} ${INNOAPPLY}"
|
||||||
|
INNOMOVE="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_CONF} $disver $impts --move-back --force-non-empty-directories \${DATA} ${INNOMOVE}"
|
||||||
|
INNOBACKUP="${INNOBACKUPEX_BIN} ${WSREP_SST_OPT_CONF} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir ${INNOBACKUP}"
|
||||||
|
|
||||||
if [ "$WSREP_SST_OPT_ROLE" = "donor" ]
|
if [ "$WSREP_SST_OPT_ROLE" = "donor" ]
|
||||||
then
|
then
|
||||||
trap cleanup_donor EXIT
|
trap cleanup_donor EXIT
|
||||||
@ -898,13 +876,13 @@ then
|
|||||||
if [ $WSREP_SST_OPT_BYPASS -eq 0 ]
|
if [ $WSREP_SST_OPT_BYPASS -eq 0 ]
|
||||||
then
|
then
|
||||||
usrst=0
|
usrst=0
|
||||||
if [[ -z $sst_ver ]];then
|
if [[ -z $WSREP_SST_OPT_SST_VER ]];then
|
||||||
wsrep_log_error "Upgrade joiner to 5.6.21 or higher for backup locks support"
|
wsrep_log_error "Upgrade joiner to 5.6.21 or higher for backup locks support"
|
||||||
wsrep_log_error "The joiner is not supported for this version of donor"
|
wsrep_log_error "The joiner is not supported for this version of donor"
|
||||||
exit 93
|
exit 93
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $(parse_cnf mysqld tmpdir "") && -z $(parse_cnf xtrabackup tmpdir "") ]];then
|
if [[ -z $(parse_cnf --mysqld tmpdir "") && -z $(parse_cnf xtrabackup tmpdir "") ]];then
|
||||||
xtmpdir=$(mktemp -d)
|
xtmpdir=$(mktemp -d)
|
||||||
tmpopts=" --tmpdir=$xtmpdir "
|
tmpopts=" --tmpdir=$xtmpdir "
|
||||||
wsrep_log_info "Using $xtmpdir as xtrabackup temporary directory"
|
wsrep_log_info "Using $xtmpdir as xtrabackup temporary directory"
|
||||||
@ -961,7 +939,7 @@ then
|
|||||||
wsrep_log_info "Sleeping before data transfer for SST"
|
wsrep_log_info "Sleeping before data transfer for SST"
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
wsrep_log_info "Streaming the backup to joiner at ${REMOTEIP} ${SST_PORT:-4444}"
|
wsrep_log_info "Streaming the backup to joiner at ${WSREP_SST_OPT_HOST} ${WSREP_SST_OPT_PORT:-4444}"
|
||||||
|
|
||||||
# Add compression to the head of the stream (if specified)
|
# Add compression to the head of the stream (if specified)
|
||||||
if [[ -n $scomp ]]; then
|
if [[ -n $scomp ]]; then
|
||||||
@ -1023,9 +1001,9 @@ then
|
|||||||
[[ -e $SST_PROGRESS_FILE ]] && wsrep_log_info "Stale sst_in_progress file: $SST_PROGRESS_FILE"
|
[[ -e $SST_PROGRESS_FILE ]] && wsrep_log_info "Stale sst_in_progress file: $SST_PROGRESS_FILE"
|
||||||
[[ -n $SST_PROGRESS_FILE ]] && touch $SST_PROGRESS_FILE
|
[[ -n $SST_PROGRESS_FILE ]] && touch $SST_PROGRESS_FILE
|
||||||
|
|
||||||
ib_home_dir=$(parse_cnf mysqld innodb-data-home-dir "")
|
ib_home_dir=$(parse_cnf --mysqld innodb-data-home-dir "")
|
||||||
ib_log_dir=$(parse_cnf mysqld innodb-log-group-home-dir "")
|
ib_log_dir=$(parse_cnf --mysqld innodb-log-group-home-dir "")
|
||||||
ib_undo_dir=$(parse_cnf mysqld innodb-undo-directory "")
|
ib_undo_dir=$(parse_cnf --mysqld innodb-undo-directory "")
|
||||||
|
|
||||||
stagemsg="Joiner-Recv"
|
stagemsg="Joiner-Recv"
|
||||||
|
|
||||||
@ -1091,7 +1069,7 @@ then
|
|||||||
find $ib_home_dir $ib_log_dir $ib_undo_dir $DATA -mindepth 1 -prune -regex $cpat -o -exec rm -rfv {} 1>&2 \+
|
find $ib_home_dir $ib_log_dir $ib_undo_dir $DATA -mindepth 1 -prune -regex $cpat -o -exec rm -rfv {} 1>&2 \+
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tempdir=$(parse_cnf mysqld log-bin "")
|
tempdir=$(parse_cnf --mysqld log-bin "")
|
||||||
if [[ -n ${tempdir:-} ]];then
|
if [[ -n ${tempdir:-} ]];then
|
||||||
binlog_dir=$(dirname $tempdir)
|
binlog_dir=$(dirname $tempdir)
|
||||||
binlog_file=$(basename $tempdir)
|
binlog_file=$(basename $tempdir)
|
||||||
|
@ -30,15 +30,13 @@ encrypt=0
|
|||||||
nproc=1
|
nproc=1
|
||||||
ecode=0
|
ecode=0
|
||||||
XTRABACKUP_PID=""
|
XTRABACKUP_PID=""
|
||||||
SST_PORT=""
|
|
||||||
REMOTEIP=""
|
|
||||||
tcert=""
|
tcert=""
|
||||||
tpem=""
|
tpem=""
|
||||||
sockopt=""
|
sockopt=""
|
||||||
progress=""
|
progress=""
|
||||||
ttime=0
|
ttime=0
|
||||||
totime=0
|
totime=0
|
||||||
lsn=""
|
lsn="${WSREP_SST_OPT_LSN}"
|
||||||
incremental=0
|
incremental=0
|
||||||
ecmd=""
|
ecmd=""
|
||||||
rlimit=""
|
rlimit=""
|
||||||
@ -136,11 +134,7 @@ get_keys()
|
|||||||
|
|
||||||
get_transfer()
|
get_transfer()
|
||||||
{
|
{
|
||||||
if [[ -z $SST_PORT ]];then
|
TSST_PORT=${WSREP_SST_OPT_PORT:-4444}
|
||||||
TSST_PORT=4444
|
|
||||||
else
|
|
||||||
TSST_PORT=$SST_PORT
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $tfmt == 'nc' ]];then
|
if [[ $tfmt == 'nc' ]];then
|
||||||
if [[ ! -x `which nc` ]];then
|
if [[ ! -x `which nc` ]];then
|
||||||
@ -155,7 +149,7 @@ get_transfer()
|
|||||||
tcmd="nc -dl ${TSST_PORT}"
|
tcmd="nc -dl ${TSST_PORT}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
tcmd="nc ${REMOTEIP} ${TSST_PORT}"
|
tcmd="nc ${WSREP_SST_OPT_HOST_UNESCAPED} ${TSST_PORT}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
tfmt='socat'
|
tfmt='socat'
|
||||||
@ -181,34 +175,23 @@ get_transfer()
|
|||||||
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=$tpem,cafile=${tcert}${sockopt} stdio"
|
tcmd="socat -u openssl-listen:${TSST_PORT},reuseaddr,cert=$tpem,cafile=${tcert}${sockopt} stdio"
|
||||||
else
|
else
|
||||||
wsrep_log_info "Encrypting with PEM $tpem, CA: $tcert"
|
wsrep_log_info "Encrypting with PEM $tpem, CA: $tcert"
|
||||||
tcmd="socat -u stdio openssl-connect:${REMOTEIP}:${TSST_PORT},cert=$tpem,cafile=${tcert}${sockopt}"
|
tcmd="socat -u stdio openssl-connect:${WSREP_SST_OPT_HOST}:${TSST_PORT},cert=$tpem,cafile=${tcert}${sockopt}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [[ "$WSREP_SST_OPT_ROLE" == "joiner" ]];then
|
if [[ "$WSREP_SST_OPT_ROLE" == "joiner" ]];then
|
||||||
tcmd="socat -u TCP-LISTEN:${TSST_PORT},reuseaddr${sockopt} stdio"
|
tcmd="socat -u TCP-LISTEN:${TSST_PORT},reuseaddr${sockopt} stdio"
|
||||||
else
|
else
|
||||||
tcmd="socat -u stdio TCP:${REMOTEIP}:${TSST_PORT}${sockopt}"
|
tcmd="socat -u stdio TCP:${WSREP_SST_OPT_HOST}:${TSST_PORT}${sockopt}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_cnf()
|
|
||||||
{
|
|
||||||
local group=$1
|
|
||||||
local var=$2
|
|
||||||
reval=$($MY_PRINT_DEFAULTS $group | awk -F= '{if ($1 ~ /_/) { gsub(/_/,"-",$1); print $1"="$2 } else { print $0 }}' | grep -- "--$var=" | cut -d= -f2-)
|
|
||||||
if [[ -z $reval ]];then
|
|
||||||
[[ -n $3 ]] && reval=$3
|
|
||||||
fi
|
|
||||||
echo $reval
|
|
||||||
}
|
|
||||||
|
|
||||||
get_footprint()
|
get_footprint()
|
||||||
{
|
{
|
||||||
pushd $WSREP_SST_OPT_DATA 1>/dev/null
|
pushd $WSREP_SST_OPT_DATA 1>/dev/null
|
||||||
payload=$(find . -regex '.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' -type f -print0 | du --files0-from=- --block-size=1 -c | awk 'END { print $1 }')
|
payload=$(find . -regex '.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' -type f -print0 | du --files0-from=- --block-size=1 -c -s | awk 'END { print $1 }')
|
||||||
if $MY_PRINT_DEFAULTS xtrabackup | grep -q -- "--compress";then
|
if $MY_PRINT_DEFAULTS xtrabackup | grep -q -- "--compress";then
|
||||||
# QuickLZ has around 50% compression ratio
|
# QuickLZ has around 50% compression ratio
|
||||||
# When compression/compaction used, the progress is only an approximate.
|
# When compression/compaction used, the progress is only an approximate.
|
||||||
@ -354,17 +337,6 @@ kill_xtrabackup()
|
|||||||
rm -f "$XTRABACKUP_PID"
|
rm -f "$XTRABACKUP_PID"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_ports()
|
|
||||||
{
|
|
||||||
if [[ "$WSREP_SST_OPT_ROLE" == "donor" ]];then
|
|
||||||
SST_PORT=$(echo $WSREP_SST_OPT_ADDR | awk -F '[:/]' '{ print $2 }')
|
|
||||||
REMOTEIP=$(echo $WSREP_SST_OPT_ADDR | awk -F ':' '{ print $1 }')
|
|
||||||
lsn=$(echo $WSREP_SST_OPT_ADDR | awk -F '[:/]' '{ print $4 }')
|
|
||||||
else
|
|
||||||
SST_PORT=$(echo ${WSREP_SST_OPT_ADDR} | awk -F ':' '{ print $2 }')
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# waits ~10 seconds for nc to open the port and then reports ready
|
# waits ~10 seconds for nc to open the port and then reports ready
|
||||||
# (regardless of timeout)
|
# (regardless of timeout)
|
||||||
wait_for_listen()
|
wait_for_listen()
|
||||||
@ -388,8 +360,8 @@ check_extra()
|
|||||||
{
|
{
|
||||||
local use_socket=1
|
local use_socket=1
|
||||||
if [[ $uextra -eq 1 ]];then
|
if [[ $uextra -eq 1 ]];then
|
||||||
if $MY_PRINT_DEFAULTS --mysqld | tr '_' '-' | grep -- "--thread-handling=" | grep -q 'pool-of-threads';then
|
if [ $(parse_cnf --mysqld thread-handling) = 'pool-of-threads'];then
|
||||||
local eport=$($MY_PRINT_DEFAULTS --mysqld | tr '_' '-' | grep -- "--extra-port=" | cut -d= -f2)
|
local eport=$(parse_cnf --mysqld extra-port)
|
||||||
if [[ -n $eport ]];then
|
if [[ -n $eport ]];then
|
||||||
# Xtrabackup works only locally.
|
# Xtrabackup works only locally.
|
||||||
# Hence, setting host to 127.0.0.1 unconditionally.
|
# Hence, setting host to 127.0.0.1 unconditionally.
|
||||||
@ -466,7 +438,7 @@ then
|
|||||||
|
|
||||||
check_extra
|
check_extra
|
||||||
|
|
||||||
wsrep_log_info "Streaming the backup to joiner at ${REMOTEIP} ${SST_PORT}"
|
wsrep_log_info "Streaming the backup to joiner at ${WSREP_SST_OPT_HOST} ${WSREP_SST_OPT_PORT}"
|
||||||
|
|
||||||
if [[ -n $progress ]];then
|
if [[ -n $progress ]];then
|
||||||
get_footprint
|
get_footprint
|
||||||
@ -547,14 +519,9 @@ then
|
|||||||
# May need xtrabackup_checkpoints later on
|
# May need xtrabackup_checkpoints later on
|
||||||
rm -f ${DATA}/xtrabackup_binary ${DATA}/xtrabackup_galera_info ${DATA}/xtrabackup_logfile
|
rm -f ${DATA}/xtrabackup_binary ${DATA}/xtrabackup_galera_info ${DATA}/xtrabackup_logfile
|
||||||
|
|
||||||
ADDR=${WSREP_SST_OPT_ADDR}
|
ADDR="${WSREP_SST_OPT_HOST}:${WSREP_SST_OPT_PORT:-4444}"
|
||||||
if [ -z "${SST_PORT}" ]
|
|
||||||
then
|
|
||||||
SST_PORT=4444
|
|
||||||
ADDR="$(echo ${WSREP_SST_OPT_ADDR} | awk -F ':' '{ print $1 }'):${SST_PORT}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
wait_for_listen ${SST_PORT} ${ADDR} ${MODULE} &
|
wait_for_listen ${WSREP_SST_OPT_PORT:-4444} ${ADDR} ${MODULE} &
|
||||||
|
|
||||||
trap sig_joiner_cleanup HUP PIPE INT TERM
|
trap sig_joiner_cleanup HUP PIPE INT TERM
|
||||||
trap cleanup_joiner EXIT
|
trap cleanup_joiner EXIT
|
||||||
|
@ -30,9 +30,10 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
char wsrep_defaults_file[FN_REFLEN * 2 + 10 +
|
static char wsrep_defaults_file[FN_REFLEN * 2 + 10 + 30 +
|
||||||
sizeof(WSREP_SST_OPT_CONF) +
|
sizeof(WSREP_SST_OPT_CONF) +
|
||||||
sizeof(WSREP_SST_OPT_EXTRA_CONF)] = {0};
|
sizeof(WSREP_SST_OPT_CONF_SUFFIX) +
|
||||||
|
sizeof(WSREP_SST_OPT_CONF_EXTRA)] = {0};
|
||||||
|
|
||||||
const char* wsrep_sst_method = WSREP_SST_DEFAULT;
|
const char* wsrep_sst_method = WSREP_SST_DEFAULT;
|
||||||
const char* wsrep_sst_receive_address = WSREP_SST_ADDRESS_AUTO;
|
const char* wsrep_sst_receive_address = WSREP_SST_ADDRESS_AUTO;
|
||||||
@ -75,7 +76,11 @@ static void make_wsrep_defaults_file()
|
|||||||
|
|
||||||
if (my_defaults_extra_file)
|
if (my_defaults_extra_file)
|
||||||
ptr= strxnmov(ptr, end - ptr,
|
ptr= strxnmov(ptr, end - ptr,
|
||||||
WSREP_SST_OPT_EXTRA_CONF, " '", my_defaults_extra_file, "' ", NULL);
|
WSREP_SST_OPT_CONF_EXTRA, " '", my_defaults_extra_file, "' ", NULL);
|
||||||
|
|
||||||
|
if (my_defaults_group_suffix)
|
||||||
|
ptr= strxnmov(ptr, end - ptr,
|
||||||
|
WSREP_SST_OPT_CONF_SUFFIX, " '", my_defaults_group_suffix, "' ", NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -581,8 +586,8 @@ static ssize_t sst_prepare_other (const char* method,
|
|||||||
WSREP_SST_OPT_PARENT" '%d'"
|
WSREP_SST_OPT_PARENT" '%d'"
|
||||||
" %s '%s' ",
|
" %s '%s' ",
|
||||||
method, addr_in, mysql_real_data_home,
|
method, addr_in, mysql_real_data_home,
|
||||||
wsrep_defaults_file, (int)getpid(),
|
wsrep_defaults_file,
|
||||||
binlog_opt, binlog_opt_val);
|
(int)getpid(), binlog_opt, binlog_opt_val);
|
||||||
my_free(binlog_opt_val);
|
my_free(binlog_opt_val);
|
||||||
|
|
||||||
if (ret < 0 || ret >= cmd_len)
|
if (ret < 0 || ret >= cmd_len)
|
||||||
@ -864,7 +869,7 @@ static int sst_donate_mysqldump (const char* addr,
|
|||||||
WSREP_SST_OPT_PORT" '%d' "
|
WSREP_SST_OPT_PORT" '%d' "
|
||||||
WSREP_SST_OPT_LPORT" '%u' "
|
WSREP_SST_OPT_LPORT" '%u' "
|
||||||
WSREP_SST_OPT_SOCKET" '%s' "
|
WSREP_SST_OPT_SOCKET" '%s' "
|
||||||
" %s "
|
" '%s' "
|
||||||
WSREP_SST_OPT_GTID" '%s:%lld' "
|
WSREP_SST_OPT_GTID" '%s:%lld' "
|
||||||
WSREP_SST_OPT_GTID_DOMAIN_ID" '%d'"
|
WSREP_SST_OPT_GTID_DOMAIN_ID" '%d'"
|
||||||
"%s",
|
"%s",
|
||||||
|
@ -27,7 +27,8 @@
|
|||||||
#define WSREP_SST_OPT_AUTH "--auth"
|
#define WSREP_SST_OPT_AUTH "--auth"
|
||||||
#define WSREP_SST_OPT_DATA "--datadir"
|
#define WSREP_SST_OPT_DATA "--datadir"
|
||||||
#define WSREP_SST_OPT_CONF "--defaults-file"
|
#define WSREP_SST_OPT_CONF "--defaults-file"
|
||||||
#define WSREP_SST_OPT_EXTRA_CONF "--defaults-extra-file"
|
#define WSREP_SST_OPT_CONF_SUFFIX "--defaults-group-suffix"
|
||||||
|
#define WSREP_SST_OPT_CONF_EXTRA "--defaults-extra-file"
|
||||||
#define WSREP_SST_OPT_PARENT "--parent"
|
#define WSREP_SST_OPT_PARENT "--parent"
|
||||||
#define WSREP_SST_OPT_BINLOG "--binlog"
|
#define WSREP_SST_OPT_BINLOG "--binlog"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user