mirror of
https://github.com/MariaDB/server.git
synced 2025-11-15 09:02:33 +03:00
Merge branch '10.1' into 10.2
This commit is contained in:
@@ -21,9 +21,6 @@ EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
VERSION="@VERSION@@MYSQL_SERVER_SUFFIX@"
|
||||
COMPILATION_COMMENT="@COMPILATION_COMMENT@"
|
||||
|
||||
systemctl set-environment _WSREP_NEW_CLUSTER='--wsrep-new-cluster' && \
|
||||
systemctl start ${1:-mariadb}
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ cannot_find_file()
|
||||
echo
|
||||
echo "If you compiled from source, you need to either run 'make install' to"
|
||||
echo "copy the software into the correct location ready for operation."
|
||||
echo "If you don't want to do a full install, you can use the --srcddir"
|
||||
echo "If you don't want to do a full install, you can use the --srcdir"
|
||||
echo "option to only install the mysql database and privilege tables"
|
||||
echo
|
||||
echo "If you compiled from source, you need to either run 'make install' to"
|
||||
|
||||
@@ -20,6 +20,7 @@ set -u
|
||||
|
||||
WSREP_SST_OPT_BYPASS=0
|
||||
WSREP_SST_OPT_BINLOG=""
|
||||
WSREP_SST_OPT_BINLOG_INDEX=""
|
||||
WSREP_SST_OPT_DATA=""
|
||||
WSREP_SST_OPT_AUTH=${WSREP_SST_OPT_AUTH:-}
|
||||
WSREP_SST_OPT_USER=${WSREP_SST_OPT_USER:-}
|
||||
@@ -28,6 +29,7 @@ WSREP_SST_OPT_DEFAULT=""
|
||||
WSREP_SST_OPT_EXTRA_DEFAULT=""
|
||||
WSREP_SST_OPT_SUFFIX_DEFAULT=""
|
||||
WSREP_SST_OPT_SUFFIX_VALUE=""
|
||||
INNODB_DATA_HOME_DIR_ARG=""
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
@@ -67,6 +69,10 @@ case "$1" in
|
||||
readonly WSREP_SST_OPT_DATA="$2"
|
||||
shift
|
||||
;;
|
||||
'--innodb-data-home-dir')
|
||||
readonly INNODB_DATA_HOME_DIR_ARG="$2"
|
||||
shift
|
||||
;;
|
||||
'--defaults-file')
|
||||
readonly WSREP_SST_OPT_DEFAULT="$1=$2"
|
||||
shift
|
||||
@@ -120,6 +126,10 @@ case "$1" in
|
||||
WSREP_SST_OPT_BINLOG="$2"
|
||||
shift
|
||||
;;
|
||||
'--binlog-index')
|
||||
WSREP_SST_OPT_BINLOG_INDEX="$2"
|
||||
shift
|
||||
;;
|
||||
'--gtid-domain-id')
|
||||
readonly WSREP_SST_OPT_GTID_DOMAIN_ID="$2"
|
||||
shift
|
||||
@@ -133,6 +143,7 @@ shift
|
||||
done
|
||||
readonly WSREP_SST_OPT_BYPASS
|
||||
readonly WSREP_SST_OPT_BINLOG
|
||||
readonly WSREP_SST_OPT_BINLOG_INDEX
|
||||
|
||||
if [ -n "${WSREP_SST_OPT_ADDR_PORT:-}" ]; then
|
||||
if [ -n "${WSREP_SST_OPT_PORT:-}" ]; then
|
||||
|
||||
@@ -138,6 +138,14 @@ if ! [ -z $WSREP_SST_OPT_BINLOG ]
|
||||
then
|
||||
BINLOG_DIRNAME=$(dirname $WSREP_SST_OPT_BINLOG)
|
||||
BINLOG_FILENAME=$(basename $WSREP_SST_OPT_BINLOG)
|
||||
BINLOG_INDEX_DIRNAME=$(dirname $WSREP_SST_OPT_BINLOG)
|
||||
BINLOG_INDEX_FILENAME=$(basename $WSREP_SST_OPT_BINLOG)
|
||||
fi
|
||||
|
||||
if ! [ -z $WSREP_SST_OPT_BINLOG_INDEX ]
|
||||
then
|
||||
BINLOG_INDEX_DIRNAME=$(dirname $WSREP_SST_OPT_BINLOG_INDEX)
|
||||
BINLOG_INDEX_FILENAME=$(basename $WSREP_SST_OPT_BINLOG_INDEX)
|
||||
fi
|
||||
|
||||
WSREP_LOG_DIR=${WSREP_LOG_DIR:-""}
|
||||
@@ -155,10 +163,17 @@ else
|
||||
fi
|
||||
|
||||
INNODB_DATA_HOME_DIR=${INNODB_DATA_HOME_DIR:-""}
|
||||
# Try to set INNODB_DATA_HOME_DIR from the command line:
|
||||
if [ ! -z "$INNODB_DATA_HOME_DIR_ARG" ]; then
|
||||
INNODB_DATA_HOME_DIR=$INNODB_DATA_HOME_DIR_ARG
|
||||
fi
|
||||
# if INNODB_DATA_HOME_DIR env. variable is not set, try to get it from my.cnf
|
||||
if [ -z "$INNODB_DATA_HOME_DIR" ]; then
|
||||
INNODB_DATA_HOME_DIR=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE innodb-data-home-dir '')
|
||||
fi
|
||||
if [ -z "$INNODB_DATA_HOME_DIR" ]; then
|
||||
INNODB_DATA_HOME_DIR=$(parse_cnf --mysqld innodb-data-home-dir "")
|
||||
fi
|
||||
|
||||
if [ -n "$INNODB_DATA_HOME_DIR" ]; then
|
||||
# handle both relative and absolute paths
|
||||
@@ -175,8 +190,15 @@ fi
|
||||
# --exclude '*.[0-9][0-9][0-9][0-9][0-9][0-9]' --exclude '*.index')
|
||||
|
||||
# New filter - exclude everything except dirs (schemas) and innodb files
|
||||
FILTER="-f '- /lost+found' -f '- /.fseventsd' -f '- /.Trashes'
|
||||
-f '+ /wsrep_sst_binlog.tar' -f '- $INNODB_DATA_HOME_DIR/ib_lru_dump' -f '- $INNODB_DATA_HOME_DIR/ibdata*' -f '+ /*/' -f '- /*'"
|
||||
FILTER="-f '- /lost+found'
|
||||
-f '- /.fseventsd'
|
||||
-f '- /.Trashes'
|
||||
-f '+ /wsrep_sst_binlog.tar'
|
||||
-f '- $INNODB_DATA_HOME_DIR/ib_lru_dump'
|
||||
-f '- $INNODB_DATA_HOME_DIR/ibdata*'
|
||||
-f '+ /undo*'
|
||||
-f '+ /*/'
|
||||
-f '- /*'"
|
||||
|
||||
SSTKEY=$(parse_cnf sst tkey "")
|
||||
SSTCERT=$(parse_cnf sst tcert "")
|
||||
@@ -245,12 +267,20 @@ EOF
|
||||
OLD_PWD="$(pwd)"
|
||||
cd $BINLOG_DIRNAME
|
||||
|
||||
binlog_files_full=$(tail -n $BINLOG_N_FILES ${BINLOG_FILENAME}.index)
|
||||
if ! [ -z $WSREP_SST_OPT_BINLOG_INDEX ]
|
||||
binlog_files_full=$(tail -n $BINLOG_N_FILES ${BINLOG_FILENAME}.index)
|
||||
then
|
||||
cd $BINLOG_INDEX_DIRNAME
|
||||
binlog_files_full=$(tail -n $BINLOG_N_FILES ${BINLOG_INDEX_FILENAME}.index)
|
||||
fi
|
||||
|
||||
cd $BINLOG_DIRNAME
|
||||
binlog_files=""
|
||||
for ii in $binlog_files_full
|
||||
do
|
||||
binlog_files="$binlog_files $(basename $ii)"
|
||||
done
|
||||
|
||||
if ! [ -z "$binlog_files" ]
|
||||
then
|
||||
wsrep_log_info "Preparing binlog files for transfer:"
|
||||
@@ -476,7 +506,11 @@ EOF
|
||||
tar -xvf $BINLOG_TAR_FILE >&2
|
||||
for ii in $(ls -1 ${BINLOG_FILENAME}.*)
|
||||
do
|
||||
echo ${BINLOG_DIRNAME}/${ii} >> ${BINLOG_FILENAME}.index
|
||||
if ! [ -z $WSREP_SST_OPT_BINLOG_INDEX ]
|
||||
echo ${BINLOG_DIRNAME}/${ii} >> ${BINLOG_FILENAME}.index
|
||||
then
|
||||
echo ${BINLOG_DIRNAME}/${ii} >> ${BINLOG_INDEX_DIRNAME}/${BINLOG_INDEX_FILENAME}.index
|
||||
fi
|
||||
done
|
||||
fi
|
||||
cd "$OLD_PWD"
|
||||
|
||||
@@ -899,7 +899,31 @@ fi
|
||||
get_stream
|
||||
get_transfer
|
||||
|
||||
INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts --apply-log \$rebuildcmd \${DATA} ${INNOAPPLY}"
|
||||
INNODB_DATA_HOME_DIR=${INNODB_DATA_HOME_DIR:-""}
|
||||
# Try to set INNODB_DATA_HOME_DIR from the command line:
|
||||
if [ ! -z "$INNODB_DATA_HOME_DIR_ARG" ]; then
|
||||
INNODB_DATA_HOME_DIR=$INNODB_DATA_HOME_DIR_ARG
|
||||
fi
|
||||
# if INNODB_DATA_HOME_DIR env. variable is not set, try to get it from my.cnf
|
||||
if [ -z "$INNODB_DATA_HOME_DIR" ]; then
|
||||
INNODB_DATA_HOME_DIR=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE innodb-data-home-dir '')
|
||||
fi
|
||||
if [ -z "$INNODB_DATA_HOME_DIR" ]; then
|
||||
INNODB_DATA_HOME_DIR=$(parse_cnf --mysqld innodb-data-home-dir "")
|
||||
fi
|
||||
if [ ! -z "$INNODB_DATA_HOME_DIR" ]; then
|
||||
INNOEXTRA+=" --innodb-data-home-dir=$INNODB_DATA_HOME_DIR"
|
||||
fi
|
||||
|
||||
if [ -n "$INNODB_DATA_HOME_DIR" ]; then
|
||||
# handle both relative and absolute paths
|
||||
INNODB_DATA_HOME_DIR=$(cd $DATA; mkdir -p "$INNODB_DATA_HOME_DIR"; cd $INNODB_DATA_HOME_DIR; pwd -P)
|
||||
else
|
||||
# default to datadir
|
||||
INNODB_DATA_HOME_DIR=$(cd $DATA; pwd -P)
|
||||
fi
|
||||
|
||||
INNOAPPLY="${INNOBACKUPEX_BIN} $disver $iapts \$INNOEXTRA --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}"
|
||||
|
||||
@@ -1035,7 +1059,7 @@ then
|
||||
[[ -e $SST_PROGRESS_FILE ]] && wsrep_log_info "Stale sst_in_progress file: $SST_PROGRESS_FILE"
|
||||
[[ -n $SST_PROGRESS_FILE ]] && touch $SST_PROGRESS_FILE
|
||||
|
||||
ib_home_dir=$(parse_cnf --mysqld innodb-data-home-dir "")
|
||||
ib_home_dir=$INNODB_DATA_HOME_DIR
|
||||
ib_log_dir=$(parse_cnf --mysqld innodb-log-group-home-dir "")
|
||||
ib_undo_dir=$(parse_cnf --mysqld innodb-undo-directory "")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user