mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch '10.4' into 10.5
This commit is contained in:
@@ -71,7 +71,7 @@ then
|
||||
# (b) Cluster state ID & wsrep_gtid_domain_id to be written to the file, OR
|
||||
# (c) ERROR file, in case flush tables operation failed.
|
||||
|
||||
while [ ! -r "$FLUSHED" ] && \
|
||||
while [ ! -r "$FLUSHED" ] || \
|
||||
! grep -q -F ':' -- "$FLUSHED"
|
||||
do
|
||||
# Check whether ERROR file exists.
|
||||
|
@@ -104,6 +104,7 @@ WSREP_SST_OPT_HOST_UNESCAPED=""
|
||||
INNODB_DATA_HOME_DIR=$(trim_dir "${INNODB_DATA_HOME_DIR:-}")
|
||||
INNODB_LOG_GROUP_HOME=$(trim_dir "${INNODB_LOG_GROUP_HOME:-}")
|
||||
INNODB_UNDO_DIR=$(trim_dir "${INNODB_UNDO_DIR:-}")
|
||||
INNODB_BUFFER_POOL=""
|
||||
INNODB_FORCE_RECOVERY=""
|
||||
INNOEXTRA=""
|
||||
|
||||
@@ -212,6 +213,10 @@ case "$1" in
|
||||
readonly INNODB_UNDO_DIR=$(trim_dir "$2")
|
||||
shift
|
||||
;;
|
||||
'--innodb-buffer-pool-filename')
|
||||
readonly INNODB_BUFFER_POOL=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
'--defaults-file')
|
||||
readonly WSREP_SST_OPT_DEFAULT="$1=$2"
|
||||
readonly WSREP_SST_OPT_DEFAULTS="$1='$2'"
|
||||
@@ -471,6 +476,12 @@ case "$1" in
|
||||
fi
|
||||
skip_mysqld_arg=1
|
||||
;;
|
||||
'--innodb-buffer-pool-filename')
|
||||
if [ -z "$INNODB_BUFFER_POOL" ]; then
|
||||
MYSQLD_OPT_INNODB_BUFFER_POOL=$(trim_string "$value")
|
||||
fi
|
||||
skip_mysqld_arg=1
|
||||
;;
|
||||
'--innodb-force-recovery')
|
||||
if [ -n "$value" -a "$value" != "0" ]; then
|
||||
INNODB_FORCE_RECOVERY=$(trim_string "$value")
|
||||
@@ -552,6 +563,10 @@ if [ -n "${MYSQLD_OPT_INNODB_UNDO_DIR:-}" -a \
|
||||
-z "$INNODB_UNDO_DIR" ]; then
|
||||
readonly INNODB_UNDO_DIR="$MYSQLD_OPT_INNODB_UNDO_DIR"
|
||||
fi
|
||||
if [ -n "${MYSQLD_OPT_INNODB_BUFFER_POOL:-}" -a \
|
||||
-z "$INNODB_BUFFER_POOL" ]; then
|
||||
readonly INNODB_BUFFER_POOL="$MYSQLD_OPT_INNODB_BUFFER_POOL"
|
||||
fi
|
||||
if [ -n "${MYSQLD_OPT_LOG_BIN:-}" -a \
|
||||
-z "$WSREP_SST_OPT_BINLOG" ]; then
|
||||
readonly WSREP_SST_OPT_BINLOG="$MYSQLD_OPT_LOG_BIN"
|
||||
@@ -602,6 +617,9 @@ fi
|
||||
if [ -n "$INNODB_UNDO_DIR" ]; then
|
||||
INNOEXTRA="$INNOEXTRA --innodb-undo-directory='$INNODB_UNDO_DIR'"
|
||||
fi
|
||||
if [ -n "$INNODB_BUFFER_POOL" ]; then
|
||||
INNOEXTRA="$INNOEXTRA --innodb-buffer-pool-filename='$INNODB_BUFFER_POOL'"
|
||||
fi
|
||||
if [ -n "$WSREP_SST_OPT_BINLOG" ]; then
|
||||
INNOEXTRA="$INNOEXTRA --log-bin='$WSREP_SST_OPT_BINLOG'"
|
||||
if [ -n "$WSREP_SST_OPT_BINLOG_INDEX" ]; then
|
||||
|
@@ -664,6 +664,9 @@ cleanup_at_exit()
|
||||
local estatus=$?
|
||||
if [ $estatus -ne 0 ]; then
|
||||
wsrep_log_error "Cleanup after exit with status: $estatus"
|
||||
elif [ -z "${coords:-}" -a "$WSREP_SST_OPT_ROLE" = 'joiner' ]; then
|
||||
estatus=32
|
||||
wsrep_log_error "Failed to get current position"
|
||||
fi
|
||||
|
||||
[ "$(pwd)" != "$OLD_PWD" ] && cd "$OLD_PWD"
|
||||
@@ -934,6 +937,11 @@ if [ $ssyslog -eq 1 ]; then
|
||||
logger -p daemon.err -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
|
||||
}
|
||||
|
||||
wsrep_log_warning()
|
||||
{
|
||||
logger -p daemon.warning -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
|
||||
}
|
||||
|
||||
wsrep_log_info()
|
||||
{
|
||||
logger -p daemon.info -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@"
|
||||
@@ -1015,7 +1023,7 @@ setup_commands()
|
||||
recovery=" --innodb-force-recovery=$INNODB_FORCE_RECOVERY"
|
||||
fi
|
||||
INNOAPPLY="$BACKUP_BIN --prepare$disver$recovery${iapts:+ }$iapts$INNOEXTRA --target-dir='$DATA' --datadir='$DATA'$mysqld_args $INNOAPPLY"
|
||||
INNOMOVE="$BACKUP_BIN$WSREP_SST_OPT_CONF --move-back$disver${impts:+ }$impts$INNOEXTRA --force-non-empty-directories --target-dir='$DATA' --datadir='${TDATA:-$DATA}' $INNOMOVE"
|
||||
INNOMOVE="$BACKUP_BIN$WSREP_SST_OPT_CONF --move-back$disver${impts:+ }$impts$INNOEXTRA --galera-info --force-non-empty-directories --target-dir='$DATA' --datadir='${TDATA:-$DATA}' $INNOMOVE"
|
||||
INNOBACKUP="$BACKUP_BIN$WSREP_SST_OPT_CONF --backup$disver${iopts:+ }$iopts$tmpopts$INNOEXTRA --galera-info --stream=$sfmt --target-dir='$itmpdir' --datadir='$DATA'$mysqld_args $INNOBACKUP"
|
||||
}
|
||||
|
||||
@@ -1153,11 +1161,6 @@ if [ "$WSREP_SST_OPT_ROLE" = 'donor' ]; then
|
||||
iopts="--parallel=$backup_threads${iopts:+ }$iopts"
|
||||
fi
|
||||
|
||||
max_binlogs=$(parse_cnf "$encgroups" 'sst-max-binlogs')
|
||||
if [ -n "$max_binlogs" ]; then
|
||||
iopts="--sst-max-binlogs=$max_binlogs${iopts:+ }$iopts"
|
||||
fi
|
||||
|
||||
setup_commands
|
||||
|
||||
set +e
|
||||
|
@@ -38,6 +38,9 @@ cleanup_joiner()
|
||||
local estatus=$?
|
||||
if [ $estatus -ne 0 ]; then
|
||||
wsrep_log_error "Cleanup after exit with status: $estatus"
|
||||
elif [ -z "${coords:-}" ]; then
|
||||
estatus=32
|
||||
wsrep_log_error "Failed to get current position"
|
||||
fi
|
||||
|
||||
local failure=0
|
||||
@@ -408,7 +411,7 @@ EOF
|
||||
# (b) Cluster state ID & wsrep_gtid_domain_id to be written to the file, OR
|
||||
# (c) ERROR file, in case flush tables operation failed.
|
||||
|
||||
while [ ! -r "$FLUSHED" ] && \
|
||||
while [ ! -r "$FLUSHED" ] || \
|
||||
! grep -q -F ':' -- "$FLUSHED"
|
||||
do
|
||||
# Check whether ERROR file exists.
|
||||
@@ -433,8 +436,8 @@ EOF
|
||||
# Let's check the existence of the file with the index:
|
||||
if [ -f "$WSREP_SST_OPT_BINLOG_INDEX" ]; then
|
||||
# Let's read the binlog index:
|
||||
max_binlogs=$(parse_cnf "$encgroups" 'sst-max-binlogs')
|
||||
if [ -n "$max_binlogs" ]; then
|
||||
max_binlogs=$(parse_cnf "$encgroups" 'sst-max-binlogs' 1)
|
||||
if [ $max_binlogs -ge 0 ]; then
|
||||
binlog_files=""
|
||||
if [ $max_binlogs -gt 0 ]; then
|
||||
binlog_files=$(tail -n $max_binlogs \
|
||||
|
Reference in New Issue
Block a user