Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
c383418c
Commit
c383418c
authored
Feb 03, 2018
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'github/10.0-galera' into 10.1
parents
f69a3b2e
c7e5feb2
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
96 additions
and
154 deletions
+96
-154
mysql-test/suite/galera_3nodes/include/have_ipv6.inc
mysql-test/suite/galera_3nodes/include/have_ipv6.inc
+15
-0
mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test
...est/suite/galera_3nodes/t/galera_innobackupex_backup.test
+1
-1
mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test
...-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test
+1
-1
scripts/wsrep_sst_common.sh
scripts/wsrep_sst_common.sh
+21
-29
scripts/wsrep_sst_mysqldump.sh
scripts/wsrep_sst_mysqldump.sh
+1
-5
scripts/wsrep_sst_rsync.sh
scripts/wsrep_sst_rsync.sh
+1
-13
scripts/wsrep_sst_xtrabackup-v2.sh
scripts/wsrep_sst_xtrabackup-v2.sh
+31
-53
scripts/wsrep_sst_xtrabackup.sh
scripts/wsrep_sst_xtrabackup.sh
+11
-44
sql/wsrep_sst.cc
sql/wsrep_sst.cc
+12
-7
sql/wsrep_sst.h
sql/wsrep_sst.h
+2
-1
No files found.
mysql-test/suite/galera_3nodes/include/have_ipv6.inc
0 → 100644
View file @
c383418c
# 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
mysql-test/suite/galera_3nodes/t/galera_innobackupex_backup.test
View file @
c383418c
...
@@ -16,7 +16,7 @@ SELECT COUNT(*) = 10 FROM t1;
...
@@ -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
...
...
mysql-test/suite/galera_3nodes/t/galera_safe_to_bootstrap.test
View file @
c383418c
...
@@ -108,7 +108,7 @@ SET SESSION wsrep_on = OFF;
...
@@ -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
...
...
scripts/wsrep_sst_common.sh
View file @
c383418c
...
@@ -20,13 +20,13 @@ set -u
...
@@ -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
...
@@ -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
...
@@ -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
...
@@ -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
...
@@ -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()
...
@@ -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()
...
@@ -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
...
...
scripts/wsrep_sst_mysqldump.sh
View file @
c383418c
...
@@ -17,10 +17,6 @@
...
@@ -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
...
@@ -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.
...
...
scripts/wsrep_sst_rsync.sh
View file @
c383418c
...
@@ -102,19 +102,7 @@ fi
...
@@ -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
...
...
scripts/wsrep_sst_xtrabackup-v2.sh
View file @
c383418c
This diff is collapsed.
Click to expand it.
scripts/wsrep_sst_xtrabackup.sh
View file @
c383418c
...
@@ -30,15 +30,13 @@ encrypt=0
...
@@ -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()
...
@@ -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()
...
@@ -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()
...
@@ -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()
...
@@ -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()
...
@@ -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
...
@@ -466,7 +438,7 @@ then
check_extra
check_extra
wsrep_log_info
"Streaming the backup to joiner at
${
REMOTEIP
}
${
SS
T_PORT
}
"
wsrep_log_info
"Streaming the backup to joiner at
${
WSREP_SST_OPT_HOST
}
${
WSREP_SST_OP
T_PORT
}
"
if
[[
-n
$progress
]]
;
then
if
[[
-n
$progress
]]
;
then
get_footprint
get_footprint
...
@@ -547,14 +519,9 @@ then
...
@@ -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
...
...
sql/wsrep_sst.cc
View file @
c383418c
...
@@ -30,9 +30,10 @@
...
@@ -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()
...
@@ -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,
...
@@ -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,
...
@@ -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"
,
...
...
sql/wsrep_sst.h
View file @
c383418c
...
@@ -27,7 +27,8 @@
...
@@ -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"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment